
Work In Progress
| NuttX X.Y has not been released yet. These Release Notes are a work-in-progress in preparation for the next release of NuttX. There is a board tracking the PRs that need to be looked at to add to this doc for the OS TODO ADD LINK and for the Apps TODO ADD LINK |
What's New In This Release
Major Changes to Core OS
Sched
* [#17287](https://github.com/apache/nuttx/pull/17287) sched/clock: Fix missing clock_inittime() call
* [#17423](https://github.com/apache/nuttx/pull/17423) docs/sched/sched: Add documentation for different sleep interfaces
* [#17482](https://github.com/apache/nuttx/pull/17482) sched/clock: Remove unnecessary preprocessor definition
* [#17485](https://github.com/apache/nuttx/pull/17485) sched/misc: correct coredump log format
* [#17517](https://github.com/apache/nuttx/pull/17517) sched/sched: Part 1: add high resolution timer (hrtimer) only (without os tick support with hrtimer) for NuttX
* [#17535](https://github.com/apache/nuttx/pull/17535) sched/signal: assert if call timedwait from interrupt
* [#17545](https://github.com/apache/nuttx/pull/17545) sched: merge task_tcb_s and pthread_tcb_s into tcb to simplify the code.
* [#17546](https://github.com/apache/nuttx/pull/17546) sched/env_putenv:putenv is kernel function need use kmm_free
* [#17564](https://github.com/apache/nuttx/pull/17564) Revert "sched/group: move task group into task_tcb_s to improve perfo…
* [#17584](https://github.com/apache/nuttx/pull/17584) sched: Improvements on sched_timerexpiration.
* [#17640](https://github.com/apache/nuttx/pull/17640) sched/wdog: Fix-up for SMP and Improvements.
* [#17642](https://github.com/apache/nuttx/pull/17642) sched/hrtimer: hrtimer state machine improvement for SMP cases
* [#17644](https://github.com/apache/nuttx/pull/17644) sched/signals: add support to partially or fully disable signals
* [#17680](https://github.com/apache/nuttx/pull/17680) sched: Remove `CONFIG_SCHED_TICKLESS_TICK_ARGUMENT`.
* [#17681](https://github.com/apache/nuttx/pull/17681) sched/wdog: fix race condition in wd_gettime()
* [#17739](https://github.com/apache/nuttx/pull/17739) sched/task: fix Redundant memory allocation.
* [#17781](https://github.com/apache/nuttx/pull/17781) sched/hrtimer: isolate SMP logic in hrtimer
* [#17784](https://github.com/apache/nuttx/pull/17784) sched/hrtimer: Fix some functional correctness issues.
* [#17796](https://github.com/apache/nuttx/pull/17796) sched/wdog: Simplify the wdog expiration handling.
* [#17822](https://github.com/apache/nuttx/pull/17822) sched: binfmt remove csection
* [#17823](https://github.com/apache/nuttx/pull/17823) sched: merge nxsched_timer_expiration() into nxsched_process_timer() to simplify tick process
* [#17848](https://github.com/apache/nuttx/pull/17848) sched/hrtimer: Some improvements.
* [#17912](https://github.com/apache/nuttx/pull/17912) sched/sched: Improve sched make and cmake scripts
* [#17921](https://github.com/apache/nuttx/pull/17921) sched/hrtimer: fix Kconfig typo
* [#17941](https://github.com/apache/nuttx/pull/17941) sched/tls: fix uninitialized argv pointer in task info
* [#17953](https://github.com/apache/nuttx/pull/17953) sched/task: fix task_exit regression with critical section state
* [#17955](https://github.com/apache/nuttx/pull/17955) sched/addrenv: replace critical section with spinlock for refs protec…
* [#17957](https://github.com/apache/nuttx/pull/17957) sched/environ: rm cestion_in evn
* [#17958](https://github.com/apache/nuttx/pull/17958) sched/irq: handle NULL ISR handler in irq_default_handler
* [#17959](https://github.com/apache/nuttx/pull/17959) sched/signal: use spinlock to protect signal queues
* [#17969](https://github.com/apache/nuttx/pull/17969) sched/sched_roundrobin.c: fix round-robin scheduling in SMP mode
* [#17971](https://github.com/apache/nuttx/pull/17971) sched/list: some improvements.
* [#17981](https://github.com/apache/nuttx/pull/17981) sched: stack debugging improvements
* [#17985](https://github.com/apache/nuttx/pull/17985) sched/task: fix null pointer dereference in fork address environment …
* [#17991](https://github.com/apache/nuttx/pull/17991) sched/signals: improvements for when all signals are disabled
* [#17993](https://github.com/apache/nuttx/pull/17993) sched/wdog: Simplify tickless timer expiration.
* [#18002](https://github.com/apache/nuttx/pull/18002) sched/sched: add sched_timer.c to improve tick processing and enable hrtimer support for scheduler
* [#18007](https://github.com/apache/nuttx/pull/18007) sched/group: add spinlock in group_childstatus.c
* [#18012](https://github.com/apache/nuttx/pull/18012) sched: add spinlock to sched_note_preemption and nxsched_critmon_pree…
* [#18016](https://github.com/apache/nuttx/pull/18016) sched/task: MISRA/Coverity cleanups in scheduler, init, libc spawn, and ARMv8-R IRQ helpers
* [#18026](https://github.com/apache/nuttx/pull/18026) sched/hrtimer: add option for list-based hrtimer management
* [#18034](https://github.com/apache/nuttx/pull/18034) sched/environ: add interrupt context check to getenv
* [#18037](https://github.com/apache/nuttx/pull/18037) sched/tls: fix thread ID initialization in tls_dup_info
* [#18038](https://github.com/apache/nuttx/pull/18038) sched/pthread: use spin_lock_irqsave_nopreempt for mutex head lock
* [#18040](https://github.com/apache/nuttx/pull/18040) sched: move process ID from kernel to TLS for faster access
* [#18041](https://github.com/apache/nuttx/pull/18041) sched/pthread: remove duplicate robust mutex checking logic
* [#18047](https://github.com/apache/nuttx/pull/18047) [BUG-FIX] Fix some bug of sched
* [#18066](https://github.com/apache/nuttx/pull/18066) sched/irq: Avoid same static function name in different files
* [#18070](https://github.com/apache/nuttx/pull/18070) sched/signal: fix the occasional issue where SIGCONT was not executed
* [#18072](https://github.com/apache/nuttx/pull/18072) sched/wqueue: add configuring the stack of an hpwork/lpwork as static
* [#18078](https://github.com/apache/nuttx/pull/18078) sched: add configuration to record the busy waiting time
* [#18080](https://github.com/apache/nuttx/pull/18080) sched/sched: Modify the critical section interface name
* [#18084](https://github.com/apache/nuttx/pull/18084) sched/irq: declare the object in scope
* [#18086](https://github.com/apache/nuttx/pull/18086) sched/irq: avoid casting from signed int to unsigned int
* [#18090](https://github.com/apache/nuttx/pull/18090) sched/irq: Every function must have exactly one exit point
* [#18093](https://github.com/apache/nuttx/pull/18093) sched/irq: fix MISRA C problems for irq_chain.c
* [#18098](https://github.com/apache/nuttx/pull/18098) sched/pthread: move pthread mutex from syscall to user-space
* [#18105](https://github.com/apache/nuttx/pull/18105) sched/irq: Change the function parameter "regs" to "context"
* [#18111](https://github.com/apache/nuttx/pull/18111) sched/irq: Avoid directly converting variables of type uintptr_t to void
* [#18114](https://github.com/apache/nuttx/pull/18114) sched: add trace points during system startup and board initialization
* [#18118](https://github.com/apache/nuttx/pull/18118) sched: fix regression and improve NULL pointer safety in task information functions
* [#18122](https://github.com/apache/nuttx/pull/18122) sched/irq: Fix potential deadlock in irqchain_detach
* [#18131](https://github.com/apache/nuttx/pull/18131) sched/hrtimer: Fix functional correctness issues.
* [#18141](https://github.com/apache/nuttx/pull/18141) sched/hrtimer: refresh code comments to match implementation
* [#18160](https://github.com/apache/nuttx/pull/18160) sched/irq: Add architecture-specific IRQ-to-index mapping interface
* [#18174](https://github.com/apache/nuttx/pull/18174) sched/hrtimer: fix hrtimer regression introduced by recent update and add support for tickless with hrtimer
* [#18175](https://github.com/apache/nuttx/pull/18175) sched/irq: functions should have exactly one exit point
* [#18183](https://github.com/apache/nuttx/pull/18183) sched: Remove FS_PROCFS dependency for SCHED_CRITMONITOR
* [#18184](https://github.com/apache/nuttx/pull/18184) sched: Remove legacy sched_resumescheduler.c
* [#18187](https://github.com/apache/nuttx/pull/18187) sched: call spinlock nopreempt when need disable context swi…
* [#18189](https://github.com/apache/nuttx/pull/18189) sched: replace critical section with spinlock
* [#18190](https://github.com/apache/nuttx/pull/18190) sched/irq: Avoid negative array index in irqchain_dispatch
* [#18191](https://github.com/apache/nuttx/pull/18191) sched/irq: Fix type mismatch in irq_dispatch (MISRA C-2012 Rule 10.3)
* [#18192](https://github.com/apache/nuttx/pull/18192) sched/signal: Optimize code logic
* [#18193](https://github.com/apache/nuttx/pull/18193) sched/semaphore: Fix HIS_CALLS metric violation for MISRA compliance
* [#18196](https://github.com/apache/nuttx/pull/18196) sched: Add bounds checking to prevent OVERRUN defect
* [#18197](https://github.com/apache/nuttx/pull/18197) sched: Fix null pointer dereference (FORWARD_NULL defect)
* [#18198](https://github.com/apache/nuttx/pull/18198) sched: Reduce return points in sched_rrgetinterval() for MISRA compliance
* [#18201](https://github.com/apache/nuttx/pull/18201) sched/semaphore: Code quality improvements and MISRA compliance fixes
* [#18202](https://github.com/apache/nuttx/pull/18202) sched: Reduce return statements in sched_get_stackinfo() for MISRA compliance
* [#18203](https://github.com/apache/nuttx/pull/18203) sched/irq: Consolidate IRQ bounds checking into IRQ_TO_NDX macro
* [#18204](https://github.com/apache/nuttx/pull/18204) sched/irq: Avoid out-of-bounds array access
* [#18205](https://github.com/apache/nuttx/pull/18205) sched_setpriority: Consolidate return statements for MISRA HIS compliance
* [#18208](https://github.com/apache/nuttx/pull/18208) sched_setparam: Refactor nxsched_set_param() with helper functions for MISRA HIS compliance
* [#18210](https://github.com/apache/nuttx/pull/18210) sched: Optimize reader-writer semaphore and achieve MISRA HIS goto compliance
* [#18212](https://github.com/apache/nuttx/pull/18212) sched_getfiles: Consolidate return statements in nxsched_get_fdlist_from_tcb() for MISRA HIS compliance
* [#18215](https://github.com/apache/nuttx/pull/18215) sched_profil: Move static variable to block scope for MISRA C 2012 compliance
* [#18216](https://github.com/apache/nuttx/pull/18216) sched: Consolidate return statements for MISRA HIS compliance
* [#18217](https://github.com/apache/nuttx/pull/18217) sched_profil: Consolidate return statements for MISRA HIS compliance
* [#18220](https://github.com/apache/nuttx/pull/18220) sched_sysinfo: Consolidate return statements for MISRA HIS compliance
* [#18221](https://github.com/apache/nuttx/pull/18221) sched_get_stateinfo: Move static array to block scope for MISRA C 2012 Rule 8.9
* [#18223](https://github.com/apache/nuttx/pull/18223) sched_setscheduler: Eliminate goto statements and consolidate returns for MISRA HIS compliance
* [#18224](https://github.com/apache/nuttx/pull/18224) sched/hrtimer: Fix functional correctness issues and improve the performance.
* [#18237](https://github.com/apache/nuttx/pull/18237) sched: Consolidate return statements in sched_critmonitor() for MISRA HIS compliance
* [#18227](https://github.com/apache/nuttx/pull/18227) sched_getscheduler: Consolidate return statements for MISRA HIS compliance
* [#18235](https://github.com/apache/nuttx/pull/18235) sched_waitid: Code quality improvements for HIS compliance and complexity reduction
* [#18239](https://github.com/apache/nuttx/pull/18239) sched_cpuload: Move static wdog to block scope for MISRA C 2012 Rule 8.9
* [#18240](https://github.com/apache/nuttx/pull/18240) sched_sysinfo.c: misra_c_2012_rule_9_1_violation: uninit_use
* [#18241](https://github.com/apache/nuttx/pull/18241) Fix critical SMP scheduler issues with CPU selection and ready-to-run list management
* [#18255](https://github.com/apache/nuttx/pull/18255) sched/semaphore: optimize the source code
* [#18270](https://github.com/apache/nuttx/pull/18270) sched/spinlock: Replace critical_section with spinlock.
* [#18278](https://github.com/apache/nuttx/pull/18278) sched/sched: fix casting issue found by coverity
* [#18284](https://github.com/apache/nuttx/pull/18284) sched/clock: replace atomic operations with sequence lock for tick counter
* [#18306](https://github.com/apache/nuttx/pull/18306) sched: Fix CANCEL_FLAG_* macro definitions MISRA C:2012 Rule 10.4 violations
* [#18307](https://github.com/apache/nuttx/pull/18307) sched/spawn: Fix MISRA C Rule 10.4 violations
* [#18336](https://github.com/apache/nuttx/pull/18336) sched/waitpid: reduce cyclomatic complexity for HIS/MISRA compliance
* [#18338](https://github.com/apache/nuttx/pull/18338) sched/semaphore: Add debug assert to detect mutex recursion.
* [#18376](https://github.com/apache/nuttx/pull/18376) sched/mqueue: Enable receiving messages on an interrupt handler
* [#18437](https://github.com/apache/nuttx/pull/18437) sched/clock: fix CLOCK_BOOTTIME and CLOCK_MONOTONIC handling
* [#18438](https://github.com/apache/nuttx/pull/18438) sched/sched: fix typos and remove unused declarations in sched.h
* [#18444](https://github.com/apache/nuttx/pull/18444) sched/sched: Add nxsched_abstick_sleep() and make nxsched_ticksleep() a wrapper around it
* [#18448](https://github.com/apache/nuttx/pull/18448) sched/misc: fix incorrect mutex holder retrieval in assert backtrace
* [#18450](https://github.com/apache/nuttx/pull/18450) sched/misc: fix potential out-of-bounds access in coredump stack emission
* [#18451](https://github.com/apache/nuttx/pull/18451) sched/misc: fix incomplete data emission in coredump elf_emit function |
MM
* [#17439](https://github.com/apache/nuttx/pull/17439) mm/iob: add iob_init method to support external buffer init as iob structure
* [#17537](https://github.com/apache/nuttx/pull/17537) mm/mempool: fix misjudged condition of interrupt memory release
* [#17668](https://github.com/apache/nuttx/pull/17668) mm/iob: limit the alignment length of IOB to no less than sizeof(uinptr_t)
* [#17704](https://github.com/apache/nuttx/pull/17704) mm/iob: update all iob information in the iob_update_pktlen
* [#18042](https://github.com/apache/nuttx/pull/18042) mm/kasan: prevent recursive report overflow
* [#18358](https://github.com/apache/nuttx/pull/18358) mm/mm_gran: fix data truncation on 64-bit systems by using size_t for mask
* [#18445](https://github.com/apache/nuttx/pull/18445) mm/mempool: Optimize undefined behavior in memory pool allocation
* [#18464](https://github.com/apache/nuttx/pull/18464) mm/mempool: fix the entry condition for semaphore during mempool allocation
* [#17538](https://github.com/apache/nuttx/pull/17538) mm: use Kconfig to control sequence number to save memory
* [#18152](https://github.com/apache/nuttx/pull/18152) mm: implement custom umm heap, and enable heap management on the simulator
* [#18427](https://github.com/apache/nuttx/pull/18427) mm: use mm_malloc inside of mm_memalig
|
libc
* [#17453](https://github.com/apache/nuttx/pull/17453) libs/libc: machine code update
* [#17479](https://github.com/apache/nuttx/pull/17479) libc/machine/xtensa: add mcount implementation for gprof
* [#17533](https://github.com/apache/nuttx/pull/17533) libc/libelf: fix bug for libelf_symname
* [#17534](https://github.com/apache/nuttx/pull/17534) libs/libc/misc: backtrace needs init lock before use
* [#17544](https://github.com/apache/nuttx/pull/17544) libs/libc: use builtin function to optimize string function
* [#17495](https://github.com/apache/nuttx/pull/17495) libs/libc/obstack/lib_obstack_free.c: fix object check within chunk
* [#17502](https://github.com/apache/nuttx/pull/17502) libc: improve libc dependencies in case of LIBM_NONE
* [#17568](https://github.com/apache/nuttx/pull/17568) libc/search: add foreach api for hcreate_data
* [#17571](https://github.com/apache/nuttx/pull/17571) libc/localtime: tz_lock/unlock should not touch tcb except FLAT
* [#17742](https://github.com/apache/nuttx/pull/17742) libc/syslograwstream: Use memrchr to locate the newline character for…
* [#17789](https://github.com/apache/nuttx/pull/17789) libc: Add Kconfig option to disable hex-string to float parsing
* [#17831](https://github.com/apache/nuttx/pull/17831) libs/libc/ftok: fix sizeof(char *), after tempbuffer
* [#17838](https://github.com/apache/nuttx/pull/17838) libcxx: porting libcxx test.
* [#17840](https://github.com/apache/nuttx/pull/17840) libs/libcxx: port for Infineon TASKING compiler.
* [#17841](https://github.com/apache/nuttx/pull/17841) libcxx: supports CXX_MINI_LOCALIZATION
* [#17846](https://github.com/apache/nuttx/pull/17846) libs/libxx: libcxxabi script updates
* [#17862](https://github.com/apache/nuttx/pull/17862) libs/libc: Fix fsetops func signature
* [#17898](https://github.com/apache/nuttx/pull/17898) libc/netdb: avoid unnecessary DNS notify if nameserver exists
* [#17910](https://github.com/apache/nuttx/pull/17910) libc/stdio: fix freopen fd handling and add fdsan support
* [#17936](https://github.com/apache/nuttx/pull/17936) libc: add creat function implementation
* [#17956](https://github.com/apache/nuttx/pull/17956) libs/libc: replace critical section with spinlock in hostname operations
* [#18028](https://github.com/apache/nuttx/pull/18028) libcxx/libstdc++: Add libsupc++.defs to support libsupc++
* [#18046](https://github.com/apache/nuttx/pull/18046) libc/pthread: Avoid compiler optimizations for once_control->done
* [#18058](https://github.com/apache/nuttx/pull/18058) libs/libc/regex: remove logically dead code in regcomp.c
* [#18076](https://github.com/apache/nuttx/pull/18076) libc/spawn: support get/set priority
* [#18018](https://github.com/apache/nuttx/pull/18018) libxx: fix __config_site for libcxx compile errors
* [#17990](https://github.com/apache/nuttx/pull/17990) libs/libxx: change libcxxmini to libminiabi
* [#18019](https://github.com/apache/nuttx/pull/18019) libs/libxx: Add _LIBCPP_HAS_NO_CONTENTION_TABLE to reduce RAM usage
* [#18136](https://github.com/apache/nuttx/pull/18136) libs/libc/pthread: Optimize mutex robustness configuration and remove unnecessary tl_lock
* [#18285](https://github.com/apache/nuttx/pull/18285) libc/tls: update preprocessor condition comment to match implementation
* [#18334](https://github.com/apache/nuttx/pull/18334) libc/string: Add BSD-optimized memset implementation.
* [#18449](https://github.com/apache/nuttx/pull/18449) libs/libc: add configurable skip count for mutex backtrace addresses
* [#17853](https://github.com/apache/nuttx/pull/17853) libs/libs: fix wqueue config typo
* [#18068](https://github.com/apache/nuttx/pull/18068) libs/crc: implement AUTOSAR-compatible CRC algorithm
* [#18151](https://github.com/apache/nuttx/pull/18151) libstdc++: Relocate c++config.h from include/ to libstdc++ to preserv
|
tools
* [#17525](https://github.com/apache/nuttx/pull/17525) tools/nxtagspkgsfetch.sh: Fetch tags packages for NuttX and Apps.
* [#17874](https://github.com/apache/nuttx/pull/17874) Tools[feat]: Add config change impact simulation tool (checkkconfig) using kconfig-lib
* [#17886](https://github.com/apache/nuttx/pull/17886) tools/abi_check.py: Identify potential ABI incompatibility issues
* [#18035](https://github.com/apache/nuttx/pull/18035) tools/pynuttx/nxgdb: fix semaphore field access in debugging scripts
* [#18124](https://github.com/apache/nuttx/pull/18124) tools/parsetrace.py: Fix get_typesize bug in parsetrace.py
* [#18299](https://github.com/apache/nuttx/pull/18299) tools: fix `make host_info` flag parsing and config string escaping |
Various
* [#17444](https://github.com/apache/nuttx/pull/17444) include/string.h: mark memset and memcpy as used_code
* [#17569](https://github.com/apache/nuttx/pull/17569) include/nuttx: Introduce seqlock, a sequential count based read-write lock.
* [#17575](https://github.com/apache/nuttx/pull/17575) include/nuttx/atomic.h: fix C++ definition conflicts
* [#17851](https://github.com/apache/nuttx/pull/17851) include/sys: extend the IOCTL defintion that compatible with linux kernel
* [#18236](https://github.com/apache/nuttx/pull/18236) include/notifier: fix undefined reference to spin_lock_irqsave_nopreempt
* [#18308](https://github.com/apache/nuttx/pull/18308) include/cxx/cmath: Fix compatibility with external toolchains
* [#18374](https://github.com/apache/nuttx/pull/18374) include/cxx/cmath: Use toolchain <cmath> with toolchain libm |
Crypto
* [#17932](https://github.com/apache/nuttx/pull/17932) crypto: export aes-cbc with 192/256 keysize
* [#17948](https://github.com/apache/nuttx/pull/17948) crypto/cryptodev: fix memory leak when failed to open /dev/crypto
* [#17952](https://github.com/apache/nuttx/pull/17952) Crypto key management with docs
* [#17994](https://github.com/apache/nuttx/pull/17994) crypto/cryptosoft: replace macro howmany with common macro div_round_up
* [#17995](https://github.com/apache/nuttx/pull/17995) crypto/blake2s.h: fix tasking compile warning
* [#17996](https://github.com/apache/nuttx/pull/17996) crypto/siphash: avoid redefine name issue
* [#18064](https://github.com/apache/nuttx/pull/18064) Crypto: export ecc software
* [#18138](https://github.com/apache/nuttx/pull/18138) crypto/cryptosoft: Fix HMAC-SHA when a long key is used
* [#18167](https://github.com/apache/nuttx/pull/18167) crypto: fixes for cryptodev, cryptosoft and RSA export updates
* [#18169](https://github.com/apache/nuttx/pull/18169) crypto: support software key management features (MTD storage, Key Gen) |
Major Changes to the Build System
cmake
* [#18364](https://github.com/apache/nuttx/pull/18364) CMake: build implemented for NXP S32K3 Family
* [#17427](https://github.com/apache/nuttx/pull/17427) cmake: Add support for ccache
* [#17550](https://github.com/apache/nuttx/pull/17550) cmake:add lib_psa_set/getstackaddr file to CMakeLists.txt
* [#17558](https://github.com/apache/nuttx/pull/17558) cmake:add missing cflag "-D_FILE_OFFSET_BITS=64" of sim
* [#17579](https://github.com/apache/nuttx/pull/17579) arch/arm: Aligned Cmake with Make
* [#17430](https://github.com/apache/nuttx/pull/17430) boards/arm/stm32l4: CMake added boards Part1
* [#17794](https://github.com/apache/nuttx/pull/17794) fix cmake build
* [#17810](https://github.com/apache/nuttx/pull/17810) arch/arm/xmc4: Aligned Cmake with Make and added XMC4500 and XMC4700 Relax
* [#17852](https://github.com/apache/nuttx/pull/17852) CMake[enhance][debug]: Add target information tracking and dump capability for CMake builds
* [#17857](https://github.com/apache/nuttx/pull/17857) CMake(enhance): Complete defconfig include support with menuconfig writeback capability
* [#17864](https://github.com/apache/nuttx/pull/17864) arch/arm/cmake: fix the gnu-elf.ld handle error at ghs pre-process
* [#17868](https://github.com/apache/nuttx/pull/17868) CMake[bugfix]:Fix incorrect include directory order in CMake application configuration
* [#17908](https://github.com/apache/nuttx/pull/17908) arch/arm/src/am335x: CMake build implemented for TI AM335x Sitara
* [#17922](https://github.com/apache/nuttx/pull/17922) ghs.cmake: add preprocess command to the .ld script generate procedure
* [#17927](https://github.com/apache/nuttx/pull/17927) CMake(feat): Implement CMake ELF Application Build Mode
* [#17968](https://github.com/apache/nuttx/pull/17968) build/cmake: add missing libcxxtoolchain support
* [#18382](https://github.com/apache/nuttx/pull/18382) arm64/chip/imx9: add cmake support, add reboot support
* [#18015](https://github.com/apache/nuttx/pull/18015) libs/libm: cmake fix
* [#18033](https://github.com/apache/nuttx/pull/18033) arch: fix cmake error
* [#18144](https://github.com/apache/nuttx/pull/18144) CMake build implemented for NXP S32K1 Family
* [#18194](https://github.com/apache/nuttx/pull/18194) CMake: Multiple bugfix and optimizations for build system reliability
* [#18390](https://github.com/apache/nuttx/pull/18390) CMake: build implemented for Microchip's SAM3 SAM4 Family
* [#18392](https://github.com/apache/nuttx/pull/18392) CMake: build implemented for Microchip's SAM D/L Family
* [#18400](https://github.com/apache/nuttx/pull/18400) cmake/nuttx_mkconfig: Improve .config comparison logic
* [#18411](https://github.com/apache/nuttx/pull/18411) CMake: build implemented for Microchip's SAM D5x/E5x Family
* [#18413](https://github.com/apache/nuttx/pull/18413) boards/arm/stm32f0l0g0: CMake fix build b-l072z-lrwan1:nxlines_oled
* [#18419](https://github.com/apache/nuttx/pull/18419) CMake: build implemented for STM32 STM32WB Series
* [#18423](https://github.com/apache/nuttx/pull/18423) CMake: build implemented for STM32 STM32L5 Series
* [#18432](https://github.com/apache/nuttx/pull/18432) CMake: build implemented for Allwinner A1X family
* [#18433](https://github.com/apache/nuttx/pull/18433) CMake: build implemented for Quicklogic EOS S3
* [#18440](https://github.com/apache/nuttx/pull/18440) CMake: build implemented for STM32 STM32WL5
* [#18443](https://github.com/apache/nuttx/pull/18443) cmake: bump minimum required CMake version to 3.20
* [#18455](https://github.com/apache/nuttx/pull/18455) arm64/cmake: fix typo in CMAKE_STRIP flag
* [#18466](https://github.com/apache/nuttx/pull/18466) CMake: build implemented for Microchip's SAMA5 Family |
Architectural Support
Architecture Improvements
* [#16795](https://github.com/apache/nuttx/pull/16795) arch/sim: save errno in sim context switch to avoid coroutine make errno mess between host api calls.
* [#17011](https://github.com/apache/nuttx/pull/17011) arch: Remove default value for BOARD_LOOPSPERMSEC
* [#17117](https://github.com/apache/nuttx/pull/17117) arch/arm/imxrt: serial registration fixes when no dev console defined
* [#17372](https://github.com/apache/nuttx/pull/17372) arch/arm64: fix create page table err
* [#17377](https://github.com/apache/nuttx/pull/17377) arch/arm64: config irq type
* [#17416](https://github.com/apache/nuttx/pull/17416) arch/arm/stm32h5: Add RS-485 support to serial driver
* [#17420](https://github.com/apache/nuttx/pull/17420) arch/xmc4 : various fixes and clean
* [#17425](https://github.com/apache/nuttx/pull/17425) arch/arm/samv7: allow all values for count in read
* [#17429](https://github.com/apache/nuttx/pull/17429) arch/arm/src/samv7/Kconfig: allow 0 in MCANx_RXFIFOx_SIZE
* [#17442](https://github.com/apache/nuttx/pull/17442) arch/arm/samv7: optimize MCUboot loader configuration
* [#17448](https://github.com/apache/nuttx/pull/17448) arch/armv8-r: use -mfpu=fpv5-sp-d16 for SP-only Cortex-R52 targets
* [#17450](https://github.com/apache/nuttx/pull/17450) arch/crt0.c: revert entry name to `_start`
* [#17454](https://github.com/apache/nuttx/pull/17454) arch/arm/src/kinetis: support RS485 on UART, fix warnings and pin assignment for K60
* [#17484](https://github.com/apache/nuttx/pull/17484) arch/sim: USB host support isochronous transfer endpoint
* [#17486](https://github.com/apache/nuttx/pull/17486) arch/Toolchain.defs: ELF entry for more archs
* [#17507](https://github.com/apache/nuttx/pull/17507) arch/risc-v: add crt0 to LDELFFLAG
* [#17523](https://github.com/apache/nuttx/pull/17523) arch/sim: fix sim spi issue
* [#17542](https://github.com/apache/nuttx/pull/17542) arch/x86_64: fix syscall type mismatch
* [#17549](https://github.com/apache/nuttx/pull/17549) arch/arm: use cfi to debug syscall
* [#17684](https://github.com/apache/nuttx/pull/17684) arch/armv8-m: Fix IRQ number corruption in exception_direct with O2 optimization
* [#17690](https://github.com/apache/nuttx/pull/17690) arch/tricore: enable CONFIG_SYSTEM_TIME64 for TC397
* [#17762](https://github.com/apache/nuttx/pull/17762) arch/risc-v: Fix incompatible pointer types in vector context switching
* [#17767](https://github.com/apache/nuttx/pull/17767) arch/risc-v: Enable VPU initialization for QEMU RV
* [#17788](https://github.com/apache/nuttx/pull/17788) arch/kinetis: Fix S32K3XX regressions caused by refactoring
* [#17795](https://github.com/apache/nuttx/pull/17795) arch/avr/src/avrdx: remove unused variable and update comment
* [#17815](https://github.com/apache/nuttx/pull/17815) arch/arm: fix the error in obtaining thread pointer after we use `-mtp=soft`
* [#17832](https://github.com/apache/nuttx/pull/17832) arch/arm/samv7: fix incorrect Kconfig SAMV7_EMAC0_RMII dependency
* [#17854](https://github.com/apache/nuttx/pull/17854) arch/arm: add -ffunction-sections and -fdata-sections compile options
* [#17855](https://github.com/apache/nuttx/pull/17855) arch/arm: change ghs vfpv3 to vfpv5 accrding to armv7-m documentation
* [#17856](https://github.com/apache/nuttx/pull/17856) arch/arm: replace the "-Wall" build option with the "-ghstd=last"
* [#17867](https://github.com/apache/nuttx/pull/17867) arch/sim: Refactor Wi-Fi simulation and add Pseudo Mode support
* [#17880](https://github.com/apache/nuttx/pull/17880) arch/x64: Syscall support is enabled by default
* [#17881](https://github.com/apache/nuttx/pull/17881) arch/x64: create qemu chip
* [#17883](https://github.com/apache/nuttx/pull/17883) arch/x86_64/intel64: fix build break for timerisr
* [#17891](https://github.com/apache/nuttx/pull/17891) arch/x64: add acpi procfs and poweroff
* [#17892](https://github.com/apache/nuttx/pull/17892) arch/x64:Fix the abnormal backtrace display issue
* [#17893](https://github.com/apache/nuttx/pull/17893) arch/x64: Fix crash issue after enabling KASAN
* [#17897](https://github.com/apache/nuttx/pull/17897) arch/sim: support SOCK_RAW in host_usrsock_socket
* [#17906](https://github.com/apache/nuttx/pull/17906) arch/arm/imxrt: fix error header guard
* [#17951](https://github.com/apache/nuttx/pull/17951) arch/x86_64: add support for linker map generation
* [#17961](https://github.com/apache/nuttx/pull/17961) arch: move STACK_ALIGNMENT to irq.h
* [#17964](https://github.com/apache/nuttx/pull/17964) arch/imx9: Modify default ddr config handling
* [#17965](https://github.com/apache/nuttx/pull/17965) arch/arm64: disable fork support in protected build mode
* [#17974](https://github.com/apache/nuttx/pull/17974) arch/tricore: support cache function
* [#17975](https://github.com/apache/nuttx/pull/17975) arch/tricore: enhanced irq handling
* [#17984](https://github.com/apache/nuttx/pull/17984) arch: enable ARCH_KERNEL_STACK support in protected builds
* [#17986](https://github.com/apache/nuttx/pull/17986) arch: fix addrenv_switch changing this_task causing exceptions
* [#17988](https://github.com/apache/nuttx/pull/17988) arch/stm32: Fix stm32-capture if timer don't support GTIM_CCER_CC1NP
* [#18006](https://github.com/apache/nuttx/pull/18006) arch: move some macros to public code.
* [#18008](https://github.com/apache/nuttx/pull/18008) arch/x86_64: Add gprof and stack check tool
* [#18010](https://github.com/apache/nuttx/pull/18010) arch/x64:add up_set_irq_type
* [#18020](https://github.com/apache/nuttx/pull/18020) arch/x86_64: fix revoke_low_memory
* [#18021](https://github.com/apache/nuttx/pull/18021) arch/x64: interrupt add CFI info
* [#18022](https://github.com/apache/nuttx/pull/18022) arch/x64: Solve the sig_nest hang issue
* [#18023](https://github.com/apache/nuttx/pull/18023) arch/x86_64i:Fix issue 02 Compile acpidump crash problem
* [#18030](https://github.com/apache/nuttx/pull/18030) arch/arm64: fix mpu_freeregion
* [#18048](https://github.com/apache/nuttx/pull/18048) arch: default enable TLS_ALIGNED when BUILD_PROTECTED=y
* [#18059](https://github.com/apache/nuttx/pull/18059) arch/tricore: disable CPU and system watchdogs during startup
* [#18060](https://github.com/apache/nuttx/pull/18060) arch/tricore: add NMI trap handler (weak)
* [#18065](https://github.com/apache/nuttx/pull/18065) arch/arm: armv8-r PL at startup needs to be checked
* [#18067](https://github.com/apache/nuttx/pull/18067) arch/arm: Add arm memmanage fault skip operation
* [#18079](https://github.com/apache/nuttx/pull/18079) arch/tricore: add tricore mpu driver
* [#18092](https://github.com/apache/nuttx/pull/18092) arch/arm/nrf: fix rtc functions return param
* [#18097](https://github.com/apache/nuttx/pull/18097) arch/xtensa: remove XCHAL_SYSCALL_LEVEL
* [#18099](https://github.com/apache/nuttx/pull/18099) arch/arm: Add the macro definitions for CFI instructions for ghs
* [#18103](https://github.com/apache/nuttx/pull/18103) arch: add stack alignment and size validation for CONFIG_TLS_ALIGNED
* [#18106](https://github.com/apache/nuttx/pull/18106) arch/arm64: fix backtrace return address precision
* [#18117](https://github.com/apache/nuttx/pull/18117) arch/arm/nrf{52|53|91}: fix timer timeout value (overflow issue)
* [#18130](https://github.com/apache/nuttx/pull/18130) arch/x86_64: optimize assembly instructions for size and performance
* [#18140](https://github.com/apache/nuttx/pull/18140) arch/arm/src/imxrt: Fix Ethernet RUNNING status regression
* [#18153](https://github.com/apache/nuttx/pull/18153) arch/arm: systick: fix off-by-one in SysTick RELOAD programming
* [#18157](https://github.com/apache/nuttx/pull/18157) arch/arm64: Enhance MPU infrastructure with unified interface and improved platform flexibility
* [#18158](https://github.com/apache/nuttx/pull/18158) arch/arm64: Enhance MPU with background region and region query interface
* [#18166](https://github.com/apache/nuttx/pull/18166) arch/xtensa/esp32/esp32s2 spi errors
* [#18168](https://github.com/apache/nuttx/pull/18168) arch/stm32: Add counter reset function
* [#18177](https://github.com/apache/nuttx/pull/18177) arch/armv8-r64: userspace PMU access
* [#18186](https://github.com/apache/nuttx/pull/18186) arch/risc-v: fix timer initialization for SMP mode using mtimer
* [#18195](https://github.com/apache/nuttx/pull/18195) arch/xtensa/espressif: ESP32 simpleboot improvements
* [#18214](https://github.com/apache/nuttx/pull/18214) arch/armv7-r: Enable userspace PMU access with performance event support
* [#18229](https://github.com/apache/nuttx/pull/18229) arch/arm: GPIO IMX9 Add support for IRQ line1 and GPIO5
* [#18230](https://github.com/apache/nuttx/pull/18230) arch/arm: LPSPI imx9 add support for 2nd CS
* [#18268](https://github.com/apache/nuttx/pull/18268) arch/x86_64: use pause to reduce power consumption in spin wait loops
* [#18273](https://github.com/apache/nuttx/pull/18273) arch/imx9: Correct CONFIG_IMX9_ENET_PHYINIT flag and imx9_phy_boardinitialize
* [#18277](https://github.com/apache/nuttx/pull/18277) arch/sim: Add sigdelset to nuttx-names.in
* [#18279](https://github.com/apache/nuttx/pull/18279) arch/arm64: Delete the default save for SCTLR and fix the issue of including incorrect order
* [#18296](https://github.com/apache/nuttx/pull/18296) arch/arm/stm32: fix undeclared page variable in flash write
* [#18297](https://github.com/apache/nuttx/pull/18297) arch/xtensa: fix `INT32_C` macro to match `int32_t` type
* [#18298](https://github.com/apache/nuttx/pull/18298) arch/x86_64: replaced loop construct with rep movsb
* [#18300](https://github.com/apache/nuttx/pull/18300) arch/arm/stm32h7: fix sdcan clock, ILS register and ID
* [#18303](https://github.com/apache/nuttx/pull/18303) arch/x86: fixed errors in gdt_flush and idt_flush
* [#18349](https://github.com/apache/nuttx/pull/18349) arch/risc-v: Fix page table traversal for SV39
* [#18381](https://github.com/apache/nuttx/pull/18381) arch/tricore: initialize spinlock used by tricore systimer
* [#18403](https://github.com/apache/nuttx/pull/18403) arch/arm64/Imx9: usdhc improvements
* [#18409](https://github.com/apache/nuttx/pull/18409) arch/arm64/imx9: Add enet MII clock calculation
* [#18418](https://github.com/apache/nuttx/pull/18418) arch/arm: remove all "select ARMV8M_HAVE_STACKCHECK".
* [#18429](https://github.com/apache/nuttx/pull/18429) arch/risc-v/espressif: Fix SHA errors
* [#18452](https://github.com/apache/nuttx/pull/18452) arch/sim: fix X11 framebuffer window not visible in POSIX simulator
* [#18453](https://github.com/apache/nuttx/pull/18453) arch/sim: fix incomplete HCI socket data reading in simulator interrupt handler
* [#18457](https://github.com/apache/nuttx/pull/18457) arch/arm: Add necessary conversion between tick and usec in systick_interrupt
* [#18461](https://github.com/apache/nuttx/pull/18461) arch/[risc-v|xtensa]/src/common: Create SoC-specific initialization routine
* [#18462](https://github.com/apache/nuttx/pull/18462) arch/xtensa/esp32: Fix buffer overflow in SPI poll exchange |
Driver Support
Drivers With Improvements
* [#16925](https://github.com/apache/nuttx/pull/16925) drivers/timers/capture: fix typo in capture.h
* [#17373](https://github.com/apache/nuttx/pull/17373) drivers/pci: Calculate PCI bar size use mask 0xffffffff
* [#17375](https://github.com/apache/nuttx/pull/17375) drivers/pci: calculate bar size
* [#17376](https://github.com/apache/nuttx/pull/17376) drivers/eeprom: Support PE/SE/CE commands
* [#17379](https://github.com/apache/nuttx/pull/17379) drivers/pci: write legacy num to config sapce when enable legacy irq
* [#17426](https://github.com/apache/nuttx/pull/17426) drivers/lcd/st7789.c: fix byte order in st7789_fill for 3 wires
* [#17433](https://github.com/apache/nuttx/pull/17433) drivers/usbdev: fix cdcecm netdev can not enter running state
* [#17441](https://github.com/apache/nuttx/pull/17441) drivers/can/can.c: fix broken O_NONBLOCK
* [#17446](https://github.com/apache/nuttx/pull/17446) drivers/lpwan: Fix Kconfig SX1276 and SX1262 position
* [#17455](https://github.com/apache/nuttx/pull/17455) note/drivers: Get taskname more safely.
* [#17456](https://github.com/apache/nuttx/pull/17456) drivers/i3c: Revert "drivers/i3c: remove extra i3c_dev_register, do_daa has created them"
* [#17464](https://github.com/apache/nuttx/pull/17464) drivers/mmcsd: Aligned Cmake with Make
* [#17470](https://github.com/apache/nuttx/pull/17470) drivers/rpmsgdev: server functions enhanced
* [#17491](https://github.com/apache/nuttx/pull/17491) drivers/usbhost: improve usbhost hid kbd
* [#17498](https://github.com/apache/nuttx/pull/17498) drivers/timers/ptp: support ptp clock driver model,CLOCKFD and clock adjtime/settime/gettime for ptp device
* [#17501](https://github.com/apache/nuttx/pull/17501) drivers/battery: fix event lost before service open
* [#17510](https://github.com/apache/nuttx/pull/17510) drivers/ioexpander: add debounce and interrupt mask functions
* [#17512](https://github.com/apache/nuttx/pull/17512) drivers/sensors/goldfish: support more sensors
* [#17528](https://github.com/apache/nuttx/pull/17528) drivers/input: Adds a small extension to the Force Feedback (FF) input subsystem
* [#17529](https://github.com/apache/nuttx/pull/17529) drivers/virtio: Fix DRIVERS_VIRTIO_INPUT configuration dependencies
* [#17530](https://github.com/apache/nuttx/pull/17530) drivers: replace critical_section with spinlock
* [#17531](https://github.com/apache/nuttx/pull/17531) drivers/timers: A small improvements in the drivers/timers subsystem
* [#17540](https://github.com/apache/nuttx/pull/17540) drivers/timers: fix rtc_time struct
* [#17541](https://github.com/apache/nuttx/pull/17541) drivers/virtio: if in assert, don't wait semaphore
* [#17552](https://github.com/apache/nuttx/pull/17552) drivers/mtd: Add W25N SPI NAND flash driver
* [#17554](https://github.com/apache/nuttx/pull/17554) drivers/rpmsg: Add rpmsg_get_signals API and rpmsg transport ops support
* [#17586](https://github.com/apache/nuttx/pull/17586) drivers/net: fix "wapi save_config" and "wapi reconnect" commands
* [#17597](https://github.com/apache/nuttx/pull/17597) drivers/net: setting loopback network driver sending task to the HPWORK queue
* [#17604](https://github.com/apache/nuttx/pull/17604) drivers/mtd: add MTDIOC_ISBAD ioctl
* [#17746](https://github.com/apache/nuttx/pull/17746) drivers/i2c: add ioexpander-based lower-half implementation for I2C bit-bang
* [#17747](https://github.com/apache/nuttx/pull/17747) drivers/capture: add signal notification support and fake capture driver
* [#17752](https://github.com/apache/nuttx/pull/17752) drivers/sensors: add a dynamic sensor debugging tool sensor_monitor
* [#17760](https://github.com/apache/nuttx/pull/17760) drivers/rpmsg: port spi add debug log, low power feature and bug fixs
* [#17763](https://github.com/apache/nuttx/pull/17763) drivers/sx127x: Add support to different bitrate and RX timeout
* [#17764](https://github.com/apache/nuttx/pull/17764) drivers/adc: Use mutexlock to replace critical section protection
* [#17769](https://github.com/apache/nuttx/pull/17769) drivers/sensors: update upper->parsebuffer every new line
* [#17772](https://github.com/apache/nuttx/pull/17772) drivers/sensors: fix mpu9250 register function comments
* [#17776](https://github.com/apache/nuttx/pull/17776) drivers/pty: fix memory leak when pty_destroy
* [#17778](https://github.com/apache/nuttx/pull/17778) drivers/rpmsg: router double free and reconnect related bugs fix
* [#17782](https://github.com/apache/nuttx/pull/17782) drivers/usrsock: replace net_lock with conn_lock
* [#17783](https://github.com/apache/nuttx/pull/17783) drivers/Rpmsg: fix rpmsg dead lock and ns bind race condition problem
* [#17787](https://github.com/apache/nuttx/pull/17787) drivers/rptun: fix rptun stop related deadlock and crash bugs
* [#17797](https://github.com/apache/nuttx/pull/17797) drivers/can: replace critical-section mutex with spinlock
* [#17802](https://github.com/apache/nuttx/pull/17802) drivers/virtio-gpu: Avoid calling free in IRQ
* [#17805](https://github.com/apache/nuttx/pull/17805) drivers/net/e1000|igc.c: add PIDVID of NIC
* [#17813](https://github.com/apache/nuttx/pull/17813) drivers/ioexpander: add enable & disable macro for gpio SETDEBOUNCE and SETMASK
* [#17814](https://github.com/apache/nuttx/pull/17814) drivers/sensors: add get_info interface for gnss_uorb
* [#17816](https://github.com/apache/nuttx/pull/17816) drivers/rptun: refactor rptun to decoupling the rptun and rpmsg virtio, make rptun can work with any virtio devices
* [#17824](https://github.com/apache/nuttx/pull/17824) drivers/sensors: sensor bug fix - part 1
* [#17833](https://github.com/apache/nuttx/pull/17833) drivers/net: fix igc build error
* [#17837](https://github.com/apache/nuttx/pull/17837) drivers/sensors: add a new sensor type ENG
* [#17842](https://github.com/apache/nuttx/pull/17842) drivers/net/rpmsgdrv.c: add bidirectional data netdev support
* [#17845](https://github.com/apache/nuttx/pull/17845) drivers/mtd: Optimizations for RRAM/MRAM Compatibility and Erase Logic Robustness
* [#17870](https://github.com/apache/nuttx/pull/17870) drivers/net: Fix crash in wifi_sim disconnect.
* [#17871](https://github.com/apache/nuttx/pull/17871) drivers/virtio: Use arc4random_buf to generate MAC address.
* [#17872](https://github.com/apache/nuttx/pull/17872) drivers/sensors/fakesensor: Remove GNSS dependency
* [#17923](https://github.com/apache/nuttx/pull/17923) drivers/timers: check CONFIG_BOARD_LOOPSPERMSEC != 0 at runtime
* [#17928](https://github.com/apache/nuttx/pull/17928) drivers/can: repair compiler error
* [#17942](https://github.com/apache/nuttx/pull/17942) drivers/mmcsd: fix typo, it should be "Byte" by spec
* [#17949](https://github.com/apache/nuttx/pull/17949) drivers/misc/optee: add missing addrenv header include
* [#17989](https://github.com/apache/nuttx/pull/17989) drivers/usbhost_hidkbd: Fix small typo in usbhost_hidkbd.c
* [#18005](https://github.com/apache/nuttx/pull/18005) drivers/rpmsg: remove unnecessary header files, revise make.def and cmake file
* [#18014](https://github.com/apache/nuttx/pull/18014) drivers/serial/Kconfig-16550: fix non-existent option
* [#18036](https://github.com/apache/nuttx/pull/18036) drivers/rpmsg: use nuttx/atomic.h instead metal/atomic.h
* [#18061](https://github.com/apache/nuttx/pull/18061) drivers/pipe: fix POLLHUP handling in poll()
* [#18073](https://github.com/apache/nuttx/pull/18073) drivers/sensors optimizes the sensor rpmsg driver proxy waiting mechanism to improve reliability. part 2
* [#18081](https://github.com/apache/nuttx/pull/18081) drivers/analog/mcp47x6: fix configuration command
* [#18085](https://github.com/apache/nuttx/pull/18085) drivers/rpmsg_router: multiple fixes and improvements for multi-core stability
* [#18091](https://github.com/apache/nuttx/pull/18091) drivers/mtd: add nvs cache buffer
* [#18095](https://github.com/apache/nuttx/pull/18095) drivers/mtd: support ram_mtdconfig device && lomtdconfig device
* [#18100](https://github.com/apache/nuttx/pull/18100) drivers/net/slip: set serial port to raw mode to prevent character escaping
* [#18102](https://github.com/apache/nuttx/pull/18102) drivers/sensors: fix sensor deadlock. part 3
* [#18108](https://github.com/apache/nuttx/pull/18108) drivers/rpmsg: unify cpuname handling and fix pm wakelock initialization
* [#18116](https://github.com/apache/nuttx/pull/18116) drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C
* [#18125](https://github.com/apache/nuttx/pull/18125) drivers/usbdev: fix rndis net link status can't update timely issue
* [#18134](https://github.com/apache/nuttx/pull/18134) drivers/sensors: Add non-wakeup mode support and optimize RPMSG communication part 4.
* [#18156](https://github.com/apache/nuttx/pull/18156) drivers/rpmsg: fix struct alignment issue by removing flexible array member
* [#18159](https://github.com/apache/nuttx/pull/18159) drivers/rpmsg_port_spi: add PM support and stability improvements
* [#18163](https://github.com/apache/nuttx/pull/18163) drivers/rpmsg_port_uart: Improvements and bug fixes for stability and power management
* [#18164](https://github.com/apache/nuttx/pull/18164) drivers/sensors/dhtxx: Fix read return values to be POSIX compliant
* [#18165](https://github.com/apache/nuttx/pull/18165) drivers/rpmsg: refactor internal APIs to private header
* [#18180](https://github.com/apache/nuttx/pull/18180) drivers/sensors: Remove the uncalibrated member of the sensor lowerhalf layer part 5
* [#18209](https://github.com/apache/nuttx/pull/18209) drivers/sensors: sensor bug fix. part 6
* [#18231](https://github.com/apache/nuttx/pull/18231) drivers/serial: fix crash when buffer is full and only recvbuf is imp…
* [#18246](https://github.com/apache/nuttx/pull/18246) drivers/ioexapnder/mcp23x17 : Fix write gpio output values on OLAT registers
* [#18248](https://github.com/apache/nuttx/pull/18248) drivers/rpmsg: support release the rx buffer early in endpoint callback
* [#18250](https://github.com/apache/nuttx/pull/18250) drivers/timers: add timer driver implemented by watchdog
* [#18256](https://github.com/apache/nuttx/pull/18256) drivers/sensors: add sensor monitor debug log. part 7
* [#18261](https://github.com/apache/nuttx/pull/18261) drivers/sensors/gnss: Add monitor logs for activation
* [#18265](https://github.com/apache/nuttx/pull/18265) drivers/virtio: virtio config space size-matched read operations
* [#18286](https://github.com/apache/nuttx/pull/18286) drivers/analog: fix adc ads1115 driver
* [#18289](https://github.com/apache/nuttx/pull/18289) drivers/vhost: Improvements and fixes for vhost framework
* [#18290](https://github.com/apache/nuttx/pull/18290) drivers/virtio: use virtqueue_nused() to check pending buffers
* [#18291](https://github.com/apache/nuttx/pull/18291) drivers/virtio: fix the minor code style in virtio.c
* [#18294](https://github.com/apache/nuttx/pull/18294) drivers/rpmsg: add timestamp support for rpmsg buffer latency measurement
* [#18301](https://github.com/apache/nuttx/pull/18301) drivers/lcd: Add ST7796 TFT LCD framebuffer driver
* [#18304](https://github.com/apache/nuttx/pull/18304) drivers/power/pm: Fix typos in comments
* [#18361](https://github.com/apache/nuttx/pull/18361) drivers/usbdev: Fix usbmsc_unbind() function for USB composite device
* [#18372](https://github.com/apache/nuttx/pull/18372) drivers/note: noteram ioctl FIONBIO should return -ENOTTY
* [#18410](https://github.com/apache/nuttx/pull/18410) drivers/serial/uart: implement uart rpmsg linux conterpart
* [#18435](https://github.com/apache/nuttx/pull/18435) drivers/sensors: Legacy sensor warning
* [#18446](https://github.com/apache/nuttx/pull/18446) drivers/serial: add common Xilinx UART Peripheral System (XUARTPS) support
* [#18454](https://github.com/apache/nuttx/pull/18454) drivers/syslog: add millisecond option for syslog timestamp formatting'
* [#17460](https://github.com/apache/nuttx/pull/17460) driver/usbhost: Support obtaining USB3.0 device descriptors
* [#17487](https://github.com/apache/nuttx/pull/17487) power/battery: battery gauge driver support
* [#17557](https://github.com/apache/nuttx/pull/17557) driver/note: make SIZEOF_NOTE_START return the right size
* [#17744](https://github.com/apache/nuttx/pull/17744) driver/cfi: fix write failed issue for unalign length with bankwidth
* [#17774](https://github.com/apache/nuttx/pull/17774) can: fix can driver error about hdr is not initilized
* [#17866](https://github.com/apache/nuttx/pull/17866) driver/cfi-flash: Add a config option for the page size of CFI flash.
* [#17979](https://github.com/apache/nuttx/pull/17979) crypto/cryptodev: support private data in driver
* [#18029](https://github.com/apache/nuttx/pull/18029) crypto/cryptodev: optimize driver
* [#18121](https://github.com/apache/nuttx/pull/18121) driver/note: Support poll threshold
* [#18123](https://github.com/apache/nuttx/pull/18123) driver/note: Add tag to note_event_s and note_printf_s
* [#18127](https://github.com/apache/nuttx/pull/18127) driver/syslog: Implement the rate limiting function for ramlog driver.
* [#18128](https://github.com/apache/nuttx/pull/18128) driver/note: Fix compilation error when CONFIG_SYSLOG_TO_SCHED_NOTE=y
* [#18280](https://github.com/apache/nuttx/pull/18280) driver/virtio: Delete reset on initialization
* [#18368](https://github.com/apache/nuttx/pull/18368) driver/input: Add keyboard matrix driver to read matrix keyboard using polling way.
* [#18370](https://github.com/apache/nuttx/pull/18370) video/sim_camera: Improve camera driver behavior and simulator camera coverage. |
Board Support
New Board Support
* [#18460](https://github.com/apache/nuttx/pull/18460) Introduce i.MX93 (M33) and IMX93-QSB board support |
Boards With Significant Improvements
* [#17397](https://github.com/apache/nuttx/pull/17397) boards/nucleo-h743zi: modify the romfs img file path
* [#17471](https://github.com/apache/nuttx/pull/17471) boards/defconfig: enable CONFIG_SCHED_CHILD_STATUS
* [#17477](https://github.com/apache/nuttx/pull/17477) boards/risc-v/esp32c3: Corrected the names of #include guards
* [#17532](https://github.com/apache/nuttx/pull/17532) boards/risc-v: Add lvgl64_vector configuration for RISC-V QEMU
* [#17547](https://github.com/apache/nuttx/pull/17547) boards/arm/mps3-an547: enable protected mode support
* [#17560](https://github.com/apache/nuttx/pull/17560) boards/nucleo-g431rb/qenco: reduce FLASH
* [#17562](https://github.com/apache/nuttx/pull/17562) boards/nucleo-f446re: disable OSTEST in some configs
* [#17563](https://github.com/apache/nuttx/pull/17563) boards/qemu-intel64/jumbo: enable more network tools
* [#17566](https://github.com/apache/nuttx/pull/17566) boards/risc-v/esp32c3: add Waveshare ESP32-C3-Zero
* [#17572](https://github.com/apache/nuttx/pull/17572) boards/esp32s3/lckfb-szpi: Add QMI8658 6-axis IMU sensor support
* [#17574](https://github.com/apache/nuttx/pull/17574) boards/esp32: Add initial support to Heltec WiFi LoRa32
* [#17576](https://github.com/apache/nuttx/pull/17576) boards/leds: remove dependency on leds example for some boards
* [#17577](https://github.com/apache/nuttx/pull/17577) boards/nucleo-c0xxx: fix leds handling
* [#17581](https://github.com/apache/nuttx/pull/17581) boards/esp32/heltec_wifi_lora32: Add support to SX1276 transceiver
* [#17738](https://github.com/apache/nuttx/pull/17738) boards/{nrf53|stm32h7}: mark shmem region as NOLOAD
* [#17751](https://github.com/apache/nuttx/pull/17751) board/lm3s6432-s2e/nsh: disable LIBC_LONG_LONG to fix ci bb
* [#17771](https://github.com/apache/nuttx/pull/17771) boards/raspberrypi-4b: Add testing configurations
* [#17879](https://github.com/apache/nuttx/pull/17879) boards/arm/kinetis: fix freeform-k28f usbhshost undeclared 'errcode'
* [#17911](https://github.com/apache/nuttx/pull/17911) boards/esp32c3-xiao: Fix ble configuration crash
* [#17945](https://github.com/apache/nuttx/pull/17945) boards/stm32f103-minimum: Add GPIO in/out/int define
* [#18013](https://github.com/apache/nuttx/pull/18013) boards/qemu-intel64/jumbo: enable procfs ACPI
* [#18025](https://github.com/apache/nuttx/pull/18025) boards/smartl-c906: enable hrtimer ostest in CI
* [#18031](https://github.com/apache/nuttx/pull/18031) boards/boardctl: Add BOARDCTL_MACADDR command
* [#18032](https://github.com/apache/nuttx/pull/18032) boards/xtensa/esp32: add rtc_reserved_seg to legacy_sections
* [#18054](https://github.com/apache/nuttx/pull/18054) boards/nrf53: correct rptun names
* [#18094](https://github.com/apache/nuttx/pull/18094) boards/sim: Fix watchdog callback
* [#18132](https://github.com/apache/nuttx/pull/18132) boards/sim: enable list-based hrtimer in CI ostest
* [#18146](https://github.com/apache/nuttx/pull/18146) boards/boardctl: use spinlock IRQ-safe interfaces for consistency
* [#18154](https://github.com/apache/nuttx/pull/18154) boards/xtensa: fixes for build and start-up issues when legacy boot enabled
* [#18206](https://github.com/apache/nuttx/pull/18206) board: enable hritmer (RB-tree and list implementation) CITEST on arm and riscv board
* [#18251](https://github.com/apache/nuttx/pull/18251) boards/sim/crypto: enable cmocka testing framework
* [#18283](https://github.com/apache/nuttx/pull/18283) boards/boardctl: BOARDIOC_SPINLOCK missing some Conditional branch
* [#18310](https://github.com/apache/nuttx/pull/18310) boards/risc-v/esp32c6: Add missing config for esp32c6 romfs
* [#18355](https://github.com/apache/nuttx/pull/18355) boards/imx95-evk: enable mpu by default
* [#18363](https://github.com/apache/nuttx/pull/18363) boards/arm: add nxp mr-navq95b support
* [#18406](https://github.com/apache/nuttx/pull/18406) boards/xtensa/esp32: add three missing defconfigs
* [#18416](https://github.com/apache/nuttx/pull/18416) boards/xtensa/esp32s2: add efuse defconfig
* [#18420](https://github.com/apache/nuttx/pull/18420) boards/stm32h7: Add button support to nucleo-h743zi2
* [#18459](https://github.com/apache/nuttx/pull/18459) boards/esp32c3-xiao: Add NimBLE example configuration |
File System
Significant Improvements
* [#17488](https://github.com/apache/nuttx/pull/17488) fs/romfs: revert the romfs write feature
* [#17500](https://github.com/apache/nuttx/pull/17500) fs/vfs: fix poll covertify issue about out-of-bound access fds
* [#17539](https://github.com/apache/nuttx/pull/17539) fs/mqueue: fix msgq memleak
* [#17548](https://github.com/apache/nuttx/pull/17548) fs/procfs: bugfix in heapcheck, avoid '\n' to 0
* [#17559](https://github.com/apache/nuttx/pull/17559) fs/tmpfs: fix memoryleak of tmpfs_opendir
* [#17706](https://github.com/apache/nuttx/pull/17706) littlefs: fix statfs underflow during active writes
* [#17731](https://github.com/apache/nuttx/pull/17731) fs/inode: bug fix about fdlist_extend, fdlist_install and eventfd/timerfd_blocking_io
* [#17740](https://github.com/apache/nuttx/pull/17740) fs/mqueue: fix inverted 'created' flag in file_mq_vopen
* [#17741](https://github.com/apache/nuttx/pull/17741) fs/epoll: release refs count and add TLS cleanup handler to release epoll fd reference on thread exit
* [#17748](https://github.com/apache/nuttx/pull/17748) fs/file: add reference count protection for stack-allocated file structures
* [#17513](https://github.com/apache/nuttx/pull/17513) bugfix/fs:write Bad buf addr should return EINVAL
* [#17811](https://github.com/apache/nuttx/pull/17811) fs/inode: using file_allocate and file_dup to avoid racecondition to allocate new fd
* [#17821](https://github.com/apache/nuttx/pull/17821) fs/userfs: keep mutex while reading iobuffer
* [#17839](https://github.com/apache/nuttx/pull/17839) fs/driver: Replace heap allocation of temporary device names
* [#18001](https://github.com/apache/nuttx/pull/18001) fs: add fs dump in ROMFS/LITTLEFS
* [#18062](https://github.com/apache/nuttx/pull/18062) fs: Fix the incorrect return value of the lseek interface.
* [#18107](https://github.com/apache/nuttx/pull/18107) fs/fat: add support for FIOC_FILEPATH ioctl
* [#18200](https://github.com/apache/nuttx/pull/18200) fs: fix inode information update outside of lock in SMP scene
* [#18238](https://github.com/apache/nuttx/pull/18238) fs/timerfd: implement TFD_TIMER_CANCEL_ON_SET to detect clock changes |
Networking
Improvements
* [#16940](https://github.com/apache/nuttx/pull/16940) net: Hardware Checksum Offload Support for NuttX Network Stack
* [#17431](https://github.com/apache/nuttx/pull/17431) net/pkt: Add some feature support
* [#17435](https://github.com/apache/nuttx/pull/17435) net/can: add write buffer to support nonblock send
* [#17436](https://github.com/apache/nuttx/pull/17436) net/netdev/netdev_register.c: skip mld_devinit if Nic can not support mld
* [#17440](https://github.com/apache/nuttx/pull/17440) net/utils/net_bufpool: add lock to struct net_bufpool_s and bufpool_navail
* [#17451](https://github.com/apache/nuttx/pull/17451) net: replace critical_section with spinlock
* [#17452](https://github.com/apache/nuttx/pull/17452) net: add vlan support
* [#17465](https://github.com/apache/nuttx/pull/17465) netdev_upperhalf: convert Kconfig to variable
* [#17483](https://github.com/apache/nuttx/pull/17483) net/pkt: add SOCK_DGRAM support
* [#17519](https://github.com/apache/nuttx/pull/17519) net: Check listening connections when selecting ports
* [#17520](https://github.com/apache/nuttx/pull/17520) net/pkt: Fixed error handling for unsupported types
* [#17521](https://github.com/apache/nuttx/pull/17521) net/socket: Fixed network card name does not end with \0 when binding the device issue
* [#17526](https://github.com/apache/nuttx/pull/17526) net/tcp: modify txavail to be sent directly in the current thread
* [#17551](https://github.com/apache/nuttx/pull/17551) net/packet: add PACKET_<ADD|DROP>_MEMBERSHIP support
* [#17553](https://github.com/apache/nuttx/pull/17553) net/netlink: add RT_TABLE_LOCAL definition for mqttc5 build
* [#17555](https://github.com/apache/nuttx/pull/17555) net/tcp: add TCP_CORK definition
* [#17585](https://github.com/apache/nuttx/pull/17585) net/netdev: allow stack to send/receive when running
* [#17587](https://github.com/apache/nuttx/pull/17587) net/igmp: mod check of IGMP_SCHEDMSG from assert to error log
* [#17588](https://github.com/apache/nuttx/pull/17588) net/tcp: modify the return value when dev is down in tcp_pollsetup
* [#17589](https://github.com/apache/nuttx/pull/17589) net: update check condition from IFF_UP to IFF_RUNNING in the network sending process
* [#17590](https://github.com/apache/nuttx/pull/17590) net/tcp: resolve reconnection issues when connection failed due to rejection
* [#17603](https://github.com/apache/nuttx/pull/17603) net/tcp: improve TCP retransmission mechanisms for better reliability
* [#17607](https://github.com/apache/nuttx/pull/17607) net/pkt: fix DHCP transmission failure by updating d_sndlen/d_len lengths
* [#17652](https://github.com/apache/nuttx/pull/17652) net/wireless: fix compile warning issue for wireless
* [#17655](https://github.com/apache/nuttx/pull/17655) netpkt: Introduction to using netpkt example
* [#17656](https://github.com/apache/nuttx/pull/17656) net/ethernet: ARP can be configured on interface
* [#17657](https://github.com/apache/nuttx/pull/17657) netlib: Introduction to IP conflict detection functions
* [#17658](https://github.com/apache/nuttx/pull/17658) net/icmp: check the checksum field when receive icmp message
* [#17659](https://github.com/apache/nuttx/pull/17659) net/ethernet: remove no use remove excess code
* [#17660](https://github.com/apache/nuttx/pull/17660) netdev_upperhalf: add direct rx mode
* [#17661](https://github.com/apache/nuttx/pull/17661) net/can: fix the typo and compile error
* [#17662](https://github.com/apache/nuttx/pull/17662) net/icmp: Return -ENOPROTOOPT for SOL_SOCKET to avoid misleading logs
* [#17663](https://github.com/apache/nuttx/pull/17663) net/net_initialize: remove the empty functions that are not needed
* [#17667](https://github.com/apache/nuttx/pull/17667) net/can: can protocol uses a separate buffer to cache can data
* [#17669](https://github.com/apache/nuttx/pull/17669) netlib: Add IOB statistics interface description
* [#17672](https://github.com/apache/nuttx/pull/17672) net/ipfrag: fix ip fragment assert when iob not enough
* [#17673](https://github.com/apache/nuttx/pull/17673) net/bufpool: fix typo
* [#17674](https://github.com/apache/nuttx/pull/17674) net/icmp: check src ip for icmp request message
* [#17676](https://github.com/apache/nuttx/pull/17676) net/tcp: add kconfig to support retransmission at a fixed time
* [#17677](https://github.com/apache/nuttx/pull/17677) net/vlan: add some macro for vlan
* [#17678](https://github.com/apache/nuttx/pull/17678) net/tcp: add support for the CLOSE_WAIT state
* [#17679](https://github.com/apache/nuttx/pull/17679) nuttx/net: Expose the net_ipv6addr_maskcmp interface to user-mode calls
* [#17686](https://github.com/apache/nuttx/pull/17686) net/ipv4: Send ICMP Destination Unreachable for unknown protocol
* [#17687](https://github.com/apache/nuttx/pull/17687) net/ipv4: Drop a ipv4 packet with total length bigger than the actual transmitted data
* [#17688](https://github.com/apache/nuttx/pull/17688) net/arp: support ARP entry learned on gratuitous ARP response
* [#17689](https://github.com/apache/nuttx/pull/17689) net/icmp: Support icmp timestamp request
* [#17691](https://github.com/apache/nuttx/pull/17691) net/tcp: tcp header seq check
* [#17692](https://github.com/apache/nuttx/pull/17692) net: decouple the impact of net_lock between network cards
* [#17693](https://github.com/apache/nuttx/pull/17693) net/ethernet: fix compilation issues for inet_sockif.c
* [#17695](https://github.com/apache/nuttx/pull/17695) net/vlan: make a judgment before calling fuction
* [#17698](https://github.com/apache/nuttx/pull/17698) net/udp: Validate UDP length field against actual packet size
* [#17699](https://github.com/apache/nuttx/pull/17699) net/udp: Support zero-length UDP datagrams
* [#17700](https://github.com/apache/nuttx/pull/17700) net/ethernet: change struct ifreq to consistent with Linux
* [#17701](https://github.com/apache/nuttx/pull/17701) net/devif: fix poll issue when ifdown
* [#17702](https://github.com/apache/nuttx/pull/17702) net/arp: dont learn arp information if interface is noarp
* [#17705](https://github.com/apache/nuttx/pull/17705) net/ioctl: add a socket interface for ioctl
* [#17707](https://github.com/apache/nuttx/pull/17707) net/tcp: support recv packet in the TCP_FIN_WAIT_1/2 state
* [#17709](https://github.com/apache/nuttx/pull/17709) net/tcp: remove SYN_RCVD state conn by listener created when free listener
* [#17710](https://github.com/apache/nuttx/pull/17710) net/tcp: send reset when retransmitted number greater than TCP_MAXRTX
* [#17711](https://github.com/apache/nuttx/pull/17711) net/tcp: support OTW ack seq check
* [#17712](https://github.com/apache/nuttx/pull/17712) net/arp: support arp request limit
* [#17713](https://github.com/apache/nuttx/pull/17713) net/tcp: discard fin packet in LISTEN state
* [#17714](https://github.com/apache/nuttx/pull/17714) net/tcp: fix tcp conn lock leak when port in use in tcp_selectport
* [#17715](https://github.com/apache/nuttx/pull/17715) net/tcp: fix conn->work use after free in worker queue list
* [#17716](https://github.com/apache/nuttx/pull/17716) net/ipv6: Drop IP packet shorter than length in IP header
* [#17729](https://github.com/apache/nuttx/pull/17729) net/arp: Skip ARP request if ip address is invalid
* [#17730](https://github.com/apache/nuttx/pull/17730) net/neighbor: Skip Neighbor request if ip address is invalid at ipv6
* [#17732](https://github.com/apache/nuttx/pull/17732) net/netlink: replace net_lock with netlink_lock
* [#17733](https://github.com/apache/nuttx/pull/17733) net/local: replace net_lock with local_lock
* [#17734](https://github.com/apache/nuttx/pull/17734) net/usrsock: replace net_lock with usrsock_lock
* [#17735](https://github.com/apache/nuttx/pull/17735) net_sockif.c: add ip level s|getsockopt support in SOCK_CTRL
* [#17743](https://github.com/apache/nuttx/pull/17743) net/can: fix poll setup to properly find and use free pollfd slots
* [#17745](https://github.com/apache/nuttx/pull/17745) net/local: simplify file descriptor passing using shared filep references
* [#17754](https://github.com/apache/nuttx/pull/17754) net/devif_poll: only call the corresponding xxx_poll when there is data to be sent
* [#17775](https://github.com/apache/nuttx/pull/17775) net can: modify the return value of can_datahandler API.
* [#17785](https://github.com/apache/nuttx/pull/17785) net/udp: fix udp message cannot be sent to the network card
* [#17806](https://github.com/apache/nuttx/pull/17806) net/netdev: Fix best prefix in findby
* [#17819](https://github.com/apache/nuttx/pull/17819) net/route: need clear old cached route info when do reset cache
* [#17858](https://github.com/apache/nuttx/pull/17858) net: make the sendmsg param type consistent with posix specification
* [#17869](https://github.com/apache/nuttx/pull/17869) net/icmpv6: fix crash when ipv6 address modified during autoconfig
* [#17877](https://github.com/apache/nuttx/pull/17877) net/usrsock: Fix EPIPE loop by clearing POLLIN on remote close
* [#17878](https://github.com/apache/nuttx/pull/17878) net: Support no-lto option for the network build.
* [#17887](https://github.com/apache/nuttx/pull/17887) netinet/in.h: Rename imr_interface to imr_address in struct ip_mreqn.
* [#17890](https://github.com/apache/nuttx/pull/17890) net/icmp: Fix devif_loopback dead loop when unrecognized ICMP packet
* [#17895](https://github.com/apache/nuttx/pull/17895) net/route/ramroute: replace prealloc with netpool
* [#17896](https://github.com/apache/nuttx/pull/17896) net/neighbor: fix compilation with CONFIG_NET_ICMPv6_NO_STACK
* [#17907](https://github.com/apache/nuttx/pull/17907) net/can: allow errmask to be set to CAN_ERR_FLAG
* [#17917](https://github.com/apache/nuttx/pull/17917) net/ipv4: check whether the length of the ipv4 option is correct
* [#17919](https://github.com/apache/nuttx/pull/17919) net/netdev: correct the ioctl command validation logic
* [#18011](https://github.com/apache/nuttx/pull/18011) net: limit TCP and UDP send/recv buffer usage with throttled IOB
* [#18056](https://github.com/apache/nuttx/pull/18056) net/bluetooth: fix rmutex deadlock
* [#18247](https://github.com/apache/nuttx/pull/18247) net/netdev: a valid netdev for ipv4 should have ipv4 addr configured
* [#18249](https://github.com/apache/nuttx/pull/18249) netdev_driver: add carrier_on to xxx_ifup where carrier_on is absent
* [#18258](https://github.com/apache/nuttx/pull/18258) net/rpmsg: Modify error handling to rpmsg socket
* [#18386](https://github.com/apache/nuttx/pull/18386) net/utils: add union name for tasking compiler compatibility |
Unsorted
Compatibility Concerns
* [#18083](https://github.com/apache/nuttx/pull/18083) !sched: Fix MISRA-C violations
* [#18398](https://github.com/apache/nuttx/pull/18398) !boards: Align naming of Kconfig options for interpreters |
Known Problems In This Release
More Information
How to Download
Release artifacts for all current and past NuttX releases can be downloaded at:
How to Clone the Git Repository
The Apache NuttX project uses Git SCM as its version control system.
There are two primary repositories:
- nuttx - The real time operating system itself.
- apps - Optional applications and example programs for the operating system. You can use this repository or make your own custom one.
The main "Single Source of Truth" repositories are hosted by the ASF:
These are synchronized with repositories hosted at GitHub:
How to Contact the Community
The main forum for project communication, to ask a question, get involved, or contribute to NuttX, is our mailing list, dev@nuttx.apache.org. The list is publicly archived and searchable at https://lists.apache.org/list.html?dev@nuttx.apache.org. For more information, see NuttX Community.
Enthusiastic Contributors Welcome!
NuttX is a free open-source project. If you'd like to participate, whether it's to enhance documentation (even these release notes) or dive into the nitty gritty of some low-level drivers, please join us! You can join the conversation at our dev mailing list by emailing dev-subscribe@nuttx.apache.org. The mailing list is open to the public and archived. You can browse older messages at https://lists.apache.org/list.html?dev@nuttx.apache.org.