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

Improvements to Core OS

sched

* [#10919](https://github.com/apache/nuttx/pull/10919) sched: assert: move the backtrace dump after the stack dump
* [#11195](https://github.com/apache/nuttx/pull/11195) sched: assert: restore assertion registers to array of last registers
* [#10858](https://github.com/apache/nuttx/pull/10858) sched: assert.c: Print process name in assert dump
* [#11131](https://github.com/apache/nuttx/pull/11131) sched: Check for zero sleep time and yield CPU
* [#11226](https://github.com/apache/nuttx/pull/11226) sched: delete check when pick nexttcb in readytorun list
* [#11038](https://github.com/apache/nuttx/pull/11038) sched: env_dup: fix issue about USE_AFTER_FREE
* [#11102](https://github.com/apache/nuttx/pull/11102) sched: explicitly select the cpuload clock source configuration
* [#10816](https://github.com/apache/nuttx/pull/10816) sched: Fix dependencies of CONFIG_SCHED_CPULOAD_ settings
* [#11036](https://github.com/apache/nuttx/pull/11036) sched: Follow o_cloexe semantics when calling the exec function
* [#10867](https://github.com/apache/nuttx/pull/10867) sched: format: modify spin_lock_irqsave format
* [#11018](https://github.com/apache/nuttx/pull/11018) sched: group/killchildren: replace syscall(2) to kernel api
* [#10605](https://github.com/apache/nuttx/pull/10605) sched: Implement ticket spinlock
* [#10827](https://github.com/apache/nuttx/pull/10827) sched: Improve adjtime() functionality
* [#11231](https://github.com/apache/nuttx/pull/11231) sched: lock refine: remove sched_[un]lock in xxx_waitsample
* [#11302](https://github.com/apache/nuttx/pull/11302) sched: misc/rwlock:Implementing read/write locks.
* [#11347](https://github.com/apache/nuttx/pull/11347) sched: Print more information in assert
* [#11017](https://github.com/apache/nuttx/pull/11017) sched: pthread/barrierwait: replace syscall(2) to kernel api
* [#10929](https://github.com/apache/nuttx/pull/10929) sched: Remove the unused tcb argument from group_setupidlefiles
* [#10776](https://github.com/apache/nuttx/pull/10776) sched: rw spinlock
* [#11124](https://github.com/apache/nuttx/pull/11124) sched: rw spinlocks: cosmetic changes
* [#11191](https://github.com/apache/nuttx/pull/11191) sched: sem_holder.c: When accessing SEM_WAITLIST, use holder's addrenv
* [#11257](https://github.com/apache/nuttx/pull/11257) sched: semaphore: Move POSIX regulated parts of semaphores into libc
* [#11252](https://github.com/apache/nuttx/pull/11252) sched: sigaction: Expand si_user for non-kernel signals
* [#10970](https://github.com/apache/nuttx/pull/10970) sched: smp call exit immediately when cpuset change to 0.
* [#10861](https://github.com/apache/nuttx/pull/10861) sched: spinlock: Add spin_lock_init and spin_is_locked macro
* [#11348](https://github.com/apache/nuttx/pull/11348) sched: Stack recored:Add maximum stack statistics when the task is running
* [#9163](https://github.com/apache/nuttx/pull/9163) sched: Stop the sched timer when possible to save the power in tickless mode
* [#10934](https://github.com/apache/nuttx/pull/10934) sched: support smp function call
* [#11032](https://github.com/apache/nuttx/pull/11032) sched: task: [posix]spawn: Simplify how spawn attributes are handled
* [#11241](https://github.com/apache/nuttx/pull/11241) sched: task: pthread_cancelpt: Fix nxtask_delete from another task group
* [#11165](https://github.com/apache/nuttx/pull/11165) sched: task: pthread_cancelpt: Move cancel point handling to libc, data to TLS
* [#11097](https://github.com/apache/nuttx/pull/11097) sched: task: Remove spawn_proxyattrs as obsolete implementation
* [#11177](https://github.com/apache/nuttx/pull/11177) sched: taskfiles: skip unnecessary file open/close operations to improve performance
* [#11250](https://github.com/apache/nuttx/pull/11250) sched: taskspawn: fix spawn fail if enable FDCHECK
* [#10834](https://github.com/apache/nuttx/pull/10834) sched: timer: handle perf count overflow

mm

* [#11068](https://github.com/apache/nuttx/pull/11068) mm: both use spin_lock_irqxx() when operated delaylist
* [#11183](https://github.com/apache/nuttx/pull/11183) mm: free delay list when exceeding specified count
* [#11258](https://github.com/apache/nuttx/pull/11258) mm: kmap: Finalize kmap implementation for RISC-V
* [#10837](https://github.com/apache/nuttx/pull/10837) mm: kmap: Fix bug in kmm_unmap
* [#10876](https://github.com/apache/nuttx/pull/10876) mm: kmap: Fix several issues with the kmm_map interface
* [#11114](https://github.com/apache/nuttx/pull/11114) mm: kmap: Fix bad dependency to ARCH_VMA_MAPPING
* [#11092](https://github.com/apache/nuttx/pull/11092) mm: improve SMP performance
* [#11152](https://github.com/apache/nuttx/pull/11152) mm: record the maximum system memory usage
* [#11168](https://github.com/apache/nuttx/pull/11168) mm: Remove mm_spinlock
* [#10984](https://github.com/apache/nuttx/pull/10984) mm: Replace enter_critical_section with spin_irqsave

libs

* [#11408](https://github.com/apache/nuttx/pull/11408) libc: add fgetwc, getwc, ungetwc wchar api implementation
* [#10602](https://github.com/apache/nuttx/pull/10602) libc: add support for custom streams with fopencookie()
* [#11011](https://github.com/apache/nuttx/pull/11011) libc: add support for memory buffer stream with fmemopen()
* [#11274](https://github.com/apache/nuttx/pull/11274) libc: add support for open_memstream
* [#11288](https://github.com/apache/nuttx/pull/11288) libc: arm: add support of PACBTI
* [#10969](https://github.com/apache/nuttx/pull/10969) libc: Change errno to set_errno and get_errno
* [#11294](https://github.com/apache/nuttx/pull/11294) libc: Fix -nan issue with f32
* [#11198](https://github.com/apache/nuttx/pull/11198) libc: Fix improper handling of 64 bit types for libvsprintf
* [#11322](https://github.com/apache/nuttx/pull/11322) libc: Handle PCREL_HI20/LO12_I/S relocations correctly
* [#10994](https://github.com/apache/nuttx/pull/10994) libc: Improve stdio unlock version function
* [#11364](https://github.com/apache/nuttx/pull/11364) libc: lib_slcd: fix encode/decode of binary nibble to/from ascii hex
* [#11035](https://github.com/apache/nuttx/pull/11035) libc: localtime: fix the timezone error caused by minor error
* [#11281](https://github.com/apache/nuttx/pull/11281) libc: machine/arm: align related implementations of armv7 architecture
* [#10927](https://github.com/apache/nuttx/pull/10927) libc: machine: Remove FAR from sparc
* [#11133](https://github.com/apache/nuttx/pull/11133) libc: realpath: allocate link buffer of pseudofs to save stack
* [#10913](https://github.com/apache/nuttx/pull/10913) libc: Refine the implementation of fopen/fdopen
* [#10993](https://github.com/apache/nuttx/pull/10993) libc: Remove the unused lib_libdtoa.c
* [#11137](https://github.com/apache/nuttx/pull/11137) libc: Solve some problems encountered during cmake compilation
* [#10992](https://github.com/apache/nuttx/pull/10992) libc: stdio: Change FILE buffer field from "unsigned char *" to "char *"
* [#11063](https://github.com/apache/nuttx/pull/11063) libc: stdlib/lib_exit.c: fix multiple definition of __dso_handle and sethost.sh: add MSYS environmen for msys2
* [#11447](https://github.com/apache/nuttx/pull/11447) libc: stream: add stream interface
* [#11350](https://github.com/apache/nuttx/pull/11350) libc: Support gdbstub kernal debugging
* [#11346](https://github.com/apache/nuttx/pull/11346) libc: Supports storing coredump into block devices
* [#10862](https://github.com/apache/nuttx/pull/10862) libc: memfd: shm_unlink or unlink anonymous file
* [#10891](https://github.com/apache/nuttx/pull/10891) libc: memfd: turn a runtime error into a linker error
* [#10972](https://github.com/apache/nuttx/pull/10972) libds: add missing observer_b16.c to cmake build
* [#10915](https://github.com/apache/nuttx/pull/10915) libdsp: lib_observer.c: use float numbers for some calculations
* [#10979](https://github.com/apache/nuttx/pull/10979) libdsp: update LP_FILTER comment
* [#11256](https://github.com/apache/nuttx/pull/11256) libm: Fix an issue that public header files are not exported
* [#11162](https://github.com/apache/nuttx/pull/11162) libm: newlib: Change the download site to https
* [#11386](https://github.com/apache/nuttx/pull/11386) libs: log2ceil: Move implementation of log2ceil to a common place
* [#11043](https://github.com/apache/nuttx/pull/11043) libs: modlib: optimize code and add arch api for allocating data section
* [#11394](https://github.com/apache/nuttx/pull/11394) libxx: cmake: remove useless code
* [#11050](https://github.com/apache/nuttx/pull/11050) libxx: Silence warnings when building libcxx.
* [#11301](https://github.com/apache/nuttx/pull/11301) libxx: upgrade llvm version to 17.0.6
* [#10860](https://github.com/apache/nuttx/pull/10860) libxx: Use gnu++20 option only if using libcxx

misc

* [#11242](https://github.com/apache/nuttx/pull/11242) Revert "libc/lib_bzero:Add bzero prototype."
* [#10881](https://github.com/apache/nuttx/pull/10881) arm, arm64, xtensa, libxx: Change sed -r to sed -E to support macOS
* [#11027](https://github.com/apache/nuttx/pull/11027) assert: rename __ASSERT to __ASSERT__ to avoid conflict
* [#11025](https://github.com/apache/nuttx/pull/11025) audio: add amr format support
* [#11055](https://github.com/apache/nuttx/pull/11055) binfmt/elf: Select ARCH_USE_TEXT_HEAP if ARCH_HAVE_TEXT_HEAP 
* [#11238](https://github.com/apache/nuttx/pull/11238) clock.h: use CONFIG_DEBUG_SCHED to test init ticks
* [#10924](https://github.com/apache/nuttx/pull/10924) crypto/rsa_verify: export rsa verify via /dev/crypto
* [#10978](https://github.com/apache/nuttx/pull/10978) debug/assert: decouple configuration of show file name feature
* [#10809](https://github.com/apache/nuttx/pull/10809) dma: support source/destination address auto step
* [#10870](https://github.com/apache/nuttx/pull/10870) fixedmath: add abs and sign operations
* [#11111](https://github.com/apache/nuttx/pull/11111) ioctl: add definitions related to ethtool
* [#11121](https://github.com/apache/nuttx/pull/11121) ioctl: add SIOCGIWNAME support
* [#11026](https://github.com/apache/nuttx/pull/11026) kernel: replace all sem_* to nxsem_*: in kernel space
* [#10849](https://github.com/apache/nuttx/pull/10849) langinfo: The character U+ff0c "," could be confused with the ASCII character U…
* [#11243](https://github.com/apache/nuttx/pull/11243) list: search prev item in reverse order
* [#11221](https://github.com/apache/nuttx/pull/11221) poll: pollsetup should notify only one fd passed by caller
* [#10892](https://github.com/apache/nuttx/pull/10892) refine: move BIT Macro to nuttx/bits.h
* [#11218](https://github.com/apache/nuttx/pull/11218) spinlock: Move the inclusion of stdatomic.h to source file
* [#10869](https://github.com/apache/nuttx/pull/10869) sys/types: supporting 32-bit IDs for gid_t/uid_t
* [#11207](https://github.com/apache/nuttx/pull/11207) tcbinfo:remove total_num form tcbinfo.
* [#11298](https://github.com/apache/nuttx/pull/11298) video: Update v4l2m2m interface & create videoio.h
* [#11362](https://github.com/apache/nuttx/pull/11362) virtio.h: add virtio_has_feature api for virtio driver

Build System

Improvements

* [#11007](https://github.com/apache/nuttx/pull/11007) Revert "make/archive: Use the full path name when matching or storing…
* [#11047](https://github.com/apache/nuttx/pull/11047) applications: Move the test tools in the system to the testing
* [#11395](https://github.com/apache/nuttx/pull/11395) cmake: build file support with libcxx 17.0.6
* [#10982](https://github.com/apache/nuttx/pull/10982) cmake: correct cmake rule file name
* [#11375](https://github.com/apache/nuttx/pull/11375) cmake: fix NUTTX_COMMON_DIR
* [#11031](https://github.com/apache/nuttx/pull/11031) cmake: init RISC-V cmake qemu-rv build
* [#10843](https://github.com/apache/nuttx/pull/10843) cmake: raise error if previous make build was not cleaned
* [#10879](https://github.com/apache/nuttx/pull/10879) fix: TreeNode has same attribute with NodeMixin
* [#10968](https://github.com/apache/nuttx/pull/10968) nuttx: generate nuttx.map file when enable debug link map.
* [#11303](https://github.com/apache/nuttx/pull/11303) sh: Enhanced compilation system
* [#11432](https://github.com/apache/nuttx/pull/11432) tools: config.mk: whether verbosity is enabled or not, should use bash
* [#11098](https://github.com/apache/nuttx/pull/11098) tools: configure.c and tools/sethost.sh Add CONFIG_EXPERIMENTAL for configure windows native

Architectural Support

New Architecture Support

* [#11319](https://github.com/apache/nuttx/pull/11319) arm:imxrt: Add support for imxrt1170 Soc and imxrt1170-evk board
* [#11371](https://github.com/apache/nuttx/pull/11371) riscv: Add support for Bouffalo Lab BL808 SoC (T-Head C906)

Architecture Improvements

Driver Support

New Driver Support

* [#10770](https://github.com/apache/nuttx/pull/10770) drivers: add regmap subsystems support.
* [#10902](https://github.com/apache/nuttx/pull/10902) motor: Add stepper interface
* [#11253](https://github.com/apache/nuttx/pull/11253) mtd: Adds support to W25Q20CL memory.
* [#11149](https://github.com/apache/nuttx/pull/11149) mtd: mx25rxx: add support for MX25L25673G chip
* [#11422](https://github.com/apache/nuttx/pull/11422) net: ksz9477: Add simple port-based static VLAN configuration
* [#11339](https://github.com/apache/nuttx/pull/11339) net: lan9250: Add LAN9250 driver(SPI and QSPI mode)
* [#11280](https://github.com/apache/nuttx/pull/11280) sensors: Add support for MS5607
* [#10864](https://github.com/apache/nuttx/pull/10864) sensors: max31865:RTD-to-Digital Converter
* [#10914](https://github.com/apache/nuttx/pull/10914) stepper: add DRV8825
* [#11228](https://github.com/apache/nuttx/pull/11228) tee: add optee client driver module

Drivers With Significant Improvements

* [#11071](https://github.com/apache/nuttx/pull/11071) Kconfigs: rename {Rpmsg|rpmsg} to RPMGS
* [#11061](https://github.com/apache/nuttx/pull/11061) can: Add new ioctls
* [#10845](https://github.com/apache/nuttx/pull/10845) foc: foc_dummy.c: update dummy device state only if dev opened
* [#11176](https://github.com/apache/nuttx/pull/11176) foc: return scaling factor for phase currents and BEMF via ioctl
* [#10808](https://github.com/apache/nuttx/pull/10808) ioexpander: Minor fix for ioexpander driver
* [#11147](https://github.com/apache/nuttx/pull/11147) lcd: add stride support for LCD driver
* [#11185](https://github.com/apache/nuttx/pull/11185) lcd: change lcd stride from pixel to bytes
* [#10926](https://github.com/apache/nuttx/pull/10926) math: mpi: add mpi driver in math
* [#11240](https://github.com/apache/nuttx/pull/11240) misc: Rpmsgblk function optimization
* [#11220](https://github.com/apache/nuttx/pull/11220) mmcsd: mmcsd_sdinitialize should save csd register into priv->csd
* [#10909](https://github.com/apache/nuttx/pull/10909) mtd: filemtd:Fix teardown return error number EINVAL
* [#11041](https://github.com/apache/nuttx/pull/11041) mtd: get mtd_geometry_s.model for mtd partition and optimize code
* [#11187](https://github.com/apache/nuttx/pull/11187) mtd: s25fl1: fix compile warnings caused by incorrect variable print format
* [#11370](https://github.com/apache/nuttx/pull/11370) mtd: w25q: add nxsig_usleep to busy waiting in w25qxxxjv_erase_sector()
* [#11391](https://github.com/apache/nuttx/pull/11391) net: qemu/wifi: Add the virtual wifi function on the emulator.
* [#11216](https://github.com/apache/nuttx/pull/11216) net: skeleton.c doesn't compile without this patch if ioctls are enabled
* [#10907](https://github.com/apache/nuttx/pull/10907) note: Change 0/1 to false/true
* [#11153](https://github.com/apache/nuttx/pull/11153) note: delete sched_note_flatten
* [#10840](https://github.com/apache/nuttx/pull/10840) note: optimize note performance
* [#10920](https://github.com/apache/nuttx/pull/10920) note: remove remaining event code
* [#11074](https://github.com/apache/nuttx/pull/11074) power: pm: use pm_staytimeout() in greedy_governor_activity()
* [#11132](https://github.com/apache/nuttx/pull/11132) rptun: check the status before stop remote proc
* [#11222](https://github.com/apache/nuttx/pull/11222) rtc: RTC driver improvement
* [#10831](https://github.com/apache/nuttx/pull/10831) rtt: make RTT console optional
* [#11296](https://github.com/apache/nuttx/pull/11296) segger: rtt: correct macro name to avoid unable to change default mode
* [#11419](https://github.com/apache/nuttx/pull/11419) sensors: mx56xx: Add support for second order compensation
* [#11426](https://github.com/apache/nuttx/pull/11426) sensors: mx56xx: Fix threshold and calculation
* [#11178](https://github.com/apache/nuttx/pull/11178) serial: uart_tcsendbreak: Remove cancel point, as tcsendbreak is not one
* [#11402](https://github.com/apache/nuttx/pull/11402) syslog: ramlog: improve ramlog performance
* [#11392](https://github.com/apache/nuttx/pull/11392) syslog: ramlog: multi readers
* [#10890](https://github.com/apache/nuttx/pull/10890) syslog: ramlog: remove sched_[un]lock and rl_nwaiters
* [#11186](https://github.com/apache/nuttx/pull/11186) timers: Rewrite adjtime() implementation to work for RTC and tickless kernel
* [#11356](https://github.com/apache/nuttx/pull/11356) usbdev: Add callback for CONFIG_USBDEV_SOFINTERRUPT
* [#11042](https://github.com/apache/nuttx/pull/11042) usbdev: config USBDEV_TRACE_INITIALIDSET when disbale USBDEV_TRACE
* [#11161](https://github.com/apache/nuttx/pull/11161) usbdev: Solve some problems of USB hotplug
* [#10985](https://github.com/apache/nuttx/pull/10985) usrsock: Make the field of usrsock_request native alignment
* [#11103](https://github.com/apache/nuttx/pull/11103) usrsock: rpmsg_server: Keep msg order in recursive call
* [#11107](https://github.com/apache/nuttx/pull/11107) usrsock: socket fallback with ENETDOWN
* [#10874](https://github.com/apache/nuttx/pull/10874) video: fb: Add fb_register_device
* [#10812](https://github.com/apache/nuttx/pull/10812) video: goldfish: Remove the vsync residual code
* [#11380](https://github.com/apache/nuttx/pull/11380) video: goldfish: optimize goldfish fb register
* [#11249](https://github.com/apache/nuttx/pull/11249) video: video.c: modify set_buf call seqence in start_capture function.
* [#11224](https://github.com/apache/nuttx/pull/11224) video: wait when the vsync queue is full in FBIO_WAITFORVSYNC
* [#11382](https://github.com/apache/nuttx/pull/11382) virtio: Support for setting MAC addresses of the virtio-net interfaces
* [#11385](https://github.com/apache/nuttx/pull/11385) virtio: virtio-gpu: convert virito-gpu fb_register to virtio_gpu_fb_register
* [#11201](https://github.com/apache/nuttx/pull/11201) virtio: Virtio Qemu 8.1.2 issues fix
* [#11013](https://github.com/apache/nuttx/pull/11013) wireless: bluetooth: Add option to set the HCI TX thread affinity while running with SMP enabled
* [#11072](https://github.com/apache/nuttx/pull/11072) wireless: bluetooth: rpmsg depends on RPTUN

Board Support

Significant Improvements

New Board Support

Boards With Significant Improvements

File System

Bug Fixes

Significant Improvements

Networking

Applications

Improvements

Bug Fixes

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.