Work In Progress

NuttX 12.1.0 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

New Features

Bug Fixes

Changes to the Build System

Improvements

* [#8177](https://github.com/apache/incubator-nuttx/pull/8177) build: Add STACK_USAGE(-fstack-usage) to assist the stack analysis 
* [#8449](https://github.com/apache/incubator-nuttx/pull/8449) build/Kconfig: add BINDIR/APPSBINDIR to support out of tree build 
* [#8357](https://github.com/apache/incubator-nuttx/pull/8357) tools: add separate flags parameter for COMPILE/COMPILEXX
* [#8391](https://github.com/apache/incubator-nuttx/pull/8391) tools: ARCHIVE uses the full path
* [#8732](https://github.com/apache/incubator-nuttx/pull/8732) tools: arm: Add missing -mcpu param for zig
* [#8403](https://github.com/apache/incubator-nuttx/pull/8403) tools: checkpatch.sh: Check the source code doesn't set executable bit
* [#8379](https://github.com/apache/incubator-nuttx/pull/8379) tools: checkpatch: Added encoding check with cvt2utf 
* [#8379](https://github.com/apache/incubator-nuttx/pull/8379) tools: checkpatch: Added encoding check with cvt2utf 
* [#8347](https://github.com/apache/incubator-nuttx/pull/8347) tools: compile with full file path
* [#8347](https://github.com/apache/incubator-nuttx/pull/8347) tools: compile with full file path
* [#8443](https://github.com/apache/incubator-nuttx/pull/8443) tools: config: silent print of archive objects
* [#8442](https://github.com/apache/incubator-nuttx/pull/8442) tools: config: stack usage(.su) file should be removed on clean phase
* [#8674](https://github.com/apache/incubator-nuttx/pull/8674) tools: cxd56: Fix typo in mkspk tool
* [#8663](https://github.com/apache/incubator-nuttx/pull/8663) tools: Don't download tarball if a local git repo found
* [#7971](https://github.com/apache/incubator-nuttx/pull/7971) tools: Ensure removing Python related commands for macOS
* [#7993](https://github.com/apache/incubator-nuttx/pull/7993) tools: Ensure removing Python3.11 related commands for macOS
* [#8515](https://github.com/apache/incubator-nuttx/pull/8515) tools: Extract a valid trace line and resolve the address to a function name
* [#8310](https://github.com/apache/incubator-nuttx/pull/8310) tools: Extend mkdep buffer 
* [#8916](https://github.com/apache/incubator-nuttx/pull/8916) tools: export: LLVM style arch info for non-c language
* [#8870](https://github.com/apache/incubator-nuttx/pull/8870) tools: export: Add LDELFFLAGS to mkexport.sh.
* [#8425](https://github.com/apache/incubator-nuttx/pull/8425) tools: Fix Config.mk
* [#8494](https://github.com/apache/incubator-nuttx/pull/8494) tools: kconfig: add kconfiglib support
* [#8384](https://github.com/apache/incubator-nuttx/pull/8384) tools: Makefile: fix redundant delimiters when using make V=1 
* [#8378](https://github.com/apache/incubator-nuttx/pull/8378) tools: makefile: silent all compile output
* [#8381](https://github.com/apache/incubator-nuttx/pull/8381) tools: Make zig available for arm/riscv/sim
* [#8601](https://github.com/apache/incubator-nuttx/pull/8601) tools: make the symbol table generated by mkallsyms.py two-byte aligned 
* [#8305](https://github.com/apache/incubator-nuttx/pull/8305) tools: minidumpserver: add arm-a support 
* [#8142](https://github.com/apache/incubator-nuttx/pull/8142) tools: minidumpserver: replace stackdump to stack_dump 
* [#7938](https://github.com/apache/incubator-nuttx/pull/7938) tools: minidumpserver: sync the stackdump search string after #7875 
* [#8723](https://github.com/apache/incubator-nuttx/pull/8723) tools: nxstyle: add 'IRQn_Type' to whitelists
* [#8657](https://github.com/apache/incubator-nuttx/pull/8657) tools: nxstyle: add "NimMain" to whitelists.
* [#8559](https://github.com/apache/incubator-nuttx/pull/8559) tools: nxstyle: add "CMUnitTest" to nxstyle white list
* [#8307](https://github.com/apache/incubator-nuttx/pull/8307) tools: parsememdump.py: support show total pid memory
* [#8652](https://github.com/apache/incubator-nuttx/pull/8652) tools: parsememdump.py: Restore the execution permission bit
* [#8808](https://github.com/apache/incubator-nuttx/pull/8808) tools: parsetrace: fix context swtich parsing error
* [#8928](https://github.com/apache/incubator-nuttx/pull/8928) tools: riscv: Map extensions to certain cpu model for LLVM based toolc…
* [#8030](https://github.com/apache/incubator-nuttx/pull/8030) tools: script: support IPv6 in simhostroute.sh 
* [#8001](https://github.com/apache/incubator-nuttx/pull/8001) tools: script: enable forward in simhostroute.sh 
* [#8007](https://github.com/apache/incubator-nuttx/pull/8007) tools: syscall: export UP_WRAPSYM/UP_REALSYM macro 
* [#8419](https://github.com/apache/incubator-nuttx/pull/8419) tools: use relative paths when reverting to compile
* [#8586](https://github.com/apache/incubator-nuttx/pull/8586) tools: unix: use anonymous pipes to avoid menuconfig break
* [#8675](https://github.com/apache/incubator-nuttx/pull/8675) tools: Unix.mk: Add VERSION_ARG to argument of version.sh
* [#8308](https://github.com/apache/incubator-nuttx/pull/8308) tools: unix.mk: Pass APPDIR to arch's Makefile
* [#8582](https://github.com/apache/incubator-nuttx/pull/8582) tools: Updated python scripts interpreter invocation in tools/.
* [#8306](https://github.com/apache/incubator-nuttx/pull/8306) tools: version: generate dummy version without breakout
* [#8759](https://github.com/apache/incubator-nuttx/pull/8759) treewide: add DOWNLOAD variable as unification of curl call

Architectural Support

New Architecture Support

Driver Support

Bug Fixes

New Driver Support

Drivers With Significant Improvements

Board Support

Significant Improvements

New Board Support

Boards With Significant Improvements

File System

New FS

* [#8109](https://github.com/apache/incubator-nuttx/pull/8109) fs: Add shmfs 


Improvements  
* [#4320](https://github.com/apache/incubator-nuttx/pull/4320) fs: Add model field to geometry and mtd_geometry_s 
* [#8194](https://github.com/apache/incubator-nuttx/pull/8194) fs: Avoid accessing filep fields if it is NULL & add DEBUGASSERTs 
* [#8163](https://github.com/apache/incubator-nuttx/pull/8163) fs: Define DT_xxx to number directly 
* [#8430](https://github.com/apache/incubator-nuttx/pull/8430) fs: Implement link as a normal function instead macro 
* [#8498](https://github.com/apache/incubator-nuttx/pull/8498) fs: Make more fs API available when CONFIG_DISABLE_MOUNTPOINT isn't enabled 
* [#8195](https://github.com/apache/incubator-nuttx/pull/8195) fs: Map madvice to posix_madvice 
* [#8581](https://github.com/apache/incubator-nuttx/pull/8581) fs: Map FD_SETSIZE to OPEN_MAX instead hardcoding 256 
* [#8092](https://github.com/apache/incubator-nuttx/pull/8092) fs: Map syncfs to fsync 
* [#8021](https://github.com/apache/incubator-nuttx/pull/8021) fs: Move mmap callback before truncate in [file|mountpt]_operations 
* [#8113](https://github.com/apache/incubator-nuttx/pull/8113) fs: Support O_NOFOLLOW flag 
* [#8440](https://github.com/apache/incubator-nuttx/pull/8440) fs: support openat/fchmodat/mkfifoat/fstatat/...at api 
* [#8324](https://github.com/apache/incubator-nuttx/pull/8324) fs: unlock tmpfs before free the file object 
* [#8656](https://github.com/apache/incubator-nuttx/pull/8656) fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 
* [#8871](https://github.com/apache/incubator-nuttx/pull/8871) fs: fs_epoll: add oneshot list to handle the EPOLLONESHOT correctly 
* [#7871](https://github.com/apache/incubator-nuttx/pull/7871) fs: fs_epoll: fix some potential issue for list operation 
* [#8153](https://github.com/apache/incubator-nuttx/pull/8153) fs: fs_fsync:Fix the expected error of socket,fifo and pipe returning error in fsync case 
* [#8896](https://github.com/apache/incubator-nuttx/pull/8896) fs: fs_initialize.c:Sync fs in system restart callback 
* [#8496](https://github.com/apache/incubator-nuttx/pull/8496) fs: littlefs: add full support for LittleFS block device cfg in Kconfig 
* [#8026](https://github.com/apache/incubator-nuttx/pull/8026) fs: mmap: Add mm map 
* [#8138](https://github.com/apache/incubator-nuttx/pull/8138) fs: mmap: fix mmap returned address 
* [#8075](https://github.com/apache/incubator-nuttx/pull/8075) fs: mmap: Minor improvement 
* [#8784](https://github.com/apache/incubator-nuttx/pull/8784) fs: mmap: try rammap when filesystem mmap don't support 
* [#8162](https://github.com/apache/incubator-nuttx/pull/8162) fs: mmap: fix compile warning if set the optimize level to O3 
* [#8383](https://github.com/apache/incubator-nuttx/pull/8383) fs: mqueue: Fix file_mq_open() for SMP 
* [#8269](https://github.com/apache/incubator-nuttx/pull/8269) fs: partiton: add sanity check 
* [#8079](https://github.com/apache/incubator-nuttx/pull/8079) fs: poll: add missing FAR qualifier to poll() 
* [#8072](https://github.com/apache/incubator-nuttx/pull/8072) fs: poll: Fix poll_notify for CONFIG_BUILD_KERNEL 
* [#8337](https://github.com/apache/incubator-nuttx/pull/8337) fs: procfs: sort level0 process id 
* [#8270](https://github.com/apache/incubator-nuttx/pull/8270) fs: procfs: fix the issue of /proc/cpuload in SMP 
* [#8545](https://github.com/apache/incubator-nuttx/pull/8545) fs: procfs: group/tg_info/argv: Make utility function to read argv as string 
* [#7922](https://github.com/apache/incubator-nuttx/pull/7922) fs: procfs: procmeminfo: support memdump can show specific task 
* [#8626](https://github.com/apache/incubator-nuttx/pull/8626) fs: procfs/meminfo: skip invalid character before memdump 
* [#8637](https://github.com/apache/incubator-nuttx/pull/8637) fs: rpmsgfs: return ENOTTY to vfs to do cmd operate 
* [#7947](https://github.com/apache/incubator-nuttx/pull/7947) fs: streams: Flush streams in userspace when the process exits 
* [#7991](https://github.com/apache/incubator-nuttx/pull/7991) fs: signalfd: using file descriptor to accept signal 
* [#5999](https://github.com/apache/incubator-nuttx/pull/5999) fs: sync: add sync api 
* [#8053](https://github.com/apache/incubator-nuttx/pull/8053) fs: timerfd: Reverse truncate and mmap field 
* [#7990](https://github.com/apache/incubator-nuttx/pull/7990) fs: timerfd/eventfd: using anonymous inodes and using isr to notify poll waiter. 
* [#8373](https://github.com/apache/incubator-nuttx/pull/8373) fs: vfs: Suppoprt F_DUPFD_CLOEXEC 
* [#8032](https://github.com/apache/incubator-nuttx/pull/8032) fs: vfs: add missed truncate callback at timerfd file_operation 
* [#8729](https://github.com/apache/incubator-nuttx/pull/8729) fs: vfs/poll: Remove the unused ptr field from pollfd 
* [#8089](https://github.com/apache/incubator-nuttx/pull/8089) fs: vfs/poll: Remove POLLFILE and POLLSOCK NuttX specific extension 
* [#8154](https://github.com/apache/incubator-nuttx/pull/8154) fs: vfs/fs_truncate.c:Add socket judgment to return correct errno. 


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.