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

MM

* [#14370](https://github.com/apache/nuttx/pull/14370) `mempool` backtrace fix and de-init fix

* [#15060](https://github.com/apache/nuttx/pull/15060) mm_grantable.c: Fix infinite loop due to memory fragmentation
* [#14572](https://github.com/apache/nuttx/pull/14572) mm: Complete remaining unused macros instead of memory to fill tags
* [#14588](https://github.com/apache/nuttx/pull/14588) mm: fix tlsf compiler error
* [#13893](https://github.com/apache/nuttx/pull/13893) mm: Resolve a series of issues caused by opening the software tag kasan
* [#14858](https://github.com/apache/nuttx/pull/14858) mm/gran: Speed optimize gran_match
* [#13849](https://github.com/apache/nuttx/pull/13849) mm/heap: hold heap lock before access mm_nregions
* [#14054](https://github.com/apache/nuttx/pull/14054) mm/heap: memory alignment before executing kasan_register
* [#14764](https://github.com/apache/nuttx/pull/14764) mm/iob: remove csection
* [#14506](https://github.com/apache/nuttx/pull/14506) mm/kasan: extern kasan API only MM_KASAN is enabled
* [#14294](https://github.com/apache/nuttx/pull/14294) mm/Kconfig: adjust config options order and fix typos
* [#14105](https://github.com/apache/nuttx/pull/14105) mm/Kconfig: fix build error when MM_BACKTRACE > 0 and disable mempool
* [#14091](https://github.com/apache/nuttx/pull/14091) mm/kconfig: Remove unnecessary dependencies
* [#13891](https://github.com/apache/nuttx/pull/13891) mm/kconfig: set the default alignment of global variable out-of-bounds detection is 1
* [#14575](https://github.com/apache/nuttx/pull/14575) mm/mm_gran: fix compile warnings
* [#14144](https://github.com/apache/nuttx/pull/14144) mm/mm_heap: Optimizing heap performance changing the mm_size2ndx and…
* [#14547](https://github.com/apache/nuttx/pull/14547) mm/mm_memalign: add debugging log
* [#14114](https://github.com/apache/nuttx/pull/14114) mm/sw_tags: add config for no longer checking for tags 0

libc

tools

* [#13959](https://github.com/apache/nuttx/pull/13959) [bugfix]checkpatch.sh:Fix checking for wrong cmake files
* [#13958](https://github.com/apache/nuttx/pull/13958) [bugfix]tools/mkdeps.c:add options for gen full path object target
* [#14723](https://github.com/apache/nuttx/pull/14723) [darwin] CI macos-14 : updated toolchains for macOS Apple Silicon
* [#14892](https://github.com/apache/nuttx/pull/14892) [MSYS2] CMake+Ninja Fix arm-none-eabi-ar: Argument list too long

various

* [#14251](https://github.com/apache/nuttx/pull/14251) cmake: add newly added sources to cmake
* [#14615](https://github.com/apache/nuttx/pull/14615) cmake: don't include syslog files if CONFIG_SYSLOG=n
* [#14404](https://github.com/apache/nuttx/pull/14404) cmake: fix the fdiagnostics-color handle issue
* [#14401](https://github.com/apache/nuttx/pull/14401) cmake: Renamed savedefconfig with refreshsilent
* [#14756](https://github.com/apache/nuttx/pull/14756) cmake:bugfix kconfig menu in cmake cannot be generated recursively
* [#14592](https://github.com/apache/nuttx/pull/14592) cmake:implement CMake build of xtensa arch
* [#14576](https://github.com/apache/nuttx/pull/14576) cmake(bugfix): add host mkdeps&incdir tool CMake build and fix X86_64 compile error
* [#14206](https://github.com/apache/nuttx/pull/14206) cmake(bugfix):add dependencies for nuttx_post ensure time order
* [#14746](https://github.com/apache/nuttx/pull/14746) cmake(bugfix):add missing source file for driver/serial and keep romfs cmake intermediate 
* [#14607](https://github.com/apache/nuttx/pull/14607) cmake(bugfix):add xtensa libc machine function build
* [#14210](https://github.com/apache/nuttx/pull/14210) cmake(bugfix):disable proxy and service source in open-amp
* [#15064](https://github.com/apache/nuttx/pull/15064) cmake(bugfix):fix CMake build break on MacOS
* [#14703](https://github.com/apache/nuttx/pull/14703) cmake(bugfix):fix directory not being successfully added when adding romfs
* [#14780](https://github.com/apache/nuttx/pull/14780) cmake(bugfix):fix libcxx build error cause by layout changed
* [#14427](https://github.com/apache/nuttx/pull/14427) cmake(bugfix):Fixed the issue that the host toolchain version cannot be specified
* [#14624](https://github.com/apache/nuttx/pull/14624) cmake(bugfix):make sure the extra_lib only added once
* [#14757](https://github.com/apache/nuttx/pull/14757) cmake(bugfix):remove no need target_link_library in static target
* [#13971](https://github.com/apache/nuttx/pull/13971) cmake(bugfix):Synchronize the compilation differences between CMake and Makefile in nuttx repo
* [#14612](https://github.com/apache/nuttx/pull/14612) cmake(build):add the specified armclang compiler to the cmake  Toolchain file
* [#14265](https://github.com/apache/nuttx/pull/14265) cmake(clear warning):toolchain file do not need set parent scope
* [#14747](https://github.com/apache/nuttx/pull/14747) cmake(enhance):add NuttX CMake extensions module
* [#14907](https://github.com/apache/nuttx/pull/14907) cmake(enhance):enhance NuttX cmake target_dependencies and link_library modules
* [#15009](https://github.com/apache/nuttx/pull/15009) cmake(enhance):Enhance romfs so that RAWS files can be added in any location
* [#13955](https://github.com/apache/nuttx/pull/13955) cmake(Enhancement):enhance compile options for custom toolchainimplement the REVERSE opt of `add_compile_options()`
* [#14175](https://github.com/apache/nuttx/pull/14175) cmake(refine):fix cmake options typo and add EXTRA_FLAGS support
* [#13890](https://github.com/apache/nuttx/pull/13890) Cmake/kasan:  cmake supports multiple link global variables out of bounds
* [#14540](https://github.com/apache/nuttx/pull/14540) CMake/preprocess: fix typo PREPROCES -> PREPROCESS

* [#15032](https://github.com/apache/nuttx/pull/15032) gcc/gcov: Add instrumentation function
* [#14970](https://github.com/apache/nuttx/pull/14970) gcov: Add gcov gcc implementation and toolchain to ci compilation
* [#14890](https://github.com/apache/nuttx/pull/14890) gcov: Add toolchain gcov dependency option
* [#14946](https://github.com/apache/nuttx/pull/14946) gcov: Add usage documentation
* [#14538](https://github.com/apache/nuttx/pull/14538) gcov: Fix typographical errors
* [#14557](https://github.com/apache/nuttx/pull/14557) gcov: Support for the most streamlined profile of LLVM-embedded-toolchain-for-Arm
* [#13965](https://github.com/apache/nuttx/pull/13965) gcov:adjust gcov configuration name and delete non-existent dependencie

* [#14843](https://github.com/apache/nuttx/pull/14843) GDB Plugin Upgrade Part1 - Thread related commands
* [#14851](https://github.com/apache/nuttx/pull/14851) GDB Plugin Upgrade part2: memory leak detection and other memory tools
* [#14854](https://github.com/apache/nuttx/pull/14854) GDB Plugin Upgrade part3: fs related tools
* [#14899](https://github.com/apache/nuttx/pull/14899) GDB Plugin Upgrade part4: net related tools
* [#14920](https://github.com/apache/nuttx/pull/14920) gdb/debug: add debugpy to debug python code
* [#14315](https://github.com/apache/nuttx/pull/14315) gdbserver.py optimization
* [#14486](https://github.com/apache/nuttx/pull/14486) gdbstub:remove ARCH_HAVE_DEBUG depends
* [#14789](https://github.com/apache/nuttx/pull/14789) gdbstub:typo fix
* [#13903](https://github.com/apache/nuttx/pull/13903) gdbstub:we can use uart to debug with gdb when crash

* [#14913](https://github.com/apache/nuttx/pull/14913) nuttxgdb list function enhancement
* [#14916](https://github.com/apache/nuttx/pull/14916) nuttxgdb memory commands performance optimization
* [#15001](https://github.com/apache/nuttx/pull/15001) nuttxgdb minor fix
* [#14914](https://github.com/apache/nuttx/pull/14914) nuttxgdb net module update
* [#14912](https://github.com/apache/nuttx/pull/14912) nuttxgdb utils module update
* [#14915](https://github.com/apache/nuttx/pull/14915) nuttxgdb utils value update
* [#14919](https://github.com/apache/nuttx/pull/14919) nuttxgdb: add error hint to gdbinit
* [#14921](https://github.com/apache/nuttx/pull/14921) nuttxgdb: minor fix to diagnose command and thread module
* [#14976](https://github.com/apache/nuttx/pull/14976) nuttxgdb/rpmsg.py:dump rpmsg_service message

Major Changes to the Build System

New Features

Bug Fixes

Architectural Support

New Architecture Support


Architecture Improvements

* [#14803](https://github.com/apache/nuttx/pull/14803) arch_atomic : Introduce CONFIG_LIBC_ARCH_ATOMIC
* [#14827](https://github.com/apache/nuttx/pull/14827) arch_atomic: support nx atomic function
* [#14880](https://github.com/apache/nuttx/pull/14880) arch_atomic: use small lock in libs/libc/machine/arch_atomic.c

arm

* [#13861](https://github.com/apache/nuttx/pull/13861) arch: cxd56xx: Add SD card 4-bit capability
* [#14847](https://github.com/apache/nuttx/pull/14847) arch: cxd56xx: Fix compile error of cxd56_gnss.c
* [#14842](https://github.com/apache/nuttx/pull/14842) arch: cxd56xx: Fix cxd56xx for SMP

* [#14993](https://github.com/apache/nuttx/pull/14993) arch: cxd56xx: use small lock in arch/arm/src/cxd56xx/cxd56_clock.c
* [#15031](https://github.com/apache/nuttx/pull/15031) arch: cxd56xx: use small lock in arch/arm/src/cxd56xx/cxd56_nxaudio_src.c

Driver Support

New Driver Support

* [#14358](https://github.com/apache/nuttx/pull/14358) drivers/power/battery: add charge/battery health interface support

Drivers With Improvements

* [#13925](https://github.com/apache/nuttx/pull/13925) driver: add GOLDFISH_GPU_FB_PRIORITY for goldfish_gpu_fb_vsync_thread
* [#14194](https://github.com/apache/nuttx/pull/14194) driver/i2c/ipcc: Post sempahore only when it's value is smaller than one
* [#14510](https://github.com/apache/nuttx/pull/14510) driver/serial: remove return value of up_putc()
* [#14603](https://github.com/apache/nuttx/pull/14603) drivers: Fix the missing headers.
* [#14817](https://github.com/apache/nuttx/pull/14817) drivers/adc: Rename up_ads1255initialize to ads1255_initialize
* [#15011](https://github.com/apache/nuttx/pull/15011) drivers/audio/wm8994.c: Include nuttx/arch.h to fix compilation (up_m…
* [#13979](https://github.com/apache/nuttx/pull/13979) drivers/battery: Fix Goldfish Battery x64 unresponsive interrupt issue
* [#13911](https://github.com/apache/nuttx/pull/13911) drivers/coresight: ETM4 set up
* [#13947](https://github.com/apache/nuttx/pull/13947) drivers/devicetree/fdt: get 'reg' property
* [#13916](https://github.com/apache/nuttx/pull/13916) drivers/fb: use ENOTTY to replace assert
* [#14790](https://github.com/apache/nuttx/pull/14790) Drivers/input
* [#14177](https://github.com/apache/nuttx/pull/14177) drivers/input: fix complie err about undefined
* [#14728](https://github.com/apache/nuttx/pull/14728) drivers/misc: fix rpmsg dev poll assert crash
* [#14729](https://github.com/apache/nuttx/pull/14729) drivers/misc: fix rpmsgdev read overflow
* [#15047](https://github.com/apache/nuttx/pull/15047) drivers/net: change netdev_lower_quota_load to macro
* [#13860](https://github.com/apache/nuttx/pull/13860) drivers/net: Register "/dev/net/tun" as tun node too
* [#13872](https://github.com/apache/nuttx/pull/13872) drivers/note: suport rpmsg transfer channel for notesome note api
* [#14185](https://github.com/apache/nuttx/pull/14185) drivers/optee: Return error if optee_recv return prematurely
* [#14165](https://github.com/apache/nuttx/pull/14165) drivers/pci: fix pci framework warning in 32bit chip
* [#14248](https://github.com/apache/nuttx/pull/14248) drivers/rpmsgdev: support get more battery info by rpmsgdev
* [#14078](https://github.com/apache/nuttx/pull/14078) drivers/rptun: minor fix about rptun
* [#14256](https://github.com/apache/nuttx/pull/14256) drivers/segger: inline note_sysview_get_timestamp
* [#14979](https://github.com/apache/nuttx/pull/14979) drivers/sensors/gnss: Add suffix to macro of geofence index
* [#14999](https://github.com/apache/nuttx/pull/14999) drivers/sensors/gnss: Different nbuffer for each topic
* [#14298](https://github.com/apache/nuttx/pull/14298) drivers/serial: fix cmsdk serial driver warning
* [#14411](https://github.com/apache/nuttx/pull/14411) drivers/spi_slave: call SPIS_DEV_NOTIFY when rx or tx complete for all spi slave driver
* [#14810](https://github.com/apache/nuttx/pull/14810) drivers/syslog: remove implement of syslog_putc()
* [#15038](https://github.com/apache/nuttx/pull/15038) drivers/timers: export arch timer api to support higher resolution
* [#13992](https://github.com/apache/nuttx/pull/13992) drivers/timers:Arch_alarm and arch_timer add up_ndelay interface

Board Support

New Board Support

Boards With Improvements

* [#13908](https://github.com/apache/nuttx/pull/13908) board_reset: flush cache before reset
* [#14520](https://github.com/apache/nuttx/pull/14520) board: refresh boards after update LIBCANUTILS dependency
* [#13895](https://github.com/apache/nuttx/pull/13895) board/arm/nrf52: fix use up_interrupt_context to is_nesting_interrupt
* [#15025](https://github.com/apache/nuttx/pull/15025) board/nucleo-h563zi: Add HSE option
* [#14162](https://github.com/apache/nuttx/pull/14162) board/qemu-armv7a: use fdt_virtio_mmio_devices_register() to register mmio devices
* [#14287](https://github.com/apache/nuttx/pull/14287) boards: Enable LTO option for same70-xplained/mcuboot-loader
* [#15070](https://github.com/apache/nuttx/pull/15070) boards: Update configs about system/usbmsc
* [#14839](https://github.com/apache/nuttx/pull/14839) boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c: fix typo
* [#14840](https://github.com/apache/nuttx/pull/14840) boards/arm/stm32/nucleo-f4x1re/stm32_adc.c: remove dependency on AJOYSTICK
* [#14439](https://github.com/apache/nuttx/pull/14439) boards/arm/stm32f7: fix nucleo boards break for cmake
* [#14437](https://github.com/apache/nuttx/pull/14437) boards/arm/stm32f7: removed extra endif() from cmakefile for nucleo-f746zg nucleo-f722ze nucleo-f767zi
* [#14414](https://github.com/apache/nuttx/pull/14414) boards/arm/stm32f7: separate nucleo-144 board into individual boards
* [#14223](https://github.com/apache/nuttx/pull/14223) boards/arm64: Add an impls section to the link script
* [#14687](https://github.com/apache/nuttx/pull/14687) boards/arm64/imx9/imx93-evk: add trdc header
* [#14720](https://github.com/apache/nuttx/pull/14720) boards/esp32c3-legacy: Add missing include to esp32c3_boot.c
* [#14947](https://github.com/apache/nuttx/pull/14947) boards/esp32s3: Add ESP32-S3-WROOM-1-N8R8 depends for ESP32S3_DEVKIT
* [#14481](https://github.com/apache/nuttx/pull/14481) boards/esp32s3: Merge MCUboot and "simple-boot" linker scripts
* [#15027](https://github.com/apache/nuttx/pull/15027) boards/mte: Dependencies changed so need to delete it now
* [#14708](https://github.com/apache/nuttx/pull/14708) boards/nucleo-f302r8: fix LED1 pin
* [#14408](https://github.com/apache/nuttx/pull/14408) boards/nucleo-l432kc: Add internal DAC code.
* [#14055](https://github.com/apache/nuttx/pull/14055) boards/qemu: Open kasan on qemu
* [#15012](https://github.com/apache/nuttx/pull/15012) boards/qemu64:  Deleted test program of kasantest config
* [#14482](https://github.com/apache/nuttx/pull/14482) boards/risc-v: Remove ref to riscv_internal.h
* [#14261](https://github.com/apache/nuttx/pull/14261) boards/same70-xplained: refine config for insufficient flash capacity
* [#14853](https://github.com/apache/nuttx/pull/14853) boards/stm32: split nucleo-f4x1re into separate boards
* [#14762](https://github.com/apache/nuttx/pull/14762) boards/stm32f103-minimum: fix unaligned pointer to .data section in ld.script
* [#13915](https://github.com/apache/nuttx/pull/13915) boards/stm32f7/stm32f746g-disco: fix FMC pin
* [#14791](https://github.com/apache/nuttx/pull/14791) boards/x86_64/intel64/qemu-intel64: add jumbo configuration
* [#14949](https://github.com/apache/nuttx/pull/14949) boards/xtensa/esp32s3: Treat return value that greater than zero as succ

File System

Significant Improvements

* [#14039](https://github.com/apache/nuttx/pull/14039) fs poll optimize
* [#14752](https://github.com/apache/nuttx/pull/14752) fs_automount:fix ci break
* [#14184](https://github.com/apache/nuttx/pull/14184) fs_file.c: modify files_countlist comments
* [#14137](https://github.com/apache/nuttx/pull/14137) fs_heap_strdup/asprintf
* [#13907](https://github.com/apache/nuttx/pull/13907) fs_open:Adjust the definition of the open path
* [#14461](https://github.com/apache/nuttx/pull/14461) fs: add fs_heap_strndup replace strndup with fs_heap_strndup
* [#14673](https://github.com/apache/nuttx/pull/14673) fs: add merge partitions support
* [#13926](https://github.com/apache/nuttx/pull/13926) fs: fix compile break
* [#14609](https://github.com/apache/nuttx/pull/14609) fs: Fix mtd/sector512.c:554:19: error: incomplete definition of type 'struct partition_info_s'
* [#13928](https://github.com/apache/nuttx/pull/13928) fs: fix wrong config for FS_SHMFS
* [#14903](https://github.com/apache/nuttx/pull/14903) fs/littlefs: Add a kconfig to override littlefs version
* [#14935](https://github.com/apache/nuttx/pull/14935) fs/littlefs: make CONFIG_FS_LITTLEFS_VERSION include the "v" prefix
* [#14956](https://github.com/apache/nuttx/pull/14956) fs/littlefs: stop applying local patches for unknown versions of littlefs
* [#14445](https://github.com/apache/nuttx/pull/14445) fs/mnemofs: Add logs to bind and unbind.
* [#14463](https://github.com/apache/nuttx/pull/14463) fs/mnemofs: Fix extra log unused value error.
* [#14533](https://github.com/apache/nuttx/pull/14533) fs/mnemofs: Fix mkdir for depth > 3 bug better logs
* [#14604](https://github.com/apache/nuttx/pull/14604) fs/mnemofs: Fix open and rmdir return value and seek out of bounds.
* [#14528](https://github.com/apache/nuttx/pull/14528) fs/nfs: fix offset in append mode and attributes after create
* [#14429](https://github.com/apache/nuttx/pull/14429) fs/nxffs: Fix syslog formats compile error
* [#14948](https://github.com/apache/nuttx/pull/14948) fs/partition/txtable: Fix panic when no txtable was found in last eraseblock
* [#14763](https://github.com/apache/nuttx/pull/14763) fs/procfs: The procfsversion should be under control of `FS_PROCFS_EXCLUDE_VERSION`
* [#14359](https://github.com/apache/nuttx/pull/14359) fs/rpmsgfs[bug fix]: return real err value when open failed
* [#13931](https://github.com/apache/nuttx/pull/13931) fs/semaphore: fix a minor issue with goto label
* [#14582](https://github.com/apache/nuttx/pull/14582) fs/shm: support shm_open with flags O_TRUNC
* [#13929](https://github.com/apache/nuttx/pull/13929) fs/vfs: Avoid calling stat with oldrelpath twice in mountptrename
* [#14702](https://github.com/apache/nuttx/pull/14702) fs/vfs: Fix initialization of `g_pseudofile_ops`

Networking

Improvements

* [#14650](https://github.com/apache/nuttx/pull/14650) net: fix inet #14634 regression
* [#14634](https://github.com/apache/nuttx/pull/14634) net: inet.h match inet_sockif.c definition
* [#14886](https://github.com/apache/nuttx/pull/14886) net: Move NET_TCP/UDP_HAVE_STACK to netconfig.h
* [#14727](https://github.com/apache/nuttx/pull/14727) net:Compatible with cellular network cards of lladdr generation
* [#14092](https://github.com/apache/nuttx/pull/14092) net/can: Save simple options to socket_conn_s
* [#14643](https://github.com/apache/nuttx/pull/14643) net/igc: Support Intel I226V.
* [#14018](https://github.com/apache/nuttx/pull/14018) net/local: fix the return address is incorrect when accept
* [#14447](https://github.com/apache/nuttx/pull/14447) net/local: fix used after free
* [#14630](https://github.com/apache/nuttx/pull/14630) net/netlink: fix netlink poll return value on success
* [#13905](https://github.com/apache/nuttx/pull/13905) net/rpmsg: add SO_SNDBUF and SO_RCVBUF support
* [#14573](https://github.com/apache/nuttx/pull/14573) net/rpmsg: Don't set POLLHUP if rpmsg channel has not been established
* [#14216](https://github.com/apache/nuttx/pull/14216) net/tcp: Reset the conn when receiving a ACK in the SYN_SENT state.
* [#14529](https://github.com/apache/nuttx/pull/14529) net/usrsock: usrsock supports offload netlink
* [#14163](https://github.com/apache/nuttx/pull/14163) net/vsock: add AF_VSOCK address family
* [#14138](https://github.com/apache/nuttx/pull/14138) netdb: fix may add duplicate DNS servers
* [#14192](https://github.com/apache/nuttx/pull/14192) netdev:In netdev_defaultIf there is only one loopback network devices it returns NULL
* [#14636](https://github.com/apache/nuttx/pull/14636) netinet/if_ether.h: move #define ETH_XXX into if_ether.h
* [#13859](https://github.com/apache/nuttx/pull/13859) Netlink minor fix


Security Issues Fixed In This Release

Compatibility Concerns

Changes to Build System

Renamed or Modified Kconfig Options

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:

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.orgFor 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.