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

Changes to Core OS

Sched

* [#9084](https://github.com/apache/nuttx/pull/9084) sched: add adjtime() interface  
* [#9132](https://github.com/apache/nuttx/pull/9132) sched: add the CPU bitset to initialize the non-exclusive CPU  
* [#9583](https://github.com/apache/nuttx/pull/9583) sched: automatically find deadlocks when assert  
* [#7464](https://github.com/apache/nuttx/pull/7464) sched: fix context switching with locked scheduler  
* [#8867](https://github.com/apache/nuttx/pull/8867) sched: Optimize implementation of strsignal()  
* [#9030](https://github.com/apache/nuttx/pull/9030) sched/addrenv, binfmt: Always allocate address environment from heap  
* [#9090](https://github.com/apache/nuttx/pull/9090) sched/addrenv: Implement re-entrancy for addrenv_select()  
* [#9021](https://github.com/apache/nuttx/pull/9021) sched/addrenv: Miscellaneous clean-up and fixes  
* [#9595](https://github.com/apache/nuttx/pull/9595) sched/assert: Change show_xxx to dump_xxx  
* [#8955](https://github.com/apache/nuttx/pull/8955) sched/assert: Simplify the fatal detection logic  
* [#9528](https://github.com/apache/nuttx/pull/9528) sched/group: Ensure that the setting of tg_members if safe in SMP  
* [#9003](https://github.com/apache/nuttx/pull/9003) sched/irq: optimizing IRQMONITOR, move up_perf_convert to irq_procfs  
* [#9369](https://github.com/apache/nuttx/pull/9369) sched/misc: add coredump support on assert  
* [#9002](https://github.com/apache/nuttx/pull/9002) sched/pthread: repalce sched_lock to enter_critical_section  
* [#9539](https://github.com/apache/nuttx/pull/9539) sched/pthread: Return ESRCH when the task is in the process of exit.  
* [#9202](https://github.com/apache/nuttx/pull/9202) sched/pthread: sched_lock should replace with enter_critical_secion  
* [#9091](https://github.com/apache/nuttx/pull/9091) sched/sem/sem_init: Change sem_xxx -> nxsem_xxx in kernel modules  
* [#8951](https://github.com/apache/nuttx/pull/8951) sched/semaphore: rework semaphore holder check for priority inheritance  
* [#9039](https://github.com/apache/nuttx/pull/9039) sched/sched: address performance concerns for sched_lock in non-SMP case  
* [#8988](https://github.com/apache/nuttx/pull/8988) sched/sched_note: add function auto-tracing  
* [#8786](https://github.com/apache/nuttx/pull/8786) sched/sig_timewait:changes the macro for waitticks  
* [#9203](https://github.com/apache/nuttx/pull/9203) sched/signal: fix the issue of asynchronous signal processing  
* [#9100](https://github.com/apache/nuttx/pull/9100) sched/spawn: remove spawn proxy thread to simplify task/posix_spawn()  
* [#9527](https://github.com/apache/nuttx/pull/9527) sched/tls: remove PTHREAD_CLEANUP from Kconfig  
* [#9007](https://github.com/apache/nuttx/pull/9007) sched/wqueue: fix issue about worker can't wake up thread before work_thread running  

mm

* [#9417](https://github.com/apache/nuttx/pull/9417) mm: add invalid pid dump when malloc failed  
* [#9561](https://github.com/apache/nuttx/pull/9561) mm: compute the heap info more accuracy  
* [#9564](https://github.com/apache/nuttx/pull/9564) mm: Compute the heap info more accuracy(2)  
* [#9411](https://github.com/apache/nuttx/pull/9411) mm: Correct the callsite of mm_mallinfo  
* [#9435](https://github.com/apache/nuttx/pull/9435) mm: Dump all memory blocks on allocation failure  
* [#9555](https://github.com/apache/nuttx/pull/9555) mm: mm leak dump build error fix and memory foreach optimization  
* [#9601](https://github.com/apache/nuttx/pull/9601) mm: mm_lock.c: reformat preprocessor  
* [#9151](https://github.com/apache/nuttx/pull/9151) mm: memory allocations return valid pointer when request 0 size  
* [#9563](https://github.com/apache/nuttx/pull/9563) mm: Rename PID_MM_INVALID to PID_MM_LEAK  
* [#9560](https://github.com/apache/nuttx/pull/9560) mm: Rename mm_memdump_s to malltask  
* [#9335](https://github.com/apache/nuttx/pull/9335) mm: Support memdump can show increased memory  
* [#9476](https://github.com/apache/nuttx/pull/9476) mm/kmm_map: add missing FAR qualifiers  
* [#9368](https://github.com/apache/nuttx/pull/9368) mm/kmm_map: add support to dynamically map pages into kernel virtual 
* [#9055](https://github.com/apache/nuttx/pull/9055) mm/mm_map: give the mm_map as parameter to the mm_map functions  
* [#9488](https://github.com/apache/nuttx/pull/9488) mm/mempool: allocate a chunk for multiple mempool avoid memory fragmentation  
* [#9051](https://github.com/apache/nuttx/pull/9051) mm/mempool: fix bug, use incorrect free in mempool init  
* [#9418](https://github.com/apache/nuttx/pull/9418) mm/mempool: fix bug read out of bounds when realloc  
* [#9337](https://github.com/apache/nuttx/pull/9337) mm/mempool: fix bug when calculating mempool delta  
* [#9052](https://github.com/apache/nuttx/pull/9052) mm/mempool: fix memory consumption double counting issue  
* [#9433](https://github.com/apache/nuttx/pull/9433) mm/mempool: fix seqnumber statistics error in memdump  
* [#9474](https://github.com/apache/nuttx/pull/9474) mm/mempool: remove nexpend and totalsize from mempool_s  
* [#9336](https://github.com/apache/nuttx/pull/9336) mm/mempool: support when malloc failed dump mempool info  
* [#9416](https://github.com/apache/nuttx/pull/9416) mm/mempool: Support when malloc failed dump mempool info  

libs

* [#9284](https://github.com/apache/nuttx/pull/9284) libc: add regex implementation 
* [#9148](https://github.com/apache/nuttx/pull/9148) libc: Add setbuffer to stdio. 
* [#9062](https://github.com/apache/nuttx/pull/9062) libc: cleanup per-thread resource in exit/quick_exit 
* [#8958](https://github.com/apache/nuttx/pull/8958) libc: correct config define of arch functions 
* [#9480](https://github.com/apache/nuttx/pull/9480) libc: fix build break on kernel mode 
* [#9181](https://github.com/apache/nuttx/pull/9181) libc: fixed armv7-m strcmp build issue 
* [#9580](https://github.com/apache/nuttx/pull/9580) libc: lib_strftime: Fix %I to avoid printing 00:xx AM/PM 
* [#9557](https://github.com/apache/nuttx/pull/9557) libc: lib_syslograwstream: fix bug when iob alloc failed 
* [#9106](https://github.com/apache/nuttx/pull/9106) libc: memcpy M-profile PACBTI-enablement 
* [#9543](https://github.com/apache/nuttx/pull/9543) libc: netdev/upper: Optimize on quota related operations 
* [#8946](https://github.com/apache/nuttx/pull/8946) libc: print error code for unknown errors in strerror/gai_strerror 
* [#9585](https://github.com/apache/nuttx/pull/9585) libc: Support gcc FORTIFY_SOURCE features 
* [#9513](https://github.com/apache/nuttx/pull/9513) libc: Prefer to implement memfd on top of shm 
* [#9193](https://github.com/apache/nuttx/pull/9193) libc/armv8-m: fix build break if MVE is disabled 
* [#9497](https://github.com/apache/nuttx/pull/9497) libc/fdcheck: add fdcheck module 
* [#9547](https://github.com/apache/nuttx/pull/9547) libc/fdcheck: Fix undefined reference to `getppid' 
* [#9405](https://github.com/apache/nuttx/pull/9405) libc/fdsan: add fdsan protection for all file pointers 
* [#9496](https://github.com/apache/nuttx/pull/9496) libc/fdsan: keep f_tag unchanged 
* [#9384](https://github.com/apache/nuttx/pull/9384) libc/libc.csv: Correct type of return value for strstr 
* [#8802](https://github.com/apache/nuttx/pull/8802) libc/locale: support iconv_open,iconv,iconv_close 
* [#9260](https://github.com/apache/nuttx/pull/9260) libc/misc: add Fdsan module 
* [#9076](https://github.com/apache/nuttx/pull/9076) libc/mm: fix files can not be compiled incrementally 
* [#9534](https://github.com/apache/nuttx/pull/9534) libc/netdb/dns: fix dns wrong response ID error 
* [#9238](https://github.com/apache/nuttx/pull/9238) libc/pthread: fix nxstyle errors 
* [#9199](https://github.com/apache/nuttx/pull/9199) libc/pthread: fixed pthread incorrect return values 
* [#9207](https://github.com/apache/nuttx/pull/9207) libc/qsort: fix invalid-pointer-pair if enable detect_invalid_pointer_pairs=2 
* [#9456](https://github.com/apache/nuttx/pull/9456) libc/regex: provide a separate kconfig for regex 
* [#9138](https://github.com/apache/nuttx/pull/9138) libc/string: select arch's libc for kernel/userspace optionally 
* [#9605](https://github.com/apache/nuttx/pull/9605) libc/unistd: add getpgrp function 
* [#9448](https://github.com/apache/nuttx/pull/9448) libc/wchar: Implement vswprintf 
* [#9061](https://github.com/apache/nuttx/pull/9061) libm/newlib: add newlib/libm support 
* [#9083](https://github.com/apache/nuttx/pull/9083) libm/openlibm: add math library openlibm support. 
* [#9125](https://github.com/apache/nuttx/pull/9125) libm/libmcs: add math library libmcs support 
* [#9044](https://github.com/apache/nuttx/pull/9044) libxx: remove redundant code #9158 libelf: Support prioritized init and fini arrays

Misc

* [#9610](https://github.com/apache/nuttx/pull/9610) binfmt: Always include arch/elf.h in include/nuttx/elf.h  
* [#9395](https://github.com/apache/nuttx/pull/9395) binfmt/elf: Support loading fully linked executables.  
* [#9426](https://github.com/apache/nuttx/pull/9426) binfmt/elf/coredump: alignment stack buffer to 64 to match gdb request  
* [#9376](https://github.com/apache/nuttx/pull/9376) binfmt/elf/coredump: add sanity checks for stack pointer  
* [#9366](https://github.com/apache/nuttx/pull/9366) binfmt/elf/coredump: add support of dump task stack without memory segments  
* [#9318](https://github.com/apache/nuttx/pull/9318) binfmt/elf/coredump: correct register offset after xcp.regs update  
* [#9099](https://github.com/apache/nuttx/pull/9099) binfmt/execmodule: correct destroy flow  
* [#9568](https://github.com/apache/nuttx/pull/9568) Debug:support python script auto debug nuttx kernel  
* [#9600](https://github.com/apache/nuttx/pull/9600) Fix assertion of free a wrong heap  
* [#9307](https://github.com/apache/nuttx/pull/9307) Fix windows compile errors because of double quotes in config   
* [#9147](https://github.com/apache/nuttx/pull/9147) include/err: Enforce c linkage for err and warn functions.  
* [#9459](https://github.com/apache/nuttx/pull/9459) include/nuttx/spi.h Fix SPIDEVID_TYPE macro definition  
* [#9274](https://github.com/apache/nuttx/pull/9274) modify type of numbytes in audio_buf_desc_s from uint16_t to apb_samp_t  
* [#9348](https://github.com/apache/nuttx/pull/9348) openamp: decoupling the transport layer and virtio device layer  
* [#9553](https://github.com/apache/nuttx/pull/9553) Openamp/Kconfig: add cache and debug config for openamp   
* [#9149](https://github.com/apache/nuttx/pull/9149) Remove #warning in the unnecessary places  
* [#9594](https://github.com/apache/nuttx/pull/9594) Replace $(INCDIR) and ${DEFINE} with $(INCDIR_PREFIX) and $(DEFINE_PREFIX)  
* [#8726](https://github.com/apache/nuttx/pull/8726) Replace the unsafe function(strcat, sprintf) with the safe one(strlcat, snprintf)  
* [#9201](https://github.com/apache/nuttx/pull/9201) system/signal: in interrupting the context, regs modify logic error  
* [#9142](https://github.com/apache/nuttx/pull/9142) signal: add macro NSIG 

Changes to the Build System

Improvements

* [#9400](https://github.com/apache/nuttx/pull/9400) tools: Add way to get current defconfig name on runtime  
* [#9572](https://github.com/apache/nuttx/pull/9572) tools: Fix CONFIG_BASE_DEFCONFIG generation  
* [#9107](https://github.com/apache/nuttx/pull/9107) tools: Fix some error in Windows native build  
* [#9462](https://github.com/apache/nuttx/pull/9462) tools: Support string upper/lower case in make 
* [#9334](https://github.com/apache/nuttx/pull/9334) tools/mkallsyms: add exception handle 
* [#9069](https://github.com/apache/nuttx/pull/9069) tools/mksymtab: Fix a compilation warning 
* [#9210](https://github.com/apache/nuttx/pull/9210) tools/nuttx-gdbinit/armv7-a: reorder and synchronization registers of save/restore  
* [#9198](https://github.com/apache/nuttx/pull/9198) tools/nuttx-gdbinit: improve experience of gdb backend scripts  
* [#9234](https://github.com/apache/nuttx/pull/9234) tools/nuttx-gdbinit/armv7-a: add fpu support  
* [#9211](https://github.com/apache/nuttx/pull/9211) tools/Unix: treat kconfig warning as failure 
* [#9231](https://github.com/apache/nuttx/pull/9231) tools/refresh.sh: Add option to refresh all archs or all chips 


Architectural Support

New Architecture Support


* [#9465](https://github.com/apache/nuttx/pull/9465) initial FPU support for ARMv8R AARCH32 
* [#9443](https://github.com/apache/nuttx/pull/9443) Support for ARMv8R AARCH32

Improvements

Driver Support

New Drivers

* [#9189](https://github.com/apache/nuttx/pull/9189) drivers/audio: add support for the ES8311 codec  
* [#8775](https://github.com/apache/nuttx/pull/8775) drivers/audio: add audio_dma device driver.  
* [#9372](https://github.com/apache/nuttx/pull/9372) drivers/lcd: add JD9851 driver  
* [#8982](https://github.com/apache/nuttx/pull/8982) drivers/sensors: add support of InvenSense MPU-9250 sensor  
* [#9452](https://github.com/apache/nuttx/pull/9452) drivers/sensors: add BMI270 IMU support  
* [#9453](https://github.com/apache/nuttx/pull/9453) drivers/sensors: add bh1749nuc color sensor support  
* [#9258](https://github.com/apache/nuttx/pull/9258) drivers/virtio: add virtio-mmio-blk driver 

Audio Support

* [#9381](https://github.com/apache/nuttx/pull/9381) audio: add channels range  
* [#9152](https://github.com/apache/nuttx/pull/9152) audio/pcm_decode: fix warnings regarding unused functions and vars  

Board Support

New Board Support

* [#9322](https://github.com/apache/nuttx/pull/9322)boards/nrf52: add initial support for Thingy:52 board  
* [#9323](https://github.com/apache/nuttx/pull/9323)boards/nrf53: add initial support for Thingy:53 board  

Improvements

File System

Improvements 

* [#8939](https://github.com/apache/nuttx/pull/8939) fs: Flush the file system cache in BOARDIOC_POWEROFF too 
* [#9521](https://github.com/apache/nuttx/pull/9521) fs: move memset to upper lever for statfs and add f_fsid field  
* [#9060](https://github.com/apache/nuttx/pull/9060) fs/cromfs: Fix faulty DEBUGASSERT() check  
* [#9000](https://github.com/apache/nuttx/pull/9000) fs/hostfs: align operation flags define with fcntl.h  
* [#8868](https://github.com/apache/nuttx/pull/8868) fs/hostfs: switch working directory  
* [#9093](https://github.com/apache/nuttx/pull/9093) fs/inode: when searching for nextname skip "/" and "./"  
* [#9037](https://github.com/apache/nuttx/pull/9037) fs/littlefs: littlefs shouldn't be used without C99 BOOL 
* [#9120](https://github.com/apache/nuttx/pull/9120) fs/littlefs: Add patch for littlefs to use kmm_malloc/free on kernel with MMU. Upgrade to latest littlefs  
* [#9140](https://github.com/apache/nuttx/pull/9140) fs/mtd: add support for MTDIOC_ERASESECTORS ioctl  
* [#9146](https://github.com/apache/nuttx/pull/9146) fs/mtd: Implement MTDIOC_ERASESTATE and MTDIOC_ERASESECTORS  
* [#9144](https://github.com/apache/nuttx/pull/9144) fs/mtd: minor fix for mtd/nand driver  
* [#9145](https://github.com/apache/nuttx/pull/9145) fs/mtd/nand: Add nand_raw_initialize to skip the probing  
* [#9347](https://github.com/apache/nuttx/pull/9347) fs/partition: register partition device if caller doesn't provide handler  
* [#9394](https://github.com/apache/nuttx/pull/9394) fs/procfs: add cpuinfo  
* [#9073](https://github.com/apache/nuttx/pull/9073) fs/procfs: fix readdir loss last character  
* [#9550](https://github.com/apache/nuttx/pull/9550) fs/fdcheck: Let FDCHECK depend on SCHED_HAVE_PARENT  
* [#9385](https://github.com/apache/nuttx/pull/9385) fs/vfs/fs_poll: Fix wrong return value in CONFIG_BUILD_KERNEL  
* [#9540](https://github.com/apache/nuttx/pull/9540) fs/vfs: Proper use of sigisemptyset  
* [#9205](https://github.com/apache/nuttx/pull/9205) fs/vfs: Zero file struct field with memset


Networking

Improvements

Security Issues Fixed In This Release

Compatibility Concerns

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.