Compare commits

..

32 commits

Author SHA1 Message Date
c2f9368c7e walnux: moveout
Some checks failed
Build Documentation / build-html (push) Has been cancelled
2025-10-31 17:58:46 +02:00
Filipe Cavalcanti
a00ac581c5 arch/xtensa/espressif: fix Wi-Fi netpkt copy error
Fix an issue where netpkt copy would fail due to wrong
return checking condition.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
b49bf589c3 boards/xtensa: update board and defconfigs for Wi-Fi on ESP32|S2|S3
Updates the defconfigs and board source to support driver refactor.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
5f36eb5d23 arch/xtensa: refactor Wi-Fi driver for ESP32|S2|S3
Fixes low and inconsistent bandwidth issues.
Adds new configuration options for buffer management.
Moves code around to make the implementation cleaner and easier to debug.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
ce99fbd904 arch/xtensa/esp32: Update E-Fuse driver
Updates E-Fuse driver for ESP32, now sharing a common implementation across Xtensa devices.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
8d6dcd61ed arch/xtensa/esp32s2: Update E-Fuse driver
Updates E-Fuse driver for ESP32S2, sharing a common implementation for Xtensa devices.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
13e24e0c78 arch/xtensa/esp32s3: Update E-Fuse driver
Updates E-Fuse driver for ESP32S3, now sharing a common implementation across
Xtensa devices.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
384f788d18 arch/xtensa: add common driver for E-Fuse on Espressif devices
Adds a common E-Fuse driver to be used by Espressif Xtensa devices.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Filipe Cavalcanti
e0e00f2b29 arch/xtensa: add sys_startup_fn call
Adds SYS_STARTUP_FN which calls constructors and init functions on
common source code. Requires compatibility changes on linker script.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-09-30 12:14:45 -03:00
Alin Jerpelea
fccf2f6e06 Documentation: add NuttX-12.11.0 release notes
Add release notes for 12.11.0 release

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2025-09-28 21:01:42 +08:00
nuttxs
9bedf16be9 boards/xtensa: fix the issue of undefined symbol reference errors occurring during compilation and linking phase when the configuration (CONFIG_ESP32S3_APP_FORMAT_LEGACY=y) is enabled. 2025-09-28 15:04:14 +08:00
Michal Lenc
9d01d17188 Documentation/applications/boot/nxboot: fix incorrect fnc description
Fixes incorrect nxboot_get_confirm function description (it was a
copy paste from nxboot_confirm function).

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2025-09-27 21:42:55 +08:00
wangchengdong
dd51d9a3fc arch/tricore: fix tricore_doirq function local var "regs" not initialized issue
In tricore_doirq, local variable regs is firstly used without initiazlied, this is a bug

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:42:47 +08:00
Jukka Laitinen
9413b6f331 sched/signal/sig_dispatch.c: Simplify the nxsig_dispatch
The nxsig_dispatch should just deliver the signal to either a
thread by pid (tid) or to the process (group) by pid.

Simplify the code so that the intent is more obvious.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-09-27 21:42:03 +08:00
Jukka Laitinen
a4c42e54f7 sched/signal/sig_dispatch.c: Correct signal dispatch to specific thread
The signal dispatch is called from interrupt handlers as well, so
this_task() is wrong. The thread to which the signal is supposed to
be delivered is known (stcb), use that.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-09-27 21:42:03 +08:00
raiden00pl
628c05acf3 arch/sim/sim_canchar.c: fix CAN flags decoding for message
fix CAN flags decoding for SIM CAN

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-09-27 21:41:55 +08:00
wangchengdong
e83012b540 arm/armv8-r: remove redundant and misleading pointer in arm_syscall()
replace **running_task with *running_task, and updated several other places
 accordingly

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:41:47 +08:00
Lars Kruse
b3dd8b2796 arch/arm/rp2040: merge conflicting definitions of hw_* functions
The functions `hw_write_masked` and `hw_xor_bits` (as defined in
pico-sdk) were defined in NuttX twice.
Additionally these definitions were in conflict (one lacked the
`volatile` modifier).

Now these functions and their dependencies are defined in a new header
file.
Its name is based on the filename of the original definition in
pico-sdk:

  src/rp2_common/hardware_base/include/hardware/address_mapped.h

This change should fix the potential issue of GPIO operations failing
due to compiler optimizations caused by the absence of `volatile`.

Signed-off-by: Lars Kruse <devel@sumpfralle.de>
2025-09-27 21:41:41 +08:00
wangchengdong
ba0a5df95d arch/tricore: fix tasking compiler linking error
Add "add_link_options(--no-default-libraries)" ToolchainTasking.cmake
  Add "LDFLAGS += --no-default-libraries" in ToolchainTasking.defs

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:41:33 +08:00
chao an
cf616fd619 arch/arm/armv8-m: stack pointer should be 8-byte aligned in signal context
Since the alignment of the signal context is affected by XCPTCONTEXT_SIZE in
different Kconfig,  sometimes the stack pointer is not aligned to 8 bytes, this
is not what the software and compiler expect, for example,  if va_list() obtains
wide data of type long long, the offset will be wrong, So in this commit, we set
stack-aligned the base offset so that the correct offset will be set during context
restoration.

1. test code:
|            void signal_handler(int signo, siginfo_t *info, void *context) {
|                long long ttt = 1024000;
|                printf("%lld\n", ttt);
|            }
|
|            struct itimerspec its = {   .it_value.tv_sec  = 1,
|                .it_value.tv_nsec = 0,
|                .it_interval.tv_sec  = 1,
|                .it_interval.tv_nsec = 0
|            };
|
|            int main(int argc, FAR char *argv[])
|            {
|                struct sigevent evp;
|                timer_t timer_id;
|
|                memset(&evp, 0, sizeof(evp));
|                evp.sigev_notify          = SIGEV_SIGNAL | SIGEV_THREAD_ID;
|                evp.sigev_signo           = SIGALRM;
|                evp.sigev_notify_thread_id = gettid();
|
|                timer_create(CLOCK_REALTIME, &evp, &timer_id);
|
|
|                struct sigaction sa;
|                memset(&sa, 0, sizeof(sa));
|                sa.sa_sigaction = signal_handler;
|                sa.sa_flags = SA_SIGINFO;
|                sigemptyset(&sa.sa_mask);
|
|                sigaction(SIGALRM, &sa, NULL);
|
|                timer_settime(timer_id, 0, &its, NULL);
|
|                while (1)
|                    sleep(1);
|
|                return 0;
|            }

2. before this change:

|            NuttShell (NSH) NuttX-12.10.0
|            nsh> hello
|            4398046527890440
|            4398046527890472
|            4398046527890504
|            4398046527890536

3. after this change:

|            NuttShell (NSH) NuttX-12.10.0
|            nsh> hello
|            1024000
|            1024000
|            1024000
|            1024000

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-09-27 21:41:20 +08:00
wangchengdong
754eab4687 arch/tricore: allow user defined compiler path
prefix compiler with ${TOOLCHAIN_PREFIX}

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:41:13 +08:00
wangchengdong
a039fc7097 arch: fix stack alignment bug for arm and tricore arch
The stack alignment operation in tricore and arm porting
   only aligns the size of the stack, forget to align the start addr
   of the stack, this patch fixes it.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:41:05 +08:00
wangchengdong
21e1596dff arch: fix alignment bug for archs that need stack alignment
These archs only align the size of the stack, forgeting to do the
 stack start addr alignment, this patch fixes it.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:40:58 +08:00
Jukka Laitinen
382ed6550f imx9/imx9_usbdev.c: Fix interrupt handling in SMP mode
The interrupt handler accesses the device as well as the driver's private
data. Use critical_section for mutual exclusion with drivers/usbdev, which
also protects the same data with critical_section.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-09-27 21:40:50 +08:00
Tiago Medicci Serrano
70b5aa4df0 include/nuttx/spi/spi_bitbang: Fix incompatible pointer type issue
This commit fixes the incompatible pointer type issue due to
incompatible types of the `bitexchange_t` callback.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-09-27 21:40:43 +08:00
MASZ
94ad260843 arch/arm/stm32h7: Fix and enhance WWDG (Window Watchdog) support
This patch addresses several issues and adds enhancements to the WWDG
(Window Watchdog) implementation for the STM32H7 platform. The changes
include:

- Extend the definitions of WWDG_CFR_PCLK1 macros to support dividers
  up to 128, and update the stm32_settimeout() function to consider this
  extended range.
- Fix the "elapsed" calculations in the stm32_getstatus() function to
  ensure correct time remaining calculations.
- Clear the EWIF (Early Wakeup Interrupt Flag) bit in the stm32_start()
  function, as this bit might be set by hardware before the watchdog is
  actually started.
- Initialize the WWDG clock in the RCC_APB3ENR register and set the
  RCC_GCR_WW1RSC bit as per the STM32 reference manual to ensure proper
  behavior when enabling the WWDG1.

Signed-off-by: Szymon Magrian <szymon.magrian@hexagon.com>
2025-09-27 21:40:35 +08:00
Huang Qi
3af0ab64bb arch/risc-v: espressif: temperature: Fix incorrect pointer casting
Fix bug in temperature sensor driver where direct casting of lower half
structure pointer could lead to incorrect memory access.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2025-09-27 21:40:28 +08:00
Huang Qi
47e4576b1c arch/xtensa: espressif: temperature: Fix incorrect pointer casting
Fix bug in temperature sensor driver where direct casting of lower half
structure pointer could lead to incorrect memory access.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2025-09-27 21:40:28 +08:00
Huang Qi
106058cc1f boards: esp32s3-lckfb-szpi: Remove obsolete device function prototypes
Remove function prototypes for BMP180 pressure sensor and CS4344 audio DAC
devices that were never actually present on this board configuration. This
cleans up the header file by removing declarations for non-existent hardware.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2025-09-27 21:40:20 +08:00
wangchengdong
80f5a06c06 arch/tricore: Align Makefile with Cmake for tasking linker script preprocessing
Provide linker script preprocessing function porting for
    tasking compiler

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-09-27 21:40:12 +08:00
Tiago Medicci Serrano
5e9e237868 Documentation: Add entry for ESP32-[C3|C6|H2]'s buttons defconfig
This commit adds an entry on Documentation regarding ESP32-C3,
ESP32-C6 and ESP32-H2 boards that implement the `buttons` defconfig

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-09-27 21:40:02 +08:00
Tiago Medicci Serrano
6db437e2de boards/esp32[c3|c6|h2]: Fix GPIO function used by the button
This commit fixes the function to select the GPIO behavior for the
pins associated to the board's button.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-09-27 21:40:02 +08:00
5946 changed files with 13748 additions and 105695 deletions

View file

@ -8,7 +8,6 @@ exclude-file = .codespell-ignore-lines
# Ignore complete files (e.g. legal text or other immutable material). # Ignore complete files (e.g. legal text or other immutable material).
skip = skip =
LICENSE, LICENSE,
*/CODEOWNERS,
# Ignore seemingly misspelled words. # Ignore seemingly misspelled words.
# lowercase: case insensitive # lowercase: case insensitive

22909
.github/CODEOWNERS vendored

File diff suppressed because it is too large Load diff

View file

@ -13,21 +13,9 @@
## Testing ## Testing
*This section should provide a detailed description of what you did *Update this section with details on how did you verify the change,
to verify your changes work and do not break existing code.* what Host was used for build (OS, CPU, compiler, ..), what Target was
used for verification (arch, board:config, ..), etc. Providing build
and runtime logs from before and after change is highly appreciated.*
*Please provide information about your host machine, the board(s) you
tested your changes on, and how you tested. Logs should be included.*
*For example, when changing something in the core OS functions, you
may want to run the OSTest application to verify that there are no
regressions. Changes to ADC code may warrant running the `adc`
example. Adding a new uORB driver may require that you run
`uorb_listener` to verify correct operation.*
*Pure documentation changes can just be tested with `make html`
(see docs) and verification of the correct format in your
browser.*
**_PRs without testing information will not be accepted. We will
request test logs._**

View file

@ -17,10 +17,8 @@ on:
paths-ignore: paths-ignore:
- 'AUTHORS' - 'AUTHORS'
- 'CONTRIBUTING.md' - 'CONTRIBUTING.md'
- '**/CODEOWNERS'
- 'Documentation/**' - 'Documentation/**'
- 'tools/ci/docker/linux/**' - 'tools/ci/docker/linux/**'
- 'tools/codeowners/*'
push: push:
paths-ignore: paths-ignore:
- 'AUTHORS' - 'AUTHORS'
@ -245,7 +243,7 @@ jobs:
# Released version of Cython has issues with Python 11. Set runner to use Python 3.10 # Released version of Cython has issues with Python 11. Set runner to use Python 3.10
# https://github.com/cython/cython/issues/4500 # https://github.com/cython/cython/issues/4500
- uses: actions/setup-python@v6 - uses: actions/setup-python@v5
with: with:
python-version: '3.10' python-version: '3.10'
- name: Run Builds - name: Run Builds
@ -306,7 +304,7 @@ jobs:
zlib-devel zlib-devel
cmake cmake
ninja ninja
python-pip python-pip
vim vim
- name: pip3 install - name: pip3 install
@ -361,7 +359,7 @@ jobs:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
# Set up Python environment and install kconfiglib # Set up Python environment and install kconfiglib
- name: Set up Python and install kconfiglib - name: Set up Python and install kconfiglib
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: '3.10' python-version: '3.10'
- name: Install kconfiglib - name: Install kconfiglib

View file

@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- uses: actions/setup-python@v6 - uses: actions/setup-python@v5
with: with:
python-version: '3.8' python-version: '3.8'
- name: Generate Documentation - name: Generate Documentation

View file

@ -23,7 +23,7 @@ jobs:
issues: write issues: write
steps: steps:
- name: Add labels issues automatically based on their body. - name: Add labels issues automatically based on their body.
uses: actions/github-script@v8 uses: actions/github-script@v7
with: with:
script: | script: |
const body = context.payload.issue.body; const body = context.payload.issue.body;

View file

@ -0,0 +1,390 @@
NuttX-12.11.0
------------
What's New In This Release
Major Changes to Core OS
Sched
* [#16554](https://github.com/apache/nuttx/pull/16554) sched: assert: Print Stack pointer value when not within the stack
* [#16673](https://github.com/apache/nuttx/pull/16673) sched: Fix smp scheduling
* [#16919](https://github.com/apache/nuttx/pull/16919) sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
* [#16927](https://github.com/apache/nuttx/pull/16927) sched/signal: Old signal action need save sa_user
* [#16481](https://github.com/apache/nuttx/pull/16481) sched/wdog: Replace periodical timer with the wd_start_next.
* [#16545](https://github.com/apache/nuttx/pull/16545) sched/wqueue: Fix windows compilation errors.
* [#16593](https://github.com/apache/nuttx/pull/16593) sched/wqueue: Fix windows compilation errors.
MM
* [#16617](https://github.com/apache/nuttx/pull/16617) mm: add CONFIG_MM_NODE_GUARDSIZE option
* [#16653](https://github.com/apache/nuttx/pull/16653) mm/Kasan: Fixed some bugs
libc
* [#16568](https://github.com/apache/nuttx/pull/16568) libc: Change atomic_fetch_cxx to macro
* [#16768](https://github.com/apache/nuttx/pull/16768) libc: fix assert "Free memory from the wrong heap" with flat mode and…
* [#16713](https://github.com/apache/nuttx/pull/16713) libc/idr: Fix Use-After-Free during idr_destroy()
* [#16675](https://github.com/apache/nuttx/pull/16675) libc/mcount: add armv6m mcount implementation
* [#16811](https://github.com/apache/nuttx/pull/16811) libs/libc/netdb: Optimize the DNS timeout calculation logic
* [#16932](https://github.com/apache/nuttx/pull/16932) libs/libc/semaphore: allow nxsem_init to negative value
* [#16614](https://github.com/apache/nuttx/pull/16614) libbuiltin/gcov: Upgrade gcov function
* [#16786](https://github.com/apache/nuttx/pull/16786) Revert "libs/libc/stdlib/lib_exit.c: fix multiple definition of __dso…
Tools
* [#16563](https://github.com/apache/nuttx/pull/16563) tools: Modify refresh.sh to support update all configs from a board
* [#16650](https://github.com/apache/nuttx/pull/16650) tools/checkpatch.sh: add -x option to auto-format Python files.
* [#16912](https://github.com/apache/nuttx/pull/16912) tools/checkpatch.sh: check git commit format
* [#16724](https://github.com/apache/nuttx/pull/16724) tools/espressif: Add risc-v compiler info dump for Espressif devices
* [#16763](https://github.com/apache/nuttx/pull/16763) tools/nix: Add Nix flake for reproducible dev environment
* [#16924](https://github.com/apache/nuttx/pull/16924) tools/nix: move nix flakes to tools/
* [#16831](https://github.com/apache/nuttx/pull/16831) tools/nix: split flake into root and Documentation
* [#16759](https://github.com/apache/nuttx/pull/16759) tools/nxstyle.c: Updating white list to xedge example
* [#16855](https://github.com/apache/nuttx/pull/16855) tools/rp{2040,23xx}: Ensure that picotool is found or built
* [#16667](https://github.com/apache/nuttx/pull/16667) tools/process_config.sh: Fix sed errors
* [#16546](https://github.com/apache/nuttx/pull/16546) tools/testbuild.ps1: Windows fix the redirect error stream
* [#16711](https://github.com/apache/nuttx/pull/16711) toolchain/arm: Fix crash caused by clang compiling with -mfpu=fpv5-d16 and -march=armv8.1-m.main+mve.fp+fp.dp
* [#16709](https://github.com/apache/nuttx/pull/16709) toolchain/arm: Fix link parameter error
* [#16720](https://github.com/apache/nuttx/pull/16720) toolchain/armclang: Fix armclang config
Build System
Improvements
* [#16880](https://github.com/apache/nuttx/pull/16880) arch: Add Cmake build support for raspberrypi-4b board & bcm2711 chip
* [#16475](https://github.com/apache/nuttx/pull/16475) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
* [#16579](https://github.com/apache/nuttx/pull/16579) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
* [#16647](https://github.com/apache/nuttx/pull/16647) arch/arm64/fvp-v8r: support cmake compile
* [#16581](https://github.com/apache/nuttx/pull/16581) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of …
* [#16477](https://github.com/apache/nuttx/pull/16477) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.c
* [#16794](https://github.com/apache/nuttx/pull/16794) arm: CMake build for the i.MX RT series implemented.
* [#16627](https://github.com/apache/nuttx/pull/16627) Arm32 v8m support cmake clang compile
* [#16922](https://github.com/apache/nuttx/pull/16922) boards/arm/imxrt: CMake added imxrt1020-evk imxrt1050-evk boards
* [#16918](https://github.com/apache/nuttx/pull/16918) boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boards
* [#16639](https://github.com/apache/nuttx/pull/16639) cmake/arm64:   support clang compile
* [#16547](https://github.com/apache/nuttx/pull/16547) cmake(bugfix):fix VERSION genarator strip error in CMake build
* [#16594](https://github.com/apache/nuttx/pull/16594) cmake(bugfix):fix VERSION genarator strip error in CMake build
* [#16751](https://github.com/apache/nuttx/pull/16751) cmake(bugfix):add default c++ search path
* [#16897](https://github.com/apache/nuttx/pull/16897) Cmake: add defconfig preprocess capability in Cmake build environment(recursively expand #include)
* [#16721](https://github.com/apache/nuttx/pull/16721) cmake: enhance the function of cmake nuttx_wildcard_sources
* [#16867](https://github.com/apache/nuttx/pull/16867) drivers/analog/CMakeLists.txt: Aligned Cmake with Make
* [#16870](https://github.com/apache/nuttx/pull/16870) drivers/audio/CMakeLists.txt: Aligned Cmake with Make
* [#16873](https://github.com/apache/nuttx/pull/16873) drivers/ioexpander/CMakeLists.txt: Aligned Cmake with Make
* [#16871](https://github.com/apache/nuttx/pull/16871) drivers/leds/CMakeLists.txt: Aligned Cmake with Make
* [#16913](https://github.com/apache/nuttx/pull/16913) drivers/net/CMakeLists.txt: Aligned Cmake with Make
* [#16620](https://github.com/apache/nuttx/pull/16620) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
* [#16633](https://github.com/apache/nuttx/pull/16633) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
* [#16616](https://github.com/apache/nuttx/pull/16616) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
* [#16634](https://github.com/apache/nuttx/pull/16634) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
* [#16737](https://github.com/apache/nuttx/pull/16737) toolchain/arm64/cmake: Corrected the writing of arm64 cmake search library
* [#16849](https://github.com/apache/nuttx/pull/16849) Make/Toolchain.defs: add the AR_EXTRACT command
Architectural Support
Improvements
ARM
* [#16806](https://github.com/apache/nuttx/pull/16806) arch/*/*_sigdeliver.c: Fix a race condition is signal delivery for SMP
* [#16657](https://github.com/apache/nuttx/pull/16657) arch/arm: Add gic lock for GICD_ICFGR RMW operations.
* [#16881](https://github.com/apache/nuttx/pull/16881) arch/arm: Add missing barriers.h
* [#16669](https://github.com/apache/nuttx/pull/16669) arch/arm/*/stm32_fdcan_sock.c: prevent interrupt flood on errors.
* [#16611](https://github.com/apache/nuttx/pull/16611) arch/arm/armv7-a: Support hardware debugpoint to  enhance gdbstub
* [#16752](https://github.com/apache/nuttx/pull/16752) arch/arm/cxd56xx: Fix bug that causes wake-up by unused gpio interrupt
* [#16797](https://github.com/apache/nuttx/pull/16797) arch/arm/imxrt: Initial modification to support two USB Controllers
* [#16478](https://github.com/apache/nuttx/pull/16478) arch/arm/imxrt: Serial add RXDMA support for singlewire mode
* [#16703](https://github.com/apache/nuttx/pull/16703) arch/arm/rp23xx: Fix gpio  for RP2350B
* [#16704](https://github.com/apache/nuttx/pull/16704) arch/arm/rp23xx: spi unset peripheral before  to modify Spi parameters
* [#16837](https://github.com/apache/nuttx/pull/16837) arch/arm/rp2040: Fix typos in ADC and GPIO macro names
* [#16840](https://github.com/apache/nuttx/pull/16840) arch/arm/rp2040: Implement GPIO output override functionality
* [#16886](https://github.com/apache/nuttx/pull/16886) arch/arm/rp2040: Silence "LOAD segment with RWX permissions" linker warnings
* [#16876](https://github.com/apache/nuttx/pull/16876) arch/arm/rp2040: Support pico-sdk 2.2.0
* [#16842](https://github.com/apache/nuttx/pull/16842) arch/arm/rp2040: Support non-sequential ADC channels and standardize internal function names
* [#16783](https://github.com/apache/nuttx/pull/16783) arch/arm/samv7: add support for pin to pin compatible pic32cz ca70 series and its evaluation kit
* [#16901](https://github.com/apache/nuttx/pull/16901) arch/arm/samv7: add support for progmem in PIC32CZ CA70 series
* [#16907](https://github.com/apache/nuttx/pull/16907) arch/arm/samv7: fix compile warning
* [#16522](https://github.com/apache/nuttx/pull/16522) arch/arm/samv7: init perf events if enabled
* [#16572](https://github.com/apache/nuttx/pull/16572) arch/arm/samv7: set correct SPI mode during init
* [#16465](https://github.com/apache/nuttx/pull/16465) arch/arm/samv7: set correct SPI mode during init
* [#16541](https://github.com/apache/nuttx/pull/16541) arch/arm/stm32: add STM32 I2C Slave support f…
* [#16532](https://github.com/apache/nuttx/pull/16532) arch/arm/stm32: add support for ADC trigger from TRGO event
* [#16534](https://github.com/apache/nuttx/pull/16534) arch/arm/stm32: add support for batch DMA transfer
* [#16680](https://github.com/apache/nuttx/pull/16680) arch/arm/stm32{h5|h7|l4}/adc: move ADC_MAX_SAMPLES to Kconfig
* [#16530](https://github.com/apache/nuttx/pull/16530) arch/arm/stm32f0l0g0: add TIMER trigger for ADC
* [#16514](https://github.com/apache/nuttx/pull/16514) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
* [#16589](https://github.com/apache/nuttx/pull/16589) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
* [#16810](https://github.com/apache/nuttx/pull/16810) arch/arm/stm32f0l0g0: Fix I2C IRQ numbers
* [#16543](https://github.com/apache/nuttx/pull/16543) arch/arm/stm32f0l0g0: Improve STM32G0 peripheral config granularity
* [#16670](https://github.com/apache/nuttx/pull/16670) arch/arm/stm32f0l0g0: move ADC_MAX_SAMPLES to Kconfig
* [#16513](https://github.com/apache/nuttx/pull/16513) arch/arm/stm32f0l0g0: remove references to CONFIG_STM32F0L0G0_FORCEPOWER
* [#16557](https://github.com/apache/nuttx/pull/16557) arch/arm/stm32f0l0g0: STM32G0 DMA and ADC Support
* [#16497](https://github.com/apache/nuttx/pull/16497) arch/arm/stm32f0l0g0: UID support for F0, L0 and C0
* [#16517](https://github.com/apache/nuttx/pull/16517) arch/arm/stm32f7: Add missing RCC include
* [#16909](https://github.com/apache/nuttx/pull/16909) arch/arm/stm32f7: Fix "unused variable" warning
* [#16860](https://github.com/apache/nuttx/pull/16860) arch/arm/stm32f7: Fix I2C4 SDA pin assignment
* [#16827](https://github.com/apache/nuttx/pull/16827) arch/arm/stm32h7: Fix timer capture upper half driver registration
* [#16809](https://github.com/apache/nuttx/pull/16809) arch/arm/stm32h7: Port timer capture driver from stm32
* [#16705](https://github.com/apache/nuttx/pull/16705) arch/arm/stm32h7: support for /dev/random device
* [#16706](https://github.com/apache/nuttx/pull/16706) arch/arm/STM32H5: Add DMA and ADC DMA support
* [#16776](https://github.com/apache/nuttx/pull/16776) arch/arm/stm32h5: Add DMA Support to STM32H5 Serial Driver
* [#16708](https://github.com/apache/nuttx/pull/16708) arch/arm/STM32H5: Add oversampling and resolution support for ADC
* [#16746](https://github.com/apache/nuttx/pull/16746) arch/arm/stm32h5: Initial Driver for STM32H5 Digital Temperature Sensor (DTS)
* [#16818](https://github.com/apache/nuttx/pull/16818) arch/arm/stm32h5: Fix STM32H5 FDCAN Driver and Add Test Files
* [#16803](https://github.com/apache/nuttx/pull/16803) arch/arm/stm32h5: Use double-buffer for ADC DMA in Circular Mode
* [#16923](https://github.com/apache/nuttx/pull/16923) arch/arm/xmc4 : fix serial buffer size for unused channel
ARM64
* [#16612](https://github.com/apache/nuttx/pull/16612) arch/arm64: enable arm64 hardware breakpoints
* [#16846](https://github.com/apache/nuttx/pull/16846) arch/arm64: Fix signal delivery in EL1 when MMU is enabled
* [#16826](https://github.com/apache/nuttx/pull/16826) arch/arm64: imx9 add pci dma space and pci outbound space
* [#16884](https://github.com/apache/nuttx/pull/16884) arch/arm64/gicv3: Improve initialization in warm reboot case
* [#16743](https://github.com/apache/nuttx/pull/16743) arch/arm64/imx9: add support for imx95
* [#16727](https://github.com/apache/nuttx/pull/16727) arch/arm64/imx9: eDMA5 Allow sharing with Linux
* [#16844](https://github.com/apache/nuttx/pull/16844) arch/arm64/imx9: Fix first trace
* [#16900](https://github.com/apache/nuttx/pull/16900) arch/arm64/imx9: Fix bus reset
* [#16719](https://github.com/apache/nuttx/pull/16719) arch/arm64/zynq-mpsoc: fix race condition in txint handler
AVR
* [#16687](https://github.com/apache/nuttx/pull/16687) arch/avr: do not copy const variables to RAM
* [#16498](https://github.com/apache/nuttx/pull/16498) arch/avr: fix atomic load functions from arch_atomic.c
* [#16586](https://github.com/apache/nuttx/pull/16586) arch/avr: fix atomic load functions from arch_atomic.c
RISC-V
* [#16692](https://github.com/apache/nuttx/pull/16692) arch/[risc-v/xtensa]: Add SHA accelerator support for esp32[-s2|-s3|-c3|-c6|-h2]
* [#16694](https://github.com/apache/nuttx/pull/16694) arch/risc-v: Add LP_I2C support for esp32[-c6]
* [#16683](https://github.com/apache/nuttx/pull/16683) arch/risc-v: Add LPUART support for esp32[-c6]
* [#16685](https://github.com/apache/nuttx/pull/16685) arch/risc-v: Change DMA functions with common layer for esp32[-c3|-c6|-h2]
* [#16565](https://github.com/apache/nuttx/pull/16565) arch/risc-v: Fix `rv-virt:nsbi[|64]` defconfigs
* [#16676](https://github.com/apache/nuttx/pull/16676) arch/risc-v: fix I2C timeout and board compilation requirements
* [#16921](https://github.com/apache/nuttx/pull/16921) arch/risc-v: Refactor Wi-Fi driver for ESP32-C3|C6
* [#16485](https://github.com/apache/nuttx/pull/16485) arch/risc-v/mpfs: Add optimized perf timer functions
* [#16850](https://github.com/apache/nuttx/pull/16850) arch/risc-v/mpfs: fixes for coremmc and emmcsd
* [#16851](https://github.com/apache/nuttx/pull/16851) arch/risc-v/mpfs: SMP interrupt handling fixes
* [#16903](https://github.com/apache/nuttx/pull/16903) arch/risc-v/mpfs/mpfs_clockconfig.c: Flag out code only used in b…
* [#16529](https://github.com/apache/nuttx/pull/16529) arch/risc-v/ricv_exception.c: Dump the process name at exception in user space
* [#16424](https://github.com/apache/nuttx/pull/16424) arch/risc-v/rp23xx-riscv: Add rp23xx(rp2350)  (Pico 2 board)  RISC-V support
SIM
* [#16742](https://github.com/apache/nuttx/pull/16742) arch/sim: avoid host-call being interrupted before getting errno
TRICORE
* [#16885](https://github.com/apache/nuttx/pull/16885) arch/tricore: add up_trigger_irq
* [#16910](https://github.com/apache/nuttx/pull/16910) arch/tricore: fix ld unrecognized option '-g3'
* [#16917](https://github.com/apache/nuttx/pull/16917) arch/tricore/tricore_irq.c: add up_affinity_irq
X86_64
* [#16787](https://github.com/apache/nuttx/pull/16787) arch/x86_64: Allow specifying alternative compilers via CROSSDEV environment variable
XTENSA
* [#16804](https://github.com/apache/nuttx/pull/16804) arch/xtensa: Fix a race condition in xtensa_sig_deliver for SMP
* [#16750](https://github.com/apache/nuttx/pull/16750) arch/xtensa: fix build break if compiler without ISA - XCHAL_HAVE_THREADPTR support
* [#16686](https://github.com/apache/nuttx/pull/16686) arch/xtensa: Fix dedicated GPIO build error for esp32[-s2|-s3]
* [#16672](https://github.com/apache/nuttx/pull/16672) arch/xtensa: support more than 32 cpu interrupts
* [#16744](https://github.com/apache/nuttx/pull/16744) arch/xtensa/esp32: fix esp32(s3)_async_op() asynchronous operation race issue
* [#16883](https://github.com/apache/nuttx/pull/16883) arch/xtensa/esp32: fix some compilation warnings
* [#16882](https://github.com/apache/nuttx/pull/16882) arch/xtensa/esp32: fix the issue of erasing a wide range of flash sectors
* [#16894](https://github.com/apache/nuttx/pull/16894) arch/xtensa/esp32,esp32s3: Start the "spiflash_op" thread with corret affinity
* [#16878](https://github.com/apache/nuttx/pull/16878) arch/xtensa/esp32s3: Add EXT1 wakeup support in power management
* [#16756](https://github.com/apache/nuttx/pull/16756) arch/xtensa/esp32s3: Fix bug related to the PSRAM-allocated task stack
* [#16566](https://github.com/apache/nuttx/pull/16566) arch/xtensa/esp32s3: Fix Esp32S3 LCD FB resolution.
* [#16603](https://github.com/apache/nuttx/pull/16603) arch/xtensa/esp32s3: Remove LCD Warnings.
* [#16607](https://github.com/apache/nuttx/pull/16607) arch/xtensa/esp32s3: Remove LCD Warnings.
* [#16856](https://github.com/apache/nuttx/pull/16856) arch/xtensa/esp32s2: Remove duplicated lines to fix warning
Driver Support
New Driver Support
* [#16836](https://github.com/apache/nuttx/pull/16836) drivers/analog/ads7046: Add support for ADS7046 ADC
* [#16714](https://github.com/apache/nuttx/pull/16714) drivers/input: Create Single Button Multi Actions
* [#16902](https://github.com/apache/nuttx/pull/16902) drivers/ioexpander: Add support for pcal6416
* [#16934](https://github.com/apache/nuttx/pull/16934) drivers/ioexpander/aw9523b: New driver for AW9523B i/o expander
* [#16217](https://github.com/apache/nuttx/pull/16217) drivers/leds: Add support for KTD2052
* [#16660](https://github.com/apache/nuttx/pull/16660) drivers/net: add IGB network card support
* [#16623](https://github.com/apache/nuttx/pull/16623) drivers/net: add support for the NCV7410 10BASE-T1S SPI MAC-PHY
* [#16605](https://github.com/apache/nuttx/pull/16605) drivers/sensors: add Quectel L86-XXX GNSS uORB sensor driver
* [#16838](https://github.com/apache/nuttx/pull/16838) drivers/sensors/tmp112: Add support for TMP112 temperature sensor
Improvements
* [#16715](https://github.com/apache/nuttx/pull/16715) drivers/analog/ads1115.h: Add ioctl for conversion trigger
* [#16875](https://github.com/apache/nuttx/pull/16875) drivers/can/kvaser_pci: configure number of passes in interrupt handler
* [#16738](https://github.com/apache/nuttx/pull/16738) drivers/fs:Always use register_mtddriver() to register the MTD device (patch2)
* [#16914](https://github.com/apache/nuttx/pull/16914) drivers/i2s/i2schar: Implement ioctl commands and blocking read/write operations
* [#16745](https://github.com/apache/nuttx/pull/16745) drivers/ioexpander/icjx.c: reconfigure icjx after undervoltage
* [#16729](https://github.com/apache/nuttx/pull/16729) drivers/misc/optee: Cache coherency when MMU is disabled
* [#16734](https://github.com/apache/nuttx/pull/16734) drivers/misc/optee: expand RPC suppport for IMX9
* [#16800](https://github.com/apache/nuttx/pull/16800) drivers/misc/optee_smc: Explicitly yield during NW interrupts
* [#16801](https://github.com/apache/nuttx/pull/16801) drivers/misc/optee_smc: Fix sched_yield() on flat builds
* [#16473](https://github.com/apache/nuttx/pull/16473) drivers/mtd: fix compile warning
* [#16577](https://github.com/apache/nuttx/pull/16577) drivers/mtd: fix compile warning
* [#16789](https://github.com/apache/nuttx/pull/16789) drivers/mtd: introduce nvblk
* [#16642](https://github.com/apache/nuttx/pull/16642) drivers/mtd/ftl/bch: Add direct writing method for FTL
* [#16906](https://github.com/apache/nuttx/pull/16906) drivers/net: ksz9477 fixes
* [#16899](https://github.com/apache/nuttx/pull/16899) drivers/net: Remove NCV7410 driver and corresponding board support
* [#16661](https://github.com/apache/nuttx/pull/16661) drivers/net: various fixes for e1000 and igc
* [#16649](https://github.com/apache/nuttx/pull/16649) drivers/net/Kconfig: Move NET_IGC_TXDESC and NET_IGC_RXDESC to NET_IG…
* [#16526](https://github.com/apache/nuttx/pull/16526) drivers/optee: fix compile break
* [#16767](https://github.com/apache/nuttx/pull/16767) drivers/pci: epc add dma heap
* [#16753](https://github.com/apache/nuttx/pull/16753) drivers/segger: Add a kconfig to override Segger SystemView target sources version
* [#16510](https://github.com/apache/nuttx/pull/16510) drivers/segger: Change SEGGER_RTT_LOCK into rspinlock
* [#16512](https://github.com/apache/nuttx/pull/16512) drivers/segger: define a macro using a configuration variable
* [#16805](https://github.com/apache/nuttx/pull/16805) drivers/sensor: Add flags for GNSS satellite
* [#16764](https://github.com/apache/nuttx/pull/16764) drivers/sensors/l86xxx: Fix driver registration crashes
* [#16701](https://github.com/apache/nuttx/pull/16701) drivers/sensors/l86xxx: Fix Kconfig options and dependencies
* [#16821](https://github.com/apache/nuttx/pull/16821) drivers/sensors/l86xxx: Mutex fixes & performance improvements
* [#16778](https://github.com/apache/nuttx/pull/16778) drivers/sensors/l86xxx: Use uORB GNSS lower-half
* [#16717](https://github.com/apache/nuttx/pull/16717) drivers/sensors/nau7802: Added frequency control
* [#16466](https://github.com/apache/nuttx/pull/16466) drivers/serial: fix race conditions
* [#16573](https://github.com/apache/nuttx/pull/16573) drivers/serial: fix race conditions
* [#16820](https://github.com/apache/nuttx/pull/16820) drivers/syslog/syslog_channel.c: fix incompatible-pointer-types compile errors
* [#16677](https://github.com/apache/nuttx/pull/16677) drivers/touchscreen: Add support for mirror/swap
* [#16788](https://github.com/apache/nuttx/pull/16788) drivers/video: add sched_note_mark at fb_remove_paninfo and fb_notify_vsync
Board Support
New Board Support
* [#16443](https://github.com/apache/nuttx/pull/16443) boards/avr/atmega: Added Elegoo Mega2560r3 board
* [#16781](https://github.com/apache/nuttx/pull/16781) boards/imxrt: Add support to ARCX Socket Grid board
* [#16558](https://github.com/apache/nuttx/pull/16558) boards/xtensa/esp32s3: add new esp32s3-8048S043 board
Improvements
* [#16792](https://github.com/apache/nuttx/pull/16792) boards/arm: Fix Kconfig style
* [#16663](https://github.com/apache/nuttx/pull/16663) boards/arm/lpc17xx_40xx/lincoln60: Correct defconfig for THTTPD_CGIINBUFFERSIZ spelling
* [#16833](https://github.com/apache/nuttx/pull/16833) boards/arm/qemu: Change config name of input tool
* [#16931](https://github.com/apache/nuttx/pull/16931) boards/arm/rp23xx/common: update board reset via BOOTROM functions
* [#16707](https://github.com/apache/nuttx/pull/16707) boards/arm/stm32f401rc-rs485: Add support to HX711 ADC
* [#16779](https://github.com/apache/nuttx/pull/16779) boards/arm/stm32f401rc-rs485: Add support to MAX31855 and MAX6675
* [#16780](https://github.com/apache/nuttx/pull/16780) boards/arm/stm32f4discovery: Add support to HX711 ADC
* [#16857](https://github.com/apache/nuttx/pull/16857) board/esp: Revert mtdblock registeration
* [#16866](https://github.com/apache/nuttx/pull/16866) boards/esp32s3: Add SPI slave device support
* [#16725](https://github.com/apache/nuttx/pull/16725) boards/espressif: add support for SDMMC over SPI for ESP32-C3|C6|H2
* [#16812](https://github.com/apache/nuttx/pull/16812) boards/imxrt: Fix issues and add USBHOST support to arcx-socket-grid
* [#16824](https://github.com/apache/nuttx/pull/16824) boards/imxrt/arcx-socket-grid: Remove debug symbols
* [#16535](https://github.com/apache/nuttx/pull/16535) boards/nucleo-f446re: fix adc example
* [#16592](https://github.com/apache/nuttx/pull/16592) boards/nucleo-f446re: fix adc example
* [#16665](https://github.com/apache/nuttx/pull/16665) boards/qemu-armv8a: Add `xedge` example program and documentation
* [#16659](https://github.com/apache/nuttx/pull/16659) boards/qemu-intel64/qemu.ld: add .lbss, .ldata and .lrodata
* [#16848](https://github.com/apache/nuttx/pull/16848) boards/risc-v/rp23xx-rv/common: update board reset via BOOTROM functions
* [#16646](https://github.com/apache/nuttx/pull/16646) boards/riscv-v/esp32c6: Add the NCV7410 10BASE-T1S SPI MAC-PHY support
* [#16898](https://github.com/apache/nuttx/pull/16898) boards/tricore: rename tc397 chip board name
* [#16505](https://github.com/apache/nuttx/pull/16505) boards/xtensa/esp32: Add BLE config to esp32-sparrow
* [#16602](https://github.com/apache/nuttx/pull/16602) boards/xtensa: support SDMMC over SPI on ESP32|S2|S3
* [#16638](https://github.com/apache/nuttx/pull/16638) boards/xtensa/esp32s3/esp32s3-box: Fix ILI9342C color inversion
* [#16681](https://github.com/apache/nuttx/pull/16681) boards/weact-stm32h743 Add sdcard support
* [#16785](https://github.com/apache/nuttx/pull/16785) boards/weact-stm32h743: Add support to ST7735 display
File System
 Improvements
* [#16722](https://github.com/apache/nuttx/pull/16722) fs/block_proxy: fix the issue of the refs count for filep being zeroed out by utilizing dup2
* [#16938](https://github.com/apache/nuttx/pull/16938) fs/fat: Fix wrong alloc used in fat_zero_cluster()
* [#16536](https://github.com/apache/nuttx/pull/16536) fs/fcntl: using ioctl to implement FIOGCLEX/FIOCLEX/FIONCLEX
* [#16832](https://github.com/apache/nuttx/pull/16832) fs/lock: Allow driver lock
* [#16598](https://github.com/apache/nuttx/pull/16598) fs/procfs: fix output format of fd info
* [#16518](https://github.com/apache/nuttx/pull/16518) fs/smartfs: Fix a fatal bug about sector writing after seek
* [#16590](https://github.com/apache/nuttx/pull/16590) fs/smartfs: Fix a fatal bug about sector writing after seek
* [#16490](https://github.com/apache/nuttx/pull/16490) fs/vfs: check if all `iov_base` are accessible
* [#16584](https://github.com/apache/nuttx/pull/16584) fs/vfs: check if all iov_base are accessible
* [#16609](https://github.com/apache/nuttx/pull/16609) fs/vfs: clear filep when call file_open/file_mq_open to avoid random value[bug fix]
* [#16538](https://github.com/apache/nuttx/pull/16538) fs/vfs/fs_close.c: avoid double free if CONFIG_FS_NOTIFY is set
* [#16455](https://github.com/apache/nuttx/pull/16455) fs/vfs/fs_rename: fix directory move operation.
Networking
Improvements
* [#16926](https://github.com/apache/nuttx/pull/16926) include/net/if.h: Add mechanism for MMD access with SIOCxMIIREG ioctls
* [#16628](https://github.com/apache/nuttx/pull/16628) net: Enable TCP/IP backlog by default
* [#16684](https://github.com/apache/nuttx/pull/16684) net/arp: avoid unnecessary ARP requests
* [#16905](https://github.com/apache/nuttx/pull/16905) net/can: fixes and cleanups
* [#16682](https://github.com/apache/nuttx/pull/16682) net/local: correct shutdown state when use UDP mode (To fix issue: https://github.com/apache/nuttx/issues/16555)
* [#16494](https://github.com/apache/nuttx/pull/16494) net/utils: avoid unalign access g_tcp_connections_buffer
* [#16585](https://github.com/apache/nuttx/pull/16585) net/utils: avoid unalign access g_tcp_connections_buffer
* [#16599](https://github.com/apache/nuttx/pull/16599) netdb/lib_dnsquery.c: prevent file descriptor leakage
* [#16606](https://github.com/apache/nuttx/pull/16606) netdb/lib_dnsquery.c: In the IPv6 or IPv4 dns_query_callback() block,…
Unsorted contributions
* [#16644](https://github.com/apache/nuttx/pull/16644) espressif: update lower-half drivers
* [#16467](https://github.com/apache/nuttx/pull/16467) audio/comp: fix build warning caused by invalid return value
* [#16469](https://github.com/apache/nuttx/pull/16469) mcx-nxxx: Add LPI2C driver for mcx-nxxx architecture
* [#16474](https://github.com/apache/nuttx/pull/16474) syslog/rpmsg: disable force put char to lower putc
* [#16479](https://github.com/apache/nuttx/pull/16479) sensors/nau7802: Fix format warning
* [#16482](https://github.com/apache/nuttx/pull/16482) Fix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
* [#16483](https://github.com/apache/nuttx/pull/16483) Segger sysview improvements
* [#16486](https://github.com/apache/nuttx/pull/16486) add spin_lock_irqsave_nopreempt rspin_lock_irqsave_noprempt implement.
* [#16487](https://github.com/apache/nuttx/pull/16487) Fix arch perf events ifdef in alarm
* [#16489](https://github.com/apache/nuttx/pull/16489) Added support obtaining the unique id for the stm32f0l0g0 family
* [#16491](https://github.com/apache/nuttx/pull/16491) espressif[risc-v|xtensa]: Check events when reading PCNT counter value
* [#16492](https://github.com/apache/nuttx/pull/16492) add FDCAN support for STM32C0
* [#16493](https://github.com/apache/nuttx/pull/16493) RFC 5424 implementation for SYSLOG
* [#16495](https://github.com/apache/nuttx/pull/16495) minor stream improvement
* [#16496](https://github.com/apache/nuttx/pull/16496) improve libc/stream subsystem
* [#16500](https://github.com/apache/nuttx/pull/16500) Add ADC support for STM32G0 (along with oversampling)
* [#16508](https://github.com/apache/nuttx/pull/16508) riscv qemu-rv: fix kernel mapping by enabling CONFIG_MM_KMAP in knsh
* [#16509](https://github.com/apache/nuttx/pull/16509) Update the ELF guides
* [#16511](https://github.com/apache/nuttx/pull/16511) nuttx/spinlock: Define empty macro for spin_unlock
* [#16519](https://github.com/apache/nuttx/pull/16519) imx9/smp: Add SMP support for imx93
* [#16527](https://github.com/apache/nuttx/pull/16527) nxgdb/fs: fix exception when failed to parse symbol
* [#16533](https://github.com/apache/nuttx/pull/16533) Update MCUBoot build process for Espressif devices
* [#16540](https://github.com/apache/nuttx/pull/16540) qemu/armv8a: fastboot tcp defconfig + documentation.
* [#16549](https://github.com/apache/nuttx/pull/16549) Minor improve to stream
* [#16550](https://github.com/apache/nuttx/pull/16550) gitignore: add more vim swap files
* [#16552](https://github.com/apache/nuttx/pull/16552) spinlock: Better recursive spinlock implementation.
* [#16556](https://github.com/apache/nuttx/pull/16556) risc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
* [#16562](https://github.com/apache/nuttx/pull/16562) esp32s3: update config and doc for fastboot
* [#16567](https://github.com/apache/nuttx/pull/16567) Move assemble soure files out off gnu folder
* [#16569](https://github.com/apache/nuttx/pull/16569) Refine vfs source file layout
* [#16571](https://github.com/apache/nuttx/pull/16571) remove warnings
* [#16574](https://github.com/apache/nuttx/pull/16574) audio/comp: fix build warning caused by invalid return value
* [#16578](https://github.com/apache/nuttx/pull/16578) syslog/rpmsg: disable force put char to lower putc
* [#16580](https://github.com/apache/nuttx/pull/16580) mcx-nxxx: Add LPI2C driver for mcx-nxxx architecture
* [#16582](https://github.com/apache/nuttx/pull/16582) sensors/nau7802: Fix format warning
* [#16583](https://github.com/apache/nuttx/pull/16583) Fix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
* [#16588](https://github.com/apache/nuttx/pull/16588) riscv qemu-rv: fix kernel mapping by enabling CONFIG_MM_KMAP in knsh …
* [#16591](https://github.com/apache/nuttx/pull/16591) Update MCUBoot build process for Espressif devices
* [#16595](https://github.com/apache/nuttx/pull/16595) risc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
* [#16596](https://github.com/apache/nuttx/pull/16596) Fix arch perf events ifdef in alarm 
* [#16597](https://github.com/apache/nuttx/pull/16597) fix framebuffer config resolution.
* [#16604](https://github.com/apache/nuttx/pull/16604) [ESP32S3] Add LCD defconfig
* [#16615](https://github.com/apache/nuttx/pull/16615) debug/0 address: Add 0 address access panic configuration
* [#16618](https://github.com/apache/nuttx/pull/16618) Enhanced Kasan
* [#16619](https://github.com/apache/nuttx/pull/16619) arm64/v8r: support clang compilation
* [#16629](https://github.com/apache/nuttx/pull/16629) bugfix: share kernel thread group should not dup files from caller group
* [#16635](https://github.com/apache/nuttx/pull/16635) Add a header file as a dependency
* [#16651](https://github.com/apache/nuttx/pull/16651) Refactored the btuart_rxwork function to improve data reception stability.
* [#16654](https://github.com/apache/nuttx/pull/16654) imx9/lpuart: Fix race condition / regression in imx9_txint
* [#16671](https://github.com/apache/nuttx/pull/16671) sem/trywait/atomic: Fix the try wait abort by interrupted caused false failure report.
* [#16674](https://github.com/apache/nuttx/pull/16674) xtensa/espressif: Change LEDC implementation to common one
* [#16690](https://github.com/apache/nuttx/pull/16690) coredump: Fix missing loglevel to logmask conversion
* [#16700](https://github.com/apache/nuttx/pull/16700) sensors/bmi160,270: Fix a bug sensor_time is truncated
* [#16718](https://github.com/apache/nuttx/pull/16718) arm64/qemu: decouple qemu board from chip
* [#16735](https://github.com/apache/nuttx/pull/16735) espressif: fix MCUBoot OTA on Espressif devices.
* [#16754](https://github.com/apache/nuttx/pull/16754) espressif: PCNT: add high and low limit Kconfig options
* [#16765](https://github.com/apache/nuttx/pull/16765) nucleo-h743zi: Add ADC2 support and expand ADC channel list
* [#16769](https://github.com/apache/nuttx/pull/16769) esp32s3_extraheaps.c: add a missing include for xtensa_imm_initialize
* [#16771](https://github.com/apache/nuttx/pull/16771) crypto/cryptosoft: fix aadlen used uninitialized warning
* [#16773](https://github.com/apache/nuttx/pull/16773) add esp32s3-devkit:mbedtls kconfig
* [#16798](https://github.com/apache/nuttx/pull/16798) arm64: porting mu drv and scmi from arm imx9
* [#16807](https://github.com/apache/nuttx/pull/16807) bugix/risc-v/esp32c6: Fix build error of LP_I2C
* [#16813](https://github.com/apache/nuttx/pull/16813) Fix compilation errors with c++
* [#16819](https://github.com/apache/nuttx/pull/16819) Increase buffer sizes for uORB devices
* [#16830](https://github.com/apache/nuttx/pull/16830) h743zi/capture: add doc, defconfig & update make pipeline
* [#16839](https://github.com/apache/nuttx/pull/16839) crypto/hmac: Fix typo in function implementation names
* [#16843](https://github.com/apache/nuttx/pull/16843) pci: epf test default a function
* [#16845](https://github.com/apache/nuttx/pull/16845) sys/socket.h: wrap the outer layer of struct sockaddr_storage with aligned(SS_ALIGNSIZE)
* [#16852](https://github.com/apache/nuttx/pull/16852) risc-v/mpfs: usb: don't try nonexistent ep int flags
* [#16853](https://github.com/apache/nuttx/pull/16853) Mpfs map mtime in userspace
* [#16874](https://github.com/apache/nuttx/pull/16874) Add missing PSE52 interfaces
* [#16879](https://github.com/apache/nuttx/pull/16879) include/nuttx/compiler.h:
Compatibility Concerns
* [#16499](https://github.com/apache/nuttx/pull/16499) [BREAKING] fs/vfs: Separate file descriptors from file descriptions
This PR is a rework of the NuttX file descriptor implementation. The goal is two-fold:
Improve POSIX compliance. The old implementation tied file description
to inode only, not the file struct. POSIX however dictates otherwise.
Fix a bug with descriptor duplication (dup2() and dup3()). There is
an existing race condition with this POSIX API that currently results
in a kernel side crash.
The crash occurs when a partially open / closed file descriptor is
duplicated. The reason for the crash is that even if the descriptor is
closed, the file might still be in use by the kernel (due to e.g. ongoing
write to file). The open file data is changed by file_dup3() and this
causes a crash in the device / drivers themselves as they lose access to
the inode and private data.
The fix is done by separating struct file into file and file descriptor
structs. The file struct can live on even if the descriptor is closed,
fixing the crash. This also fixes the POSIX issue, as two descriptors
can now point to the same file.
The implementation of this PR is based on the modifications made in #16361.
Thank you @pussuw
DEPENDS ON: apache/nuttx-apps#3091
IMPACT
Remove the FS_REFCOUNT config because reference counting is a very necessary feature
that is required in many scenarios to ensure stability.
Rename the functions fs_getfilep, fs_putfilep, and fs_reffilep to file_get, file_put,
and file_ref respectively, to unify the naming convention to file_xxx, such as file_open,
file_ioctl, etc.
Introduce a new fd (file descriptor) structure. If multiple file descriptors (fds) are in
a dup relationship, they can share the same file entity to implement the dup functionality.
Modify the functions nx_close_from_tcb, nx_open_from_tcb, nx_dup2_from_tcb,
and nx_dup3_from_tcb to fdlist_open, fdlist_close, fdlist_dup2, and fdlist_dup3 respectively,
to uniformly operate on file descriptors using fdlist.

View file

@ -2,174 +2,5 @@
``ntpclient`` NTP client ``ntpclient`` NTP client
======================== ========================
The NTP (Network Time Protocol) client is a network utility that synchronizes This is a fragmentary NTP client. It neither well-tested nor
the system clock with time servers over the Internet. This implementation mature nor complete at this point in time.
provides a minimal but functional NTP client for NuttX.
What is NTP?
============
The Network Time Protocol (NTP) is a networking protocol designed to
synchronize clocks of computer systems over packet-switched, variable-latency
data networks. NTP is one of the oldest Internet protocols still in use,
originally designed by David L. Mills of the University of Delaware.
Key features of NTP:
- **High Precision**: NTP can achieve sub-millisecond accuracy on local area
networks and typically 10-100 millisecond accuracy over the Internet
- **Robust Algorithm**: Uses sophisticated algorithms to filter out network
jitter and select the best time sources
- **Hierarchical Structure**: Uses a stratum system where stratum 0 devices
are atomic clocks, stratum 1 servers sync with stratum 0, and so on
- **Fault Tolerance**: Can handle multiple time sources and automatically
switch between them
NTP Protocol Overview
=====================
NTP uses UDP port 123 and follows a client-server model. The protocol
exchanges timestamps to calculate:
- **Offset**: The difference between the client's clock and the server's clock
- **Delay**: The round-trip network delay
- **Dispersion**: The maximum error due to clock frequency tolerance
The NTP packet format (version 3) includes:
- **Leap Indicator**: Warns of an impending leap second
- **Version Number**: NTP version (3 in this implementation)
- **Mode**: Client, server, broadcast, etc.
- **Stratum**: Clock level (0-15)
- **Poll Interval**: Maximum interval between successive messages
- **Precision**: Clock precision
- **Root Delay/Dispersion**: Total delay and dispersion to the reference clock
- **Reference Identifier**: Identifies the reference source
- **Reference Timestamp**: Time when the system clock was last set
- **Originate Timestamp**: Time when the request departed the client
- **Receive Timestamp**: Time when the request arrived at the server
- **Transmit Timestamp**: Time when the reply departed the server
Implementation Details
======================
The NuttX NTP client implementation consists of several key components:
Source Code Structure
---------------------
**ntpclient.c** - Main implementation file containing:
- **Daemon Management**: Functions to start, stop, and manage the NTP daemon
- **Time Synchronization**: Core algorithms for calculating clock offset and delay
- **Network Communication**: UDP socket handling and NTP packet exchange
- **Sample Collection**: Gathering multiple time samples for statistical filtering
**ntpv3.h** - NTP version 3 packet format definitions:
- **ntp_datagram_s**: Complete NTP packet structure
- **ntp_timestamp_s**: 64-bit NTP timestamp format
- **Protocol Constants**: NTP version, modes, and stratum definitions
Key Functions
-------------
- **ntpc_start_with_list()**: Starts the NTP daemon with a list of servers
- **ntpc_start()**: Starts the NTP daemon with default configuration
- **ntpc_stop()**: Stops the running NTP daemon
- **ntpc_status()**: Retrieves current synchronization status and samples
- **ntpc_daemon()**: Main daemon loop that:
- Connects to configured NTP servers
- Sends NTP requests and processes responses
- Calculates clock offset and delay
- Applies time corrections to the system clock
- Continues polling at configured intervals
- **ntpc_get_ntp_sample()**: Performs a single NTP transaction:
- Creates UDP socket to NTP server
- Sends NTP request packet with current timestamp
- Receives and validates NTP response
- Calculates offset and delay using NTP algorithms
- **ntpc_calculate_offset()**: Implements the NTP clock filter algorithm
- Uses four timestamps, calculates offset and delay
- Applies statistical filtering to reduce jitter
- **ntpc_settime()**: Applies time correction to system clock:
- Uses calculated offset to adjust system time
- Handles both positive and negative time adjustments
- Maintains monotonic clock consistency
Configuration Options
=====================
The NTP client can be configured through Kconfig options:
- **CONFIG_NETUTILS_NTPCLIENT_SERVER**: List of NTP server hostnames
- **CONFIG_NETUTILS_NTPCLIENT_PORTNO**: NTP server port (default: 123)
- **CONFIG_NETUTILS_NTPCLIENT_STACKSIZE**: Daemon task stack size
- **CONFIG_NETUTILS_NTPCLIENT_SERVERPRIO**: Daemon task priority
- **CONFIG_NETUTILS_NTPCLIENT_STAY_ON**: Keep polling continuously
- **CONFIG_NETUTILS_NTPCLIENT_POLLDELAYSEC**: Polling interval in seconds
- **CONFIG_NETUTILS_NTPCLIENT_NUM_SAMPLES**: Number of samples for filtering
- **CONFIG_NETUTILS_NTPCLIENT_TIMEOUT_MS**: Network timeout in milliseconds
Usage
=====
The NTP client is typically used through the system commands:
.. note:: The NTP client functionality requires enabling the :code:`SYSTEM_NTPC` option in your configuration.
Make sure to select this option in menuconfig or your Kconfig fragment before building.
- **ntpcstart**: Start the NTP daemon
- **ntpcstop**: Stop the NTP daemon
- **ntpcstatus**: Display synchronization status
Example workflow:
1. Configure network connectivity
2. Start NTP client: ``ntpcstart``
3. Check status: ``ntpcstatus``
4. Verify time: ``date`` command
5. Stop when needed: ``ntpcstop``
The client will automatically:
- Connect to configured NTP servers
- Exchange time information
- Calculate and apply clock corrections
- Continue periodic synchronization
Limitations
===========
This is a minimal NTP client implementation with some limitations:
- **No Authentication**: Does not support NTP authentication (MD5/SHA1)
- **Basic Filtering**: Uses simple statistical filtering, not full NTP algorithms
- **Single Reference**: Does not implement full NTP reference clock selection
- **No Leap Seconds**: Does not handle leap second announcements
- **Limited Error Handling**: Basic error recovery and retry mechanisms
Despite these limitations, the implementation provides sufficient accuracy
for most embedded applications requiring network time synchronization.
Dependencies
============
The NTP client requires:
- **CONFIG_NET**: Network support
- **CONFIG_NET_UDP**: UDP protocol support
- **CONFIG_NET_SOCKOPTS**: Socket options support
- **CONFIG_LIBC_NETDB**: DNS resolution (recommended)
- **CONFIG_HAVE_LONG_LONG**: 64-bit integer support
For best results, ensure:
- Stable network connectivity
- Access to reliable NTP servers
- Sufficient system resources for daemon operation

View file

@ -1,106 +1,3 @@
============================ ============================
``ntpc`` NTP Daemon Commands ``ntpc`` NTP Daemon Commands
============================ ============================
This example demonstrates how to use the NTP client to synchronize system time
and retrieve the current time and date. It uses the Network Time Protocol (NTP)
to provide accurate time synchronization.
Description
-----------
The ntpc example:
- Uses the NTP client library to synchronize system time
- Connects to NTP servers (default: pool.ntp.org)
- Starts the NTP client in the background for continuous synchronization
- Provides commands to check status and stop the NTP client
- Allows management of the NTP client through command line options
Note: This example assumes that network connectivity is already established.
The NTP (Network Time Protocol) is a sophisticated protocol that provides
high-precision time synchronization and is the standard for network time services.
Configuration
-------------
This example requires the following NuttX configuration options:
- CONFIG_NET: Enable networking support
- CONFIG_NET_UDP: Enable UDP support
- CONFIG_NETUTILS_NTPCLIENT: Enable NTP client support
- CONFIG_SYSTEM_NTPC: Enable this example
Additional configuration options:
- CONFIG_NETUTILS_NTPCLIENT_SERVER: NTP server hostname (default: "pool.ntp.org")
Usage
-----
1. Configure your NuttX build with networking support
2. Ensure network connectivity is established (e.g., via NSH network commands)
3. Build and flash the image to your target board
4. Run the commands:
- ``ntpcstart``, ``ntpcstop``, ``ntpcstatus``
**Available Commands:**
- ``ntpcstart`` - Start NTP client in background
- ``ntpcstop`` - Stop the NTP client
- ``ntpcstatus`` - Display NTP client status information
Expected Output
---------------
**Start NTP client (ntpcstart):**
::
Starting NTP client...
Using NTP servers: pool.ntp.org
NTP client started successfully (task ID: 123)
NTP client is now running in the background
**Stop NTP client (ntpcstop):**
::
Stopping NTP client...
Stopped the NTP daemon
**Show NTP status (ntpcstatus):**
::
The number of last samples: 3
[0] srv <ip> offset -0.033502142 delay 0.249973549
[1] srv <ip> offset -0.020698070 delay 0.029928000
[2] srv <ip> offset -0.015448935 delay 0.019815119
**Verify using date command:**
Given network connectivity is available, executing `date` should
give the proper time and date.
::
nsh> ntpcstart
Starting NTP client...
Using NTP servers: 0.pool.ntp.org;1.pool.ntp.org;2.pool.ntp.org
NTP client started successfully (task ID: 10)
NTP client is now running in the background
nsh> date
Fri, Sep 05 18:49:37 2025
Notes
-----
- This example requires internet connectivity
- Network must be configured and connected before running this example
- NTP servers must be accessible (default: pool.ntp.org)
- UDP port 123 (NTP) must not be blocked by firewalls
- The example includes error handling for network failures
- NTP provides more accurate time synchronization than simple time protocols

View file

@ -265,21 +265,6 @@ squash before submitting the Pull Request:
happy, they may suggest squashing and merging again to make a single commit. In this case you would repeat steps happy, they may suggest squashing and merging again to make a single commit. In this case you would repeat steps
1 through 6. 1 through 6.
.. note::
NuttX uses a ``CODEOWNERS`` file to help track which users are "experts"
on certain NuttX subsystems. Sometimes, this will result in certain
reviewers being automatically requested to review your PR if you have
modified a file they are marked as a "code owner" for. This is just to
help contributors get more relevant reviews from someone who knows the
subject area.
If you've created a new file, let's say for a driver, you can add yourself
as a code owner for that file by modifying ``.github/CODEOWNERS``. Read
the `GitHub documentation for CODEOWNERS
<https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners>`_
for more information.
How to Include the Suggestions on Your Pull Request? How to Include the Suggestions on Your Pull Request?
==================================================== ====================================================

View file

@ -90,14 +90,3 @@ Configures the NuttShell (nsh) located at examples/nsh. This NSH
configuration is focused on low level, command-line driver testing. configuration is focused on low level, command-line driver testing.
Built-in applications are supported, but none are enabled. This Built-in applications are supported, but none are enabled. This
configuration does not support a network. configuration does not support a network.
usbdisk
-------
This board profile allows to use USB Thumb driver connected to USB port.
Typically the device will be recognized and created at /dev/sda. The
user could mount it this way::
nsh> mount -t vfat /dev/sda /mnt
Note: It is assumed that the USB Flash drive was formatted as FAT32.

View file

@ -153,6 +153,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
Pressure value = 91526 Pressure value = 91526
Pressure value = 91525 Pressure value = 91525
buttons
-------
This configuration shows the use of the buttons subsystem. It can be used by executing
the ``buttons`` application and pressing the ``BOOT`` button on the board::
nsh> buttons
buttons_main: Starting the button_daemon
buttons_main: button_daemon started
button_daemon: Running
button_daemon: Opening /dev/buttons
button_daemon: Supported BUTTONs 0x01
nsh> Sample = 1
Sample = 0
coremark coremark
-------- --------

View file

@ -600,115 +600,6 @@ to ``Application image secondary slot``.
**After disabling UART Download Mode you will not be able to flash other images through UART.** **After disabling UART Download Mode you will not be able to flash other images through UART.**
Flash Allocation for MCUBoot
----------------------------
When MCUBoot is enabled on ESP32-C3, the flash memory is organized as follows
based on the default KConfig values:
**Flash Layout (MCUBoot Enabled)**
.. list-table::
:header-rows: 1
:widths: 40 20 20
:align: left
* - Region
- Offset
- Size
* - Bootloader
- 0x000000
- 64KB
* - E-Fuse Virtual (see Note)
- 0x010000
- 64KB
* - Primary Application Slot (/dev/ota0)
- 0x020000
- 1MB
* - Secondary Application Slot (/dev/ota1)
- 0x120000
- 1MB
* - Scratch Partition (/dev/otascratch)
- 0x220000
- 256KB
* - Storage MTD (optional)
- 0x260000
- 1MB
* - Available Flash
- 0x360000+
- Remaining
.. raw:: html
<div style="clear: both"></div>
**Note**: The E-Fuse Virtual region is optional and only used when
``ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH`` is enabled. However, this 64KB
location is always allocated in the memory layout to prevent accidental
erasure during board flashing operations, ensuring data preservation if
virtual E-Fuses are later enabled.
.. code-block:: text
Memory Map (Addresses in hex):
0x000000 ┌─────────────────────────────┐
│ │
│ MCUBoot Bootloader │
│ (64KB) │
│ │
0x010000 ├─────────────────────────────┤
│ E-Fuse Virtual │
│ (64KB) │
0x020000 ├─────────────────────────────┤
│ │
│ Primary App Slot │
│ (1MB) │
│ /dev/ota0 │
│ │
0x120000 ├─────────────────────────────┤
│ │
│ Secondary App Slot │
│ (1MB) │
│ /dev/ota1 │
│ │
0x220000 ├─────────────────────────────┤
│ │
│ Scratch Partition │
│ (256KB) │
│ /dev/otascratch │
│ │
0x260000 ├─────────────────────────────┤
│ │
│ Storage MTD (optional) │
│ (1MB) │
│ │
0x360000 ├─────────────────────────────┤
│ │
│ Available Flash │
│ (Remaining) │
│ │
└─────────────────────────────┘
The key KConfig options that control this layout:
- ``ESPRESSIF_OTA_PRIMARY_SLOT_OFFSET`` (default: 0x20000)
- ``ESPRESSIF_OTA_SECONDARY_SLOT_OFFSET`` (default: 0x120000)
- ``ESPRESSIF_OTA_SLOT_SIZE`` (default: 0x100000)
- ``ESPRESSIF_OTA_SCRATCH_OFFSET`` (default: 0x220000)
- ``ESPRESSIF_OTA_SCRATCH_SIZE`` (default: 0x40000)
- ``ESPRESSIF_STORAGE_MTD_OFFSET`` (default: 0x260000 when MCUBoot enabled)
- ``ESPRESSIF_STORAGE_MTD_SIZE`` (default: 0x100000)
For MCUBoot operation:
- The **Primary Slot** contains the currently running application
- The **Secondary Slot** receives OTA updates
- The **Scratch Partition** is used by MCUBoot for image swapping during updates
- MCUBoot manages image validation, confirmation, and rollback functionality
_`Managing esptool on virtual environment` _`Managing esptool on virtual environment`
========================================== ==========================================

View file

@ -120,6 +120,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
Pressure value = 91526 Pressure value = 91526
Pressure value = 91525 Pressure value = 91525
buttons
-------
This configuration shows the use of the buttons subsystem. It can be used by executing
the ``buttons`` application and pressing the ``BOOT`` button on the board::
nsh> buttons
buttons_main: Starting the button_daemon
buttons_main: button_daemon started
button_daemon: Running
button_daemon: Opening /dev/buttons
button_daemon: Supported BUTTONs 0x01
nsh> Sample = 1
Sample = 0
capture capture
-------- --------

View file

@ -99,6 +99,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
Pressure value = 91526 Pressure value = 91526
Pressure value = 91525 Pressure value = 91525
buttons
-------
This configuration shows the use of the buttons subsystem. It can be used by executing
the ``buttons`` application and pressing the ``BOOT`` button on the board::
nsh> buttons
buttons_main: Starting the button_daemon
buttons_main: button_daemon started
button_daemon: Running
button_daemon: Opening /dev/buttons
button_daemon: Supported BUTTONs 0x01
nsh> Sample = 1
Sample = 0
coremark coremark
-------- --------

View file

@ -486,114 +486,6 @@ Finally, the image is loaded but not confirmed.
To make sure it won't rollback to the previous image, you must confirm with ``mcuboot_confirm`` and reboot the board. To make sure it won't rollback to the previous image, you must confirm with ``mcuboot_confirm`` and reboot the board.
The OTA is now complete. The OTA is now complete.
Flash Allocation for MCUBoot
----------------------------
When MCUBoot is enabled on ESP32-C6, the flash memory is organized as follows
based on the default KConfig values:
**Flash Layout (MCUBoot Enabled)**
.. list-table::
:header-rows: 1
:widths: 40 20 20
:align: left
* - Region
- Offset
- Size
* - Bootloader
- 0x000000
- 64KB
* - E-Fuse Virtual (see Note)
- 0x010000
- 64KB
* - Primary Application Slot (/dev/ota0)
- 0x020000
- 1MB
* - Secondary Application Slot (/dev/ota1)
- 0x120000
- 1MB
* - Scratch Partition (/dev/otascratch)
- 0x220000
- 256KB
* - Storage MTD (optional)
- 0x260000
- 1MB
* - Available Flash
- 0x360000+
- Remaining
.. raw:: html
<div style="clear: both"></div>
**Note**: The E-Fuse Virtual region is optional and only used when
``ESPRESSIF_EFUSE_VIRTUAL_KEEP_IN_FLASH`` is enabled. However, this 64KB
location is always allocated in the memory layout to prevent accidental
erasure during board flashing operations, ensuring data preservation if
virtual E-Fuses are later enabled.
.. code-block:: text
Memory Map (Addresses in hex):
0x000000 ┌─────────────────────────────┐
│ │
│ MCUBoot Bootloader │
│ (64KB) │
│ │
0x010000 ├─────────────────────────────┤
│ E-Fuse Virtual │
│ (64KB) │
0x020000 ├─────────────────────────────┤
│ │
│ Primary App Slot │
│ (1MB) │
│ /dev/ota0 │
│ │
0x120000 ├─────────────────────────────┤
│ │
│ Secondary App Slot │
│ (1MB) │
│ /dev/ota1 │
│ │
0x220000 ├─────────────────────────────┤
│ │
│ Scratch Partition │
│ (256KB) │
│ /dev/otascratch │
│ │
0x260000 ├─────────────────────────────┤
│ │
│ Storage MTD (optional) │
│ (1MB) │
│ │
0x360000 ├─────────────────────────────┤
│ │
│ Available Flash │
│ (Remaining) │
│ │
└─────────────────────────────┘
The key KConfig options that control this layout:
- ``ESPRESSIF_OTA_PRIMARY_SLOT_OFFSET`` (default: 0x20000)
- ``ESPRESSIF_OTA_SECONDARY_SLOT_OFFSET`` (default: 0x120000)
- ``ESPRESSIF_OTA_SLOT_SIZE`` (default: 0x100000)
- ``ESPRESSIF_OTA_SCRATCH_OFFSET`` (default: 0x220000)
- ``ESPRESSIF_OTA_SCRATCH_SIZE`` (default: 0x40000)
- ``ESPRESSIF_STORAGE_MTD_OFFSET`` (default: 0x260000 when MCUBoot enabled)
- ``ESPRESSIF_STORAGE_MTD_SIZE`` (default: 0x100000)
For MCUBoot operation:
- The **Primary Slot** contains the currently running application
- The **Secondary Slot** receives OTA updates
- The **Scratch Partition** is used by MCUBoot for image swapping during updates
- MCUBoot manages image validation, confirmation, and rollback functionality
_`Managing esptool on virtual environment` _`Managing esptool on virtual environment`
========================================== ==========================================

View file

@ -119,6 +119,21 @@ You can check that the sensor is working by using the ``bmp180`` application::
Pressure value = 91526 Pressure value = 91526
Pressure value = 91525 Pressure value = 91525
buttons
-------
This configuration shows the use of the buttons subsystem. It can be used by executing
the ``buttons`` application and pressing the ``BOOT`` button on the board::
nsh> buttons
buttons_main: Starting the button_daemon
buttons_main: button_daemon started
button_daemon: Running
button_daemon: Opening /dev/buttons
button_daemon: Supported BUTTONs 0x01
nsh> Sample = 1
Sample = 0
coremark coremark
-------- --------

View file

@ -116,37 +116,6 @@ Notifier Chain Interfaces
:param events: Set of events to wait, 0 will indicate wait from any events :param events: Set of events to wait, 0 will indicate wait from any events
:param eflags: Events flags :param eflags: Events flags
.. c:function:: nxevent_mask_t nxevent_clear(FAR nxevent_t *event, nxevent_mask_t mask)
This function is used to clear specific bits from the event mask of the given event object.
:param event: Address of the event object
:param mask: Bit mask specifying which event flags should be cleared
.. c:function:: nxevent_mask_t nxevent_tickwait_wait(FAR nxevent_t *event, FAR nxevent_wait_t *wait, nxevent_mask_t events, nxevent_flags_t eflags, uint32_t delay);
Wait for all of the specified events for the specified tick time.
This routine is functionally identical to nxevent_tickwait, except that the wait object is explicitly provided by the user.
In nxevent_tickwait, the wait object is allocated as a temporary variable on the event-wait thread's stack, and the user has no visibility or control over it.
Because this object is accessed by both the event-wait thread and the event-post thread, such an arrangement may lead to safety concerns.
To address this, the new function allows the user to supply the wait object directly, providing greater control and improving safety.
:param event: Address of the event object
:param wait: Address of the event wait object
:param events: Set of events to wait, 0 will indicate wait from any events
:param eflags: Events flags
:param delay: Ticks to wait from the start time until the event is posted,
If ticks is zero, then this function is equivalent to nxevent_trywait().
.. c:function:: nxevent_mask_t nxevent_getmask(FAR nxevent_t *event)
This function returns the event mask value of the current event object.
:param event: Location to return the event group reference.
:return: The event mask value of the current event object.
.. c:function:: int nxevent_open(FAR nxevent_t **event, FAR const char *name, int oflags, ...) .. c:function:: int nxevent_open(FAR nxevent_t **event, FAR const char *name, int oflags, ...)
This function establishes a connection between named event groups and a This function establishes a connection between named event groups and a

View file

@ -108,11 +108,6 @@ result.
Semaphore does not support priority inheritance by default. If you need to Semaphore does not support priority inheritance by default. If you need to
use a semaphore as a mutex you need to change its default behavior. use a semaphore as a mutex you need to change its default behavior.
Each semaphore is assigned a default maximum value defined by SEM_VALUE_MAX.
If ``CONFIG_CUSTOM_SEMAPHORE_MAXVALUE`` is enabled, applications may override this limit.
In such cases, the function ``nxsem_setmaxvalue()`` can be used to specify a custom maximum value
for an individual semaphore.
In user space, it is recommended to use pthread_mutex instead of In user space, it is recommended to use pthread_mutex instead of
semaphore for resource protection semaphore for resource protection

2735
Kconfig

File diff suppressed because it is too large Load diff

1917
Kconfig.debug Normal file

File diff suppressed because it is too large Load diff

72
Kconfig.license Normal file
View file

@ -0,0 +1,72 @@
config ALLOW_BSD_COMPONENTS
bool "Use components that have BSD licenses"
default n
---help---
When this option is enabled the project will allow the use
of components that have BSD licenses.
NOTE: Please check that the license for each enabled
component matches your project license.
NOTE: If this option is not set the following components
are not included in the setup menu:
Crypto
AES cypher support
FS
NFS client file system
SPIFFS File System
Wireless
Bluetooth LE support
config ALLOW_GPL_COMPONENTS
bool "Use components that have GPL/LGPL licenses"
default n
---help---
When this option is enabled the project will allow the use
of components that have GPL/LGPL licenses.
NOTE: Please check that the license for each enabled
component matches your project license.
config ALLOW_MIT_COMPONENTS
bool "Use components that have MIT licenses"
default n
---help---
When this option is enabled the project will allow the use
of components that have MIT licenses.
NOTE: Please check that the license for each enabled
component matches your project license.
config ALLOW_BSDNORDIC_COMPONENTS
bool "Use components that have 5-Clause Nordic licenses"
depends on ARCH_CHIP_NRF52 || ARCH_CHIP_NRF53 || ARCH_CHIP_NRF91
default n
---help---
When this option is enabled the project will allow the use
of components that have 5-Clause Nordic licenses.
NOTE: Please check that the license for each enabled
component matches your project license.
config ALLOW_ECLIPSE_COMPONENTS
bool "Use components that have Eclipse Public Licenses"
default n
---help---
When this option is enabled the project will allow the use
of components that have EPL licenses.
NOTE: Please check that the license for each enabled
component matches your project license.
config ALLOW_ICS_COMPONENTS
bool "Use components that have ICS license"
default n
---help---
When this option is enabled the project will allow the use
of components that have ICS licenses.
NOTE: Please check that the license for each enabled
component matches your project license.

506
Kconfig.setup Normal file
View file

@ -0,0 +1,506 @@
menu "Build Setup"
config EXPERIMENTAL
bool "Show experimental options"
---help---
Some features and drivers are considered "experimental" or
development/work-in-progress status. By default, these options are
hidden in the Kconfig menus. Enabling "Show experimental options"
makes these options visible and makes it possible to enable them.
config DEFAULT_SMALL
bool "Default to smallest size"
default n
---help---
When options are present, the default value for certain options will
be the one the results in the smallest size (at a loss of features).
The default is a fuller feature set at a larger size.
NOTE: This option does not prevent you from overriding the default
to select another alternative. Nor does it affect the settings that
have already been selected in your configuration file. This applies
only to new settings that require a default value.
choice
prompt "Build Host Platform"
default HOST_LINUX
config HOST_LINUX
bool "Linux"
config HOST_MACOS
bool "macOS"
endchoice # Build Host Platform
choice
prompt "Windows Build Environment"
default WINDOWS_MSYS
depends on HOST_WINDOWS
config WINDOWS_MSYS
bool "MSYS or MSYS2"
select TOOLCHAIN_WINDOWS
---help---
Build natively in a Cygwin environment with POSIX style paths (like
/cygdrive/c/cygwin/home)
endchoice # Windows Build Environment
menu "Build Configuration"
config BASE_DEFCONFIG
string "Base Configuration"
default ""
---help---
This will be automatically be updated by the configuration
script. This is the base configuration file that was used to create the
current configuration. It is useful for getting the current configuration
on runtime.
config MODULES
bool
option modules
---help---
Automatically selected if KERNEL build is selected.
This selection marks the implementation of Kconfig
to enable the module build function, and is used to
enable 'm' in the triate state. Its semantics are
consistent with Kernel. This selection also effects
the behavior of the 'make export' target and currently
has no effect unless you wish to build loadable applications
in a FLAT build.
choice
prompt "Memory organization"
default BUILD_FLAT
config BUILD_FLAT
bool "Flat address space"
---help---
Build NuttX as one large, executable "blob". All of the code
within the blob can interrupt with all of the other code within
the blob. There are no special privileges, protections, or
restraints.
config BUILD_PROTECTED
bool "NuttX protected build"
depends on ARCH_USE_MPU
select LIB_SYSCALL
select BUILD_2PASS
---help---
Builds NuttX and selected applications as two "blobs": A protected,
privileged kernel blob and a separate unprivileged, user blob. This
requires use of the two pass build with each blob being build on
each pass.
NOTE: This build configuration requires that the platform support
a memory protection unit (MPU). Support, however, may not be
implemented on all platforms.
config BUILD_KERNEL
bool "NuttX kernel build"
depends on ARCH_USE_MMU && ARCH_ADDRENV
select LIB_SYSCALL
select MODULES
---help---
Builds NuttX as a separately compiled kernel. No applications are
built. All user applications must reside in a file system where
they can be loaded into memory for execution.
NOTE: This build configuration requires that the platform support
a memory management unit (MMU) and address environments. Support,
however, may not be implemented on all platforms.
endchoice # Build configuration
config BUILD_PIC
bool "NuttX PIC build"
default n
---help---
Builds NuttX with position-independent code (PIC). This will allow
load NuttX into memory at any address and run it.
endmenu # Build Setup
menu "Customize Header Files"
config ARCH_HAVE_STDINT_H
bool
default n
---help---
Selected by architecture specific logic if the architecture provides
a stdint.h header file.
config ARCH_STDINT_H
bool "stdint.h"
default n
depends on ARCH_HAVE_STDINT_H
---help---
The stdint.h header file can be found at nuttx/include/stdint.h.
However, that header includes logic to redirect the inclusion of an
architecture specific header file like:
#ifdef CONFIG_ARCH_STDINT_H
# include <arch/stdint.h>
#else
...
#endif
Recall that that include path, include/arch, is a symbolic link and
will refer to a version of stdint.h at nuttx/arch/<architecture>/include/stdint.h.
config ARCH_HAVE_STDBOOL_H
bool
default n
---help---
Selected by architecture specific logic if the architecture provides
a stdbool.h header file.
config ARCH_STDBOOL_H
bool "stdbool.h"
default n
depends on ARCH_HAVE_STDBOOL_H
---help---
The stdbool.h header file can be found at nuttx/include/stdbool.h.
However, that header includes logic to redirect the inclusion of an
architecture specific header file like:
#ifdef CONFIG_ARCH_STDBOOL_H
# include <arch/stdbool.h>
#else
...
#endif
Recall that that include path, include/arch, is a symbolic link and
will refer to a version of stdbool.h at nuttx/arch/<architecture>/include/stdbool.h.
config ARCH_HAVE_MATH_H
bool
default n
---help---
Selected by architecture specific logic if the architecture provides
a math.h header file.
config ARCH_MATH_H
bool "math.h"
depends on ARCH_HAVE_MATH_H
default n
---help---
There is also a re-directing version of math.h in the source tree.
However, it resides out-of-the-way at include/nuttx/lib/math.h because it
conflicts too often with the system math.h. If ARCH_MATH_H=y is
defined, however, the top-level makefile will copy the redirecting
math.h header file from include/nuttx/lib/math.h to include/math.h. math.h
will then include the architecture-specific version of math.h that you
must provide at nuttx/arch/>architecture</include/math.h.
#ifdef CONFIG_ARCH_MATH_H
# include <arch/math.h>
#endif
So for the architectures that define ARCH_MATH_H=y, include/math.h
will be the redirecting math.h header file; for the architectures
that don't select ARCH_MATH_H, the redirecting math.h header file
will stay out-of-the-way in include/nuttx/.
config ARCH_FLOAT_H
bool "float.h"
default n
---help---
The float.h header file defines the properties of your floating
point implementation. It would always be best to use your
toolchain's float.h header file but if none is available, a default
float.h header file will provided if this option is selected. However
there is no assurance that the settings in this float.h are actually
correct for your platform!
config DISABLE_FLOAT
bool "Disable floating point"
default n
---help---
Disable floating point support in the compiler. This will reduce
code size and increase performance. This option is only available
on some architectures.
config ARCH_HAVE_STDARG_H
bool
default n
---help---
Selected by architecture specific logic if the architecture provides
a math.h header file.
config ARCH_STDARG_H
bool "stdarg.h"
depends on ARCH_HAVE_STDARG_H
default n
---help---
There is a redirecting version of stdarg.h in the source tree. It
resides out-of-the-way at include/nuttx/lib/stdarg.h. This is
because you should normally use your toolchain's stdarg.h file. But
sometimes, your toolchain's stdarg.h file may have other header
file dependencies and so may not be usable in the NuttX build
environment. In those cases, you may have to create a architecture-
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
If ARCH_STDARG_H=y is defined, the top-level makefile will copy the
re-directing stdarg.h header file from include/nuttx/lib/stdarg.h to
include/stdarg.h. So for the architectures that cannot use their
toolchain's stdarg.h file, they can use this alternative by defining
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
the stdarg.h header file will stay out-of-the-way in include/nuttx/.
config ARCH_HAVE_SETJMP
bool
default n
config ARCH_SETJMP_H
bool "setjmp.h"
default n
depends on ARCH_HAVE_SETJMP
---help---
There is a redirecting version of setjmp.h in the source tree. It
resides out-of-the-way at include/nuttx/lib/setjmp.h. This is
because you should normally use your toolchain's setjmp.h file. But
sometimes, your toolchain's setjmp.h file may have other header
file dependencies and so may not be usable in the NuttX build
environment. In those cases, you may have to create a architecture-
specific setjmp.h header file at nuttx/arch/<architecture>/include/setjmp.h
If ARCH_SETJMP_H=y is defined, the top-level makefile will copy the
re-directing setjmp.h header file from include/nuttx/lib/setjmp.h to
include/setjmp.h. So for the architectures that cannot use their
toolchain's setjmp.h file, they can use this alternative by defining
ARCH_SETJMP_H=y and providing. If ARCH_SETJMP_H, is not defined, then
the setjmp.h header file will stay out-of-the-way in include/nuttx/.
choice
prompt "debug.h selection"
default ARCH_NONE_DEBUG_H
config ARCH_NONE_DEBUG_H
bool "None"
---help---
No debug.h under include/arch/ and include/arch/chip.
config ARCH_DEBUG_H
bool "debug.h"
---help---
The debug.h under include/arch contains architecture dependent debugging primitives
config ARCH_CHIP_DEBUG_H
bool "chip debug.h"
---help---
The debug.h under include/arch/chip contains architecture dependent debugging primitives
config ARCH_BOARD_DEBUG_H
bool "board debug.h"
---help---
The debug.h under include/arch/board contains board dependent debugging primitives
endchoice # debug.h selection
endmenu # Customize Header Files
source "Kconfig.debug"
menuconfig TRACE
bool "Enable tracepoints"
default n
depends on SCHED_INSTRUMENTATION_DUMP
---help---
If this option is enabled, tracepoints at critical code in
the kernel will be enabled.
if TRACE
config TRACE_APP
bool "Enable tracepoints in app"
default n
config TRACE_ARCH
bool "Enable tracepoints in arch"
default n
config TRACE_AUDIO
bool "Enable tracepoints in audio"
default n
config TRACE_BOARDS
bool "Enable tracepoints in boards"
default n
config TRACE_CRYPTO
bool "Enable tracepoints in crypto"
default n
config TRACE_DRIVERS
bool "Enable tracepoints in drivers"
default n
config TRACE_FS
bool "Enable tracepoints in fs"
default n
if TRACE_FS
menu "Trace Fs Support"
config TRACE_LITTLEFS_FS
bool "Enable tracepoints in littlefs"
default n
config TRACE_ROMFS_FS
bool "Enable tracepoints in romfs"
default n
config TRACE_RPMSGFS_FS
bool "Enable tracepoints in rpmsgfs"
default n
endmenu # Trace Fs Support
endif
config TRACE_GRAPHICS
bool "Enable tracepoints in graphics"
default n
config TRACE_INPUT
bool "Enable tracepoints in input"
default n
config TRACE_LIBS
bool "Enable tracepoints in libs"
default n
config TRACE_MM
bool "Enable tracepoints in mm"
default n
config TRACE_NET
bool "Enable tracepoints in net"
default n
config TRACE_SCHED
bool "Enable tracepoints in sched"
default n
config TRACE_VIDEO
bool "Enable tracepoints in video"
default n
config TRACE_WIRELESS
bool "Enable tracepoints in wireless"
default n
endif #TRACE
choice
prompt "Optimization Level"
default DEBUG_NOOPT if DEBUG_SYMBOLS
default DEBUG_FULLOPT if !DEBUG_SYMBOLS
config DEBUG_NOOPT
bool "Suppress Optimization"
---help---
Build without optimization. This is often helpful when debugging code.
config DEBUG_CUSTOMOPT
bool "Custom Optimization"
depends on ARCH_HAVE_CUSTOMOPT
---help---
Select a custom debug level. This is often helpful if you suspect an
optimization level error and want to lower the level of optimization.
config DEBUG_FULLOPT
bool "Normal, Full optimization"
---help---
Build full optimization. This is the normal case for production
firmware.
endchoice # Optimization Level
config DEBUG_OPTLEVEL
string "Custom Optimization Level"
default "/O2" if HOST_WINDOWS
default "-O2"
depends on DEBUG_CUSTOMOPT
---help---
This string represents the custom optimization level that will be
used if DEBUG_CUSTOMOPT.
choice
prompt "Link Time Optimization (LTO)"
default LTO_NONE
---help---
This option enables Link Time Optimization (LTO), which allows the
compiler to optimize binaries globally.
If unsure, select LTO_NONE. Note that LTO is very resource-intensive
so it's disabled by default.
config LTO_NONE
bool "None"
---help---
Build the kernel normally, without Link Time Optimization (LTO).
config LTO_FULL
bool "GNU Full LTO (EXPERIMENTAL)"
depends on ARCH_TOOLCHAIN_GNU
---help---
Link time optimization is implemented as a GCC front end for a bytecode
bytecode representation of GIMPLE that is emitted in special sections
of .o files. Currently, LTO support is enabled in most ELF-based systems,
as well as darwin, cygwin and mingw systems.
config LTO_THIN
bool "Clang ThinLTO (EXPERIMENTAL)"
depends on ARCH_TOOLCHAIN_CLANG
---help---
This option enables Clang's ThinLTO, which allows for parallel
optimization and faster incremental compiles compared to the
CONFIG_LTO_FULL option. More information can be found
from Clang's documentation:
https://clang.llvm.org/docs/ThinLTO.html
If unsure, say Y.
endchoice
config DEBUG_OPT_UNUSED_SECTIONS
bool "Optimization to eliminate the unused input sections"
default y
depends on ARCH_TOOLCHAIN_GNU
---help---
Use these options on systems where the linker can perform optimizations
to improve locality of reference in the instruction space. Most systems
using the ELF object format have linkers with such optimizations.
Enable this option to optimization the unused input sections with the
linker by compiling with " -ffunction-sections -fdata-sections ", and
linking with " --gc-sections ".
config DEBUG_LINK_WHOLE_ARCHIVE
bool "Force every object to be included in the resulting shared library."
default n
depends on DEBUG_OPT_UNUSED_SECTIONS
---help---
Selecting this option will pass "--whole-archive" to ld
when linking NuttX ELF.
config DEBUG_LINK_MAP
bool "Generate link map file"
default y
---help---
Selecting this option will pass "-Map=$(TOPDIR)$(DELIM)nuttx.map" to ld
when linking NuttX ELF. That file can be useful for verifying
and debugging magic section games, and for seeing which
pieces of code get eliminated with DEBUG_OPT_UNUSED_SECTIONS.
config CCACHE
bool "Use ccache"
default n
---help---
If enabled, ccache will be used during the build.
Build artifacts will be cached to a local storage, considerably
reducing build times.
endmenu # Build Setup

View file

@ -20,23 +20,90 @@
# #
############################################################################ ############################################################################
# Check if the system has been configured # Handle the verbosity level first thing in the build process
ifeq ($(wildcard .config),) # Control build verbosity
.DEFAULT default: #
@echo "NuttX has not been configured!" # V=0: Exit silent mode
@echo "To configure the project:" # V=1,2: Enable echo of commands
@echo " tools/configure.sh <config>" # V=2: Enable bug/verbose options in tools and scripts
@echo "For a list of available configurations:"
@echo " tools/configure.sh -L"
else
include .config
# Include the correct Makefile for the selected architecture. ifeq ($(V),)
MAKE := $(MAKE) -s --no-print-directory
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
include tools/Win.mk
else
include tools/Unix.mk
endif endif
ifeq ($(V),1)
export Q :=
else ifeq ($(V),2)
export Q :=
else
export Q := @
endif endif
# New Environment variable NXSPACE is checked first. If set, it will point
# to NuttX workspace root.
NXSPACE ?= $(realpath $(CURDIR)/..)
export NXSPACE
NXBASE := $(realpath $(NXSPACE)/nuttx)
# New BDIR variable defines the board directory.
# There are two ways to run NuttX build system:
# 1) From the board directory (preferred)
# 2) From the NuttX top directory
# In the latter case, BDIR can be ommited as the
# build entry-point will always be the NuttX top directory.
BDIR ?= ${NXBASE}
# New OUT variable will be used as the output directory.
# All the defined target should refer to this variable for their output.
# Preferably, this out variable should be externally provided, for
# portability reasons. Rather than keep the output local to the NuttX
# source tree, this mechanism allows to specify any out-of-tree dir.
# $(NXSPACE)/build is the default output directory, and it's reserved by the
# NuttX build system.
OUT ?= $(realpath $(NXSPACE)/build)
export OUT
# Force the BCFG to always be passed to build process.
# This new Environment variable defines the board:config to be used.
ifndef BCFG
$(info ERROR: Board configuration is not set)
$(info )
$(info Usage:)
$(info make BCFG=<config>)
$(info )
$(info Examples:)
$(info make BCFG=nsh)
$(error Build stopped, BCFG required.)
endif
# External code support
# EXTLIB variable to can be passed to the build system.
# EXTLIB should be the end library that is passed to the nuttx build system
ifdef EXTLIB
TARGETS += ${EXTLIB}
endif
# Support for ROMFS image creation
ifeq (${CONFIG_FS_ROMFS},y)
ifdef ROMFSIMG
TARGETS += ${ROMFSIMG}
else
$(error ROMFSIMG is not defined by the board Makefile)
endif
endif
menuconfig:
menuconfig

4
VERSION Normal file
View file

@ -0,0 +1,4 @@
VERSION_MAJOR = 12
VERSION_MINOR = 10
PATCH = 0
EXTRAVERSION =

View file

@ -1,41 +0,0 @@
# ##############################################################################
# arch/CMakeLists.txt
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. The ASF licenses this
# file to you under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
# ##############################################################################
# Declare arch library. In contrast to other user/kernel pairs built in KERNEL
# mode, on arch/ the "user" portion uses a different set of sources than the
# kernel portion. To keep things simple the naming k<lib> is not used. Instead,
# the "user" portion is named "arch_interface".
nuttx_add_kernel_library(arch)
target_include_directories(arch PRIVATE ${CMAKE_SOURCE_DIR}/sched)
if(CONFIG_BUILD_PROTECTED)
nuttx_add_system_library(arch_interface)
file(TOUCH "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
target_sources(arch_interface PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/empty.c")
target_include_directories(arch_interface PRIVATE ${CMAKE_SOURCE_DIR}/sched)
endif()
# TODO: move this higher up ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
# EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd endif
# include corresponding arch subdirectory
add_subdirectory(${CONFIG_ARCH})

View file

@ -165,19 +165,7 @@ config ARCH_XTENSA
select ARCH_HAVE_SYSCALL_HOOKS select ARCH_HAVE_SYSCALL_HOOKS
select ARCH_HAVE_PERF_EVENTS select ARCH_HAVE_PERF_EVENTS
---help--- ---help---
Cadence® Tensilica® Xtensa® actictures. Cadence® Tensilica® Xtensa® architectures.
config ARCH_Z16
bool "ZNEO"
select ARCH_HAVE_HEAP2
---help---
ZiLOG ZNEO 16-bit architectures (z16f).
config ARCH_Z80
bool "z80"
select ARCH_HAVE_HEAP2
---help---
ZiLOG 8-bit architectures (z80, ez80, z8).
config ARCH_OR1K config ARCH_OR1K
bool "OpenRISC" bool "OpenRISC"
@ -217,8 +205,6 @@ config ARCH
default "x86" if ARCH_X86 default "x86" if ARCH_X86
default "x86_64" if ARCH_X86_64 default "x86_64" if ARCH_X86_64
default "xtensa" if ARCH_XTENSA default "xtensa" if ARCH_XTENSA
default "z16" if ARCH_Z16
default "z80" if ARCH_Z80
default "or1k" if ARCH_OR1K default "or1k" if ARCH_OR1K
default "sparc" if ARCH_SPARC default "sparc" if ARCH_SPARC
default "tricore" if ARCH_TRICORE default "tricore" if ARCH_TRICORE
@ -235,50 +221,17 @@ source "arch/sim/Kconfig"
source "arch/x86/Kconfig" source "arch/x86/Kconfig"
source "arch/x86_64/Kconfig" source "arch/x86_64/Kconfig"
source "arch/xtensa/Kconfig" source "arch/xtensa/Kconfig"
<<<<<<< HEAD
source "arch/z16/Kconfig" source "arch/z16/Kconfig"
source "arch/z80/Kconfig" source "arch/z80/Kconfig"
=======
endif
if ARCH_OR1K
>>>>>>> 753c7b2dd6 (walnux: moveout)
source "arch/or1k/Kconfig" source "arch/or1k/Kconfig"
source "arch/sparc/Kconfig" source "arch/sparc/Kconfig"
source "arch/tricore/Kconfig" source "arch/tricore/Kconfig"
config ARCH_CHIP_CUSTOM
bool "Custom Chip Support"
default n
if ARCH_CHIP_CUSTOM
menu "Custom Chip Configuration"
config ARCH_CHIP_CUSTOM_NAME
string "Custom chip name"
default ""
---help---
This is a name for the chip. It is not used except to return the
information via the NSH uname command.
config ARCH_CHIP_CUSTOM_DIR
string "Custom chip directory"
default ""
---help---
If the custom chip configuration is selected, then it is necessary
to also tell the build system where it can find the chip directory
for the custom chip.
In this case, the chip directory is assumed to lie outside the
NuttX directory. The provided path must then be a full, absolute
path to some location outside of the NuttX source tree (like
"~/projects/mychip").
config ARCH_CHIP_CUSTOM_DIR_RELPATH
bool "Relative custom chip directory"
default y
---help---
Specifies that the chip directory is relative to the NuttX directory.
endmenu # Custom Chip Configuration
endif #ARCH_CHIP_CUSTOM
source "$BINDIR/arch/dummy/Kconfig"
config ARCH_TOOLCHAIN_GNU config ARCH_TOOLCHAIN_GNU
bool bool
default n default n
@ -309,7 +262,7 @@ config ARCH_TOOLCHAIN_IAR
config ARCH_TOOLCHAIN_TASKING config ARCH_TOOLCHAIN_TASKING
bool bool
default n default n
config ARCH_GNU_NO_WEAKFUNCTIONS config ARCH_GNU_NO_WEAKFUNCTIONS
bool bool

View file

@ -1,23 +0,0 @@
# ##############################################################################
# arch/arm/CMakeLists.txt
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. The ASF licenses this
# file to you under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
# ##############################################################################
nuttx_add_subdirectory()

File diff suppressed because it is too large Load diff

345
arch/arm/Kconfig.arch Normal file
View file

@ -0,0 +1,345 @@
config ARCH_ARM7TDMI
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
---help---
The Arm7TDMI-S is an excellent workhorse processor capable of a wide
array of applications. Traditionally used in mobile handsets, the
processor is now broadly in many non-mobile applications.
config ARCH_ARM920T
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
---help---
The ARM9 processor family is built around the ARM9TDMI processor and
incorporates the 16-bit Thumb instruction set. The ARM9 Thumb family
includes the ARM920T and ARM922T cached processor macrocells:
- Dual 16k caches for applications running Symbian OS, Palm OS,
Linux and Windows CE,
- Dual 8k caches for applications running Symbian OS, Palm OS, Linux
and Windows CE Applications
config ARCH_ARM926EJS
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
---help---
Arm926EJ-S is the entry point processor capable of supporting full
Operating Systems including Linux, WindowsCE, and Symbian.
The ARM9E processor family enables single processor solutions for
microcontroller, DSP and Java applications. The ARM9E family of
products are DSP-enhanced 32-bit RISC processors, for applications
requiring a mix of DSP and microcontroller performance. The family
includes the ARM926EJ-S, ARM946E-S, ARM966E-S, and ARM968E-S
processor macrocells. They include signal processing extensions to
enhance 16-bit fixed point performance using a single-cycle 32 x 16
multiply-accumulate (MAC) unit, and implement the 16-bit Thumb
instruction set. The ARM926EJ-S processor also includes ARM Jazelle
technology which enables the direct execution of Java bytecodes in
hardware.
config ARCH_ARM1136J
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
---help---
Arm1136J(F)-S is very similar to Arm926EJ-S, but includes an
extended pipeline, basic SIMD (Single Instruction Multiple Data)
instructions, and improved frequency and performance.
config ARCH_ARM1156T2
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
---help---
Arm1156T2(F)-S is the highest-performance processor in the real-time
Classic Arm family.
config ARCH_ARM1176JZ
bool
default n
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
---help---
Arm1176JZ(F)-S is the highest-performance single-core processor in
the Classic Arm family. It also introduced TrustZone technology to
enable secure execution outside of the reach of malicious code.
config ARCH_ARMV6M
bool
default n
select ARCH_HAVE_CPUINFO
config ARCH_CORTEXM0
bool
default n
select ARM_THUMB
select ARCH_ARMV6M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_RESET
select ARCH_HAVE_HARDFAULT_DEBUG
config ARCH_ARMV7M
bool
default n
select ARCH_HAVE_CPUINFO
select ARCH_HAVE_DEBUG
select ARCH_HAVE_PERF_EVENTS
config ARCH_CORTEXM3
bool
default n
select ARM_THUMB
select ARCH_ARMV7M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
config ARCH_CORTEXM4
bool
default n
select ARM_THUMB
select ARCH_ARMV7M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
config ARCH_CORTEXM7
bool
default n
select ARM_THUMB
select ARCH_ARMV7M
select ARCH_HAVE_FPU
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
config ARCH_ARMV7A
bool
default n
select ARCH_HAVE_CPUINFO
select ARCH_HAVE_DEBUG
select ARCH_HAVE_PERF_EVENTS
select ARM_HAVE_WFE_SEV
config ARCH_CORTEXA5
bool
default n
select ARCH_ARMV7A
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_TESTSET
select ARM_HAVE_MPCORE
config ARCH_CORTEXA7
bool
default n
select ARCH_ARMV7A
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_TESTSET
select ARCH_HAVE_FPU
select ARM_HAVE_MPCORE
config ARCH_CORTEXA8
bool
default n
select ARCH_ARMV7A
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_TESTSET
config ARCH_CORTEXA9
bool
default n
select ARCH_ARMV7A
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_USE_MMU
select ARCH_HAVE_TESTSET
select ARM_HAVE_MPCORE
config ARCH_ARMV7R
bool
default n
select ARCH_HAVE_CPUINFO
select ARCH_HAVE_PERF_EVENTS
config ARCH_CORTEXR4
bool
default n
select ARCH_ARMV7R
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MPU
select ARCH_HAVE_TESTSET
config ARCH_CORTEXR5
bool
default n
select ARCH_ARMV7R
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MPU
select ARCH_HAVE_TESTSET
config ARCH_CORTEXR7
bool
default n
select ARCH_ARMV7R
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MPU
select ARCH_HAVE_TESTSET
config ARCH_CORTEXR52
bool
default n
select ARCH_ARMV8R
select ARCH_HAVE_MPU
select ARCH_HAVE_TESTSET
config ARCH_ARMV8M
bool
default n
select ARCH_HAVE_CPUINFO
select ARCH_HAVE_DEBUG
select ARCH_HAVE_PERF_EVENTS
config ARCH_CORTEXM23
bool
default n
select ARM_THUMB
select ARCH_ARMV8M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
config ARCH_CORTEXM33
bool
default n
select ARM_THUMB
select ARCH_ARMV8M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
config ARCH_CORTEXM35P
bool
default n
select ARM_THUMB
select ARCH_ARMV8M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
config ARCH_CORTEXM55
bool
default n
select ARM_THUMB
select ARCH_ARMV8M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
config ARCH_CORTEXM85
bool
default n
select ARM_THUMB
select ARCH_ARMV8M
select ARCH_HAVE_IRQPRIO
select ARCH_HAVE_IRQTRIGGER
select ARCH_HAVE_RAMVECTORS
select ARCH_HAVE_HIPRI_INTERRUPT
select ARCH_HAVE_RESET
select ARCH_HAVE_TESTSET
select ARCH_HAVE_HARDFAULT_DEBUG
select ARCH_HAVE_MEMFAULT_DEBUG
select ARCH_HAVE_BUSFAULT_DEBUG
select ARCH_HAVE_USAGEFAULT_DEBUG
select ARCH_HAVE_SECUREFAULT_DEBUG if ARCH_TRUSTZONE_SECURE
config ARCH_ARMV8R
bool
default n
select ARCH_HAVE_CPUINFO
select ARCH_HAVE_PERF_EVENTS
select ONESHOT
select ALARM_ARCH

91
arch/arm/Makefile Normal file
View file

@ -0,0 +1,91 @@
############################################################################
# arch/arm/src/Makefile
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
# NXBASE is mandatory
# It should provided to each of the NuttX's subsys
# either by environment variable or
# by command-line variable assignment.
ifeq ($(realpath ${NXBASE}),)
$(error "NXBASE is not defined or invalid path")
endif
CONFIGMK := $(realpath ${NXBASE}/tools/Config.mk)
ifeq (${CONFIGMK},)
$(error "Invalid Config.mk path: ${NXBASE}/tools/Config.mk")
else
include ${CONFIGMK}
endif
# NXOUT is mandatory
# It should provided to each of the NuttX's subsys
# either by environment variable or
# by command-line variable assignment.
ifeq ($(realpath ${NXOUT}),)
$(error "NXOUT is not defined or invalid path")
endif
CFG := $(realpath ${NXOUT}/.config)
ifeq (${CFG},)
$(error "Invalid .config path: ${CFG}")
else
include ${CFG}
endif
CFGH := $(realpath ${NXOUT}/nuttx/config.h)
ifeq (${CFGH},)
$(error "Invalid config.h path: ${CFGH}")
endif
ARCH_SUBDIR := $(patsubst "%",%,${CONFIG_ARCH_FAMILY})
ARCH_SRCDIR := ${CURDIR}
INCLUDES += -I${ARCH_SRCDIR}/include
INCLUDES += -I${NXOUT}
INCLUDES += -I${NXBASE}/include
INCLUDES += -I${NXBASE}/soc/arm/include
VPATH += ${ARCH_SRCDIR}/common
include ${ARCH_SRCDIR}/common/Make.defs
VPATH += ${ARCH_SRCDIR}/${ARCH_SUBDIR}
include ${ARCH_SRCDIR}/${ARCH_SUBDIR}/Make.defs
CFLAGS += ${INCLUDES}
AFLAGS += ${INCLUDES}
BIN = libarch.a
all: $(BIN)
STARTUP_OBJS = $(STARTUP_CSRC:.c=.o)
HEAD_OBJ = $(HEAD_ASRC:.S=.o)
COBJS = $(CSRCS:.c=.o)
AOBJS = $(ASRCS:.S=.o)
SRCS = ${ASRCS} ${CSRCS} ${STARTUP_CSRC} ${HEAD_ASRC}
OBJS = ${AOBJS} ${COBJS} ${STARTUP_OBJS} ${HEAD_OBJ}
${STARTUP_OBJS}: %.o: %.c
$(call COMPILE, $<, $@)

View file

@ -1,5 +1,5 @@
############################################################################ ############################################################################
# arch/z80/src/z8/Make.defs # arch/arm/src/arm/Make.defs
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -20,19 +20,24 @@
# #
############################################################################ ############################################################################
HEAD_SSRC = z8_head.S HEAD_ASRC = arm_head.S
<<<<<<< HEAD:arch/z80/src/z8/Make.defs
CMN_CSRCS = z80_allocateheap.c z80_createstack.c z80_doirq.c CMN_CSRCS = z80_allocateheap.c z80_createstack.c z80_doirq.c
CMN_CSRCS += z80_exit.c z80_idle.c z80_interruptcontext.c CMN_CSRCS += z80_exit.c z80_idle.c z80_interruptcontext.c
CMN_CSRCS += z80_initialize.c z80_mdelay.c z80_nputs.c CMN_CSRCS += z80_initialize.c z80_mdelay.c z80_nputs.c
CMN_CSRCS += z80_releasestack.c z80_switchcontext.c CMN_CSRCS += z80_releasestack.c z80_switchcontext.c
CMN_CSRCS += z80_stackframe.c z80_udelay.c z80_usestack.c CMN_CSRCS += z80_stackframe.c z80_udelay.c z80_usestack.c
=======
CSRCS += arm_dataabort.c arm_doirq.c arm_initialstate.c
CSRCS += arm_prefetchabort.c arm_schedulesigaction.c
CSRCS += arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c
CSRCS += arm_undefinedinsn.c
>>>>>>> 753c7b2dd6 (walnux: moveout):arch/arm/arm/Make.defs
CHIP_SSRCS = z8_vector.S z8_saveusercontext.S z8_restorecontext.S ASRCS += arm_cache.S arm_vectors.S arm_vectortab.S
CHIP_CSRCS = z8_initialstate.c z8_irq.c z8_saveirqcontext.c ASRCS += arm_saveusercontext.S
CHIP_CSRCS += z8_schedulesigaction.c z8_sigdeliver.c
CHIP_CSRCS += z8_serial.c z8_i2c.c z8_registerdump.c
ifneq ($(CONFIG_SCHED_TICKLESS),y) ifeq ($(CONFIG_LEGACY_PAGING),y)
CHIP_CSRCS += z8_timerisr.c CSRCS += arm_pginitialize.c arm_checkmapping.c arm_allocpage.c arm_va2pte.c
endif endif

View file

@ -27,7 +27,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <nuttx/sched.h> #include <nuttx/sched.h>
#include <arch/irq.h> #include <irq.h>
#include <sys/param.h> #include <sys/param.h>
/**************************************************************************** /****************************************************************************

View file

@ -20,10 +20,6 @@
# #
############################################################################ ############################################################################
# Common ARM files
include common/Make.defs
CMN_ASRCS += arm_exception.S arm_saveusercontext.S CMN_ASRCS += arm_exception.S arm_saveusercontext.S
CMN_CSRCS += arm_cpuinfo.c arm_doirq.c arm_hardfault.c arm_initialstate.c CMN_CSRCS += arm_cpuinfo.c arm_doirq.c arm_hardfault.c arm_initialstate.c
@ -35,9 +31,17 @@ ifneq ($(CONFIG_ARCH_HAVE_CUSTOM_VECTORS),y)
CMN_CSRCS += arm_vectors.c CMN_CSRCS += arm_vectors.c
endif endif
<<<<<<< HEAD:arch/z80/src/z80/Make.defs
CMN_CSRCS = z80_allocateheap.c z80_createstack.c z80_doirq.c
CMN_CSRCS += z80_exit.c z80_initialize.c z80_interruptcontext.c
CMN_CSRCS += z80_idle.c z80_mdelay.c z80_releasestack.c
CMN_CSRCS += z80_switchcontext.c z80_stackframe.c
CMN_CSRCS += z80_udelay.c z80_usestack.c
=======
ifneq ($(filter y,$(CONFIG_DEBUG_FEATURES)$(CONFIG_ARM_COREDUMP_REGION)),) ifneq ($(filter y,$(CONFIG_DEBUG_FEATURES)$(CONFIG_ARM_COREDUMP_REGION)),)
CMN_CSRCS += arm_dumpnvic.c CMN_CSRCS += arm_dumpnvic.c
endif endif
>>>>>>> 753c7b2dd6 (walnux: moveout):arch/arm/armv6-m/Make.defs
ifeq ($(CONFIG_ARCH_RAMVECTORS),y) ifeq ($(CONFIG_ARCH_RAMVECTORS),y)
CMN_CSRCS += arm_ramvec_initialize.c arm_ramvec_attach.c CMN_CSRCS += arm_ramvec_initialize.c arm_ramvec_attach.c

View file

@ -41,7 +41,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <arch/irq.h> #include <irq.h>
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
# include "chip.h" # include "chip.h"

View file

@ -31,7 +31,7 @@
#include <assert.h> #include <assert.h>
#include <debug.h> #include <debug.h>
#include <arch/irq.h> #include <irq.h>
#include "nvic.h" #include "nvic.h"
#include "arm_internal.h" #include "arm_internal.h"

View file

@ -33,7 +33,7 @@
#include <debug.h> #include <debug.h>
#include <syscall.h> #include <syscall.h>
#include <arch/irq.h> #include <irq.h>
#include <nuttx/macro.h> #include <nuttx/macro.h>
#include <nuttx/sched.h> #include <nuttx/sched.h>

View file

@ -27,7 +27,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <nuttx/sched.h> #include <nuttx/sched.h>
#include <arch/irq.h> #include <irq.h>
#include <sys/param.h> #include <sys/param.h>
/**************************************************************************** /****************************************************************************

View file

@ -30,7 +30,7 @@
#include <assert.h> #include <assert.h>
#include <nuttx/arch.h> #include <nuttx/arch.h>
#include <arch/irq.h> #include <irq.h>
#include "arm_internal.h" #include "arm_internal.h"
#include "nvic.h" #include "nvic.h"

View file

@ -28,7 +28,7 @@
****************************************************************************/ ****************************************************************************/
#include <nuttx/config.h> #include <nuttx/config.h>
#include <arch/irq.h> #include <irq.h>
#include "arm_internal.h" #include "arm_internal.h"
#include "chip.h" #include "chip.h"

View file

@ -62,6 +62,17 @@ config ARMV7A_HAVE_L2CC
Selected by the configuration tool if the architecture supports any Selected by the configuration tool if the architecture supports any
kind of L2 cache. kind of L2 cache.
config ARMV7A_SMP_BUSY_WAIT
bool "Busy wait when SMP boot"
default n
depends on SMP
---help---
Enables busy wait when SMP boot
config ARMV7A_SMP_BUSY_WAIT_FLAG_ADDR
hex "Busy wait flag address"
depends on ARMV7A_SMP_BUSY_WAIT
config ARMV7A_HAVE_L2CC_PL310 config ARMV7A_HAVE_L2CC_PL310
bool bool
default n default n

View file

@ -20,10 +20,6 @@
# #
############################################################################ ############################################################################
# Common ARM files
include common/Make.defs
# The vector table is the "head" object, i.e., the one that must forced into # The vector table is the "head" object, i.e., the one that must forced into
# the link in order to draw in all of the other components # the link in order to draw in all of the other components

View file

@ -87,7 +87,7 @@
#include <nuttx/sched.h> #include <nuttx/sched.h>
#include <nuttx/addrenv.h> #include <nuttx/addrenv.h>
#include <arch/irq.h> #include <irq.h>
#include "mmu.h" #include "mmu.h"
#include "addrenv.h" #include "addrenv.h"

View file

@ -28,7 +28,7 @@
#include <debug.h> #include <debug.h>
#include <assert.h> #include <assert.h>
#include <nuttx/arch.h> #include <nuttx/arch.h>
#include <arch/irq.h> #include <irq.h>
#include <arch/chip/chip.h> #include <arch/chip/chip.h>
#include <nuttx/spinlock.h> #include <nuttx/spinlock.h>

View file

@ -27,7 +27,7 @@
* Included Files * Included Files
****************************************************************************/ ****************************************************************************/
#include <nuttx/config.h> #include <nuttx/config.h>
#include <arch/irq.h> #include <irq.h>
#include <arch/chip/chip.h> #include <arch/chip/chip.h>
#include <arch/syscall.h> #include <arch/syscall.h>

View file

@ -26,7 +26,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <arch/irq.h> #include <irq.h>
#include "arm.h" #include "arm.h"
#include "sctlr.h" #include "sctlr.h"

Some files were not shown because too many files have changed in this diff Show more