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

* [#17056](https://github.com/apache/nuttx/pull/17056) sched: add stack overflow check on switch context
* [#17121](https://github.com/apache/nuttx/pull/17121) sched: Improve nxsched stack overflow checking implementation
* [#17075](https://github.com/apache/nuttx/pull/17075) sched: merge nxsched_switch_context and add nxsched_switch_critmon
* [#16933](https://github.com/apache/nuttx/pull/16933) sched: remove csection in event
* [#17266](https://github.com/apache/nuttx/pull/17266) sched: replace spinlock/sched_lock with spin_lock_irqsave_nopreempt
* [#17060](https://github.com/apache/nuttx/pull/17060) sched: use nxsched_switch_context to unify the calls to nxsched_suspend_scheduler and nxsched_resume_scheduler
* [#17326](https://github.com/apache/nuttx/pull/17326) sched/clock: Only allow clock_systime_ticks() to access g_system_ticks
* [#17104](https://github.com/apache/nuttx/pull/17104) sched/clock: remove return value of clock_systime_timespec()
* [#17176](https://github.com/apache/nuttx/pull/17176) sched/clock: remove unused function clock_dow() (dow:day of week)
* [#16920](https://github.com/apache/nuttx/pull/16920) sched/event: add nxevent_clear api
* [#16993](https://github.com/apache/nuttx/pull/16993) sched/event: add nxevent_getmask api
* [#16990](https://github.com/apache/nuttx/pull/16990) sched/event: fix event bug after csection was removed by PR 16933
* [#17272](https://github.com/apache/nuttx/pull/17272) sched/event: Fix uninitialized need_switch flag issue in event_post()
* [#16942](https://github.com/apache/nuttx/pull/16942) sched/event: move the temporary even_wait variable out of nxevent_tickwait
* [#16919](https://github.com/apache/nuttx/pull/16919) sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
* [#17110](https://github.com/apache/nuttx/pull/17110) sched/irq: add a check for the interrupt stack in irq_dispatch
* [#17190](https://github.com/apache/nuttx/pull/17190) sched/irq: fixed some issues with irq stack overflow detection
* [#16944](https://github.com/apache/nuttx/pull/16944) sched/semaphore: add support to customize semaphore max allowed value
* [#17222](https://github.com/apache/nuttx/pull/17222) sched/sched: add nxsched_wakeup(), introduce TSTATE_SLEEPING and  improve nxsched_ticksleep()
* [#17324](https://github.com/apache/nuttx/pull/17324) sched/sched: Fix nxsched_suspend() logic
* [#17199](https://github.com/apache/nuttx/pull/17199) sched/sched: Replace nxsched_alarm_tick_expiration() with nxsched_tick_expiration()
* [#17359](https://github.com/apache/nuttx/pull/17359) sched/signal: Fix nxsig_ismember() return value behavior
* [#17367](https://github.com/apache/nuttx/pull/17367) sched/signal: Fix nxsig clockwait() implementation issue
* [#17366](https://github.com/apache/nuttx/pull/17366) sched/signal: Initialize signal action pool during init phase
* [#17252](https://github.com/apache/nuttx/pull/17252) sched/signal: Improve nxsig_wait_irq() for performance enhancement and code duplication reduction
* [#17196](https://github.com/apache/nuttx/pull/17196) sched/signal: Remove shadow definitions to reduce unnecessary API
* [#17212](https://github.com/apache/nuttx/pull/17212) sched/signal: use list_waitingforsignal() to access g_waitingforsignal
* [#16939](https://github.com/apache/nuttx/pull/16939) sched/signal/sig_dispatch.c: Correct signal dispatch to specific thread
* [#17263](https://github.com/apache/nuttx/pull/17263) sched/signal/sig_dispatch.c: Remove DEBUGASSERT(!sched_idletask())
* [#17130](https://github.com/apache/nuttx/pull/17130) sched/sig_pending: sigpending() should return caller pending signals only
* [#17368](https://github.com/apache/nuttx/pull/17368) sched/sleep: Add nxsched_nanosleep() API
* [#17200](https://github.com/apache/nuttx/pull/17200) sched/sleep: add support for scheduling sleep
* [#17204](https://github.com/apache/nuttx/pull/17204) sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
* [#17106](https://github.com/apache/nuttx/pull/17106) sched/task: move lock to mhead scope
* [#17293](https://github.com/apache/nuttx/pull/17293) sched/wdog: Fix wd_start() boundary check for WDOG_MAX_DELAY
* [#17279](https://github.com/apache/nuttx/pull/17279) sched/wdog: Improve wdog precision
* [#17295](https://github.com/apache/nuttx/pull/17295) sched/wdog: Introduce wd_restart()/wd_restart_next() for convenient watchdog restart
* [#17159](https://github.com/apache/nuttx/pull/17159) sched/wdog: remove unnecessary list_node redefinition
* [#17286](https://github.com/apache/nuttx/pull/17286) sched/wdog: Use list_in_list() to detect active watchdogs
* [#17300](https://github.com/apache/nuttx/pull/17300) sched_lock: remove the check for whether tcb is NULL

MM

libc

tools

* [#16969](https://github.com/apache/nuttx/pull/16969) Revert "codespellrc: add ans to ignore words"
* [#16945](https://github.com/apache/nuttx/pull/16945) tools/checkpatch.sh: check format for all commits in patch
* [#16968](https://github.com/apache/nuttx/pull/16968) tools/checkpatch.sh: fix check for HEAD commit
* [#17335](https://github.com/apache/nuttx/pull/17335) tools/checkpatch.sh: Improved error display on GitHub
* [#16974](https://github.com/apache/nuttx/pull/16974) tools/configure.sh: align tools/configure.sh with CmakeLists.tx

various

Build System

Cmake

* [#17020](https://github.com/apache/nuttx/pull/17020) cmake: add cmake disassembly support for GHS compiler
* [#17198](https://github.com/apache/nuttx/pull/17198) cmake: correct nuttx_wildcard_sources cmake usage
* [#17346](https://github.com/apache/nuttx/pull/17346) CMake: Enable both sub-Kconfig and generated menu Kconfig
* [#17350](https://github.com/apache/nuttx/pull/17350) CMake: Enable Kconfig generation for external directories
* [#17027](https://github.com/apache/nuttx/pull/17027) cmake: improve board specific Toolchain.cmake
* [#17412](https://github.com/apache/nuttx/pull/17412) cmake: Improve nuttx_generate_kconfig()
* [#17072](https://github.com/apache/nuttx/pull/17072) CMake: Move global compiler flags setting before add_executable()
* [#17105](https://github.com/apache/nuttx/pull/17105) cmake: pass exclusion list to nuttx_add_subdirectory
* [#17028](https://github.com/apache/nuttx/pull/17028) cmake: Provide better .hex and .srec gen for tasking compiler
* [#17061](https://github.com/apache/nuttx/pull/17061) Cmake: Provide linker script preprocess for tasking compiler
* [#17209](https://github.com/apache/nuttx/pull/17209) cmake: Remove redundant logic in CMake scripts
* [#17210](https://github.com/apache/nuttx/pull/17210) cmake: Remove unused BUILD_OOTCPP guard from configuration.

Architectural Support

New Architecture Support

Driver Support

New Drivers

* [#17331](https://github.com/apache/nuttx/pull/17331) driver: AT25EE multi-device support
* [#17182](https://github.com/apache/nuttx/pull/17182) drivers/1Wire: DS2XXX driver for various Maxim/Analog devices memories
* [#16936](https://github.com/apache/nuttx/pull/16936) drivers/net: Add network driver for 10BASE-T1x SPI MAC-PHYs
* [#17363](https://github.com/apache/nuttx/pull/17363) drivers/sensors: Add QST QMI8658 6-axis IMU sensor driver

Drivers With Improvements

* [#17278](https://github.com/apache/nuttx/pull/17278) drivers/can: Fix buffer overrun and read failures
* [#17360](https://github.com/apache/nuttx/pull/17360) drivers/can: message alignment for read and write operations
* [#17136](https://github.com/apache/nuttx/pull/17136) drivers/can/ctucanfd_pci.c: refactor to use netdev_uperhalf
* [#17135](https://github.com/apache/nuttx/pull/17135) drivers/can/kvaser_pci.c: refactor to use netdev_upperhalf
* [#17344](https://github.com/apache/nuttx/pull/17344) drivers/eeprom: Set the bus frequency
* [#17175](https://github.com/apache/nuttx/pull/17175) drivers/mtd/CMakeLists.txt: Aligned Cmake with Make
* [#17388](https://github.com/apache/nuttx/pull/17388) drivers/mtd/w25: support custom SPI transfers delay
* [#16999](https://github.com/apache/nuttx/pull/16999) drivers/net/mdio: add mdio bus
* [#17378](https://github.com/apache/nuttx/pull/17378) drivers/pci: qemu_edu: fix arm32 build warning
* [#17341](https://github.com/apache/nuttx/pull/17341) drivers/sensors: Fix Kconfig
* [#17392](https://github.com/apache/nuttx/pull/17392) drivers/sensors: improvements for Kconfig
* [#17076](https://github.com/apache/nuttx/pull/17076) drivers/sensors/ms56xx: Replace custom curtime with standard function
* [#17267](https://github.com/apache/nuttx/pull/17267) drivers/syslog: Add early_syslog() for early boot or system down debugging
* [#16982](https://github.com/apache/nuttx/pull/16982) drivers/syslog: let syslog_write() return the maximum bytes writen through a channel
* [#17316](https://github.com/apache/nuttx/pull/17316) drivers/timers: Introduce clockcount, the time conversion API. [ClockDevice Part II] 
* [#17345](https://github.com/apache/nuttx/pull/17345) drivers/timers: Re-implemented timer drivers with the count-based oneshot API [ClockDevice Part V]
* [#17221](https://github.com/apache/nuttx/pull/17221) drivers/timers/arch_alarm: Revert removal of ndelay_accurate
* [#17178](https://github.com/apache/nuttx/pull/17178) drivers/usbdev: Aligned Cmake with Make
* [#17180](https://github.com/apache/nuttx/pull/17180) drivers/usbhost: Aligned Cmake with Make
* [#17247](https://github.com/apache/nuttx/pull/17247) drivers/usbhost_hub: Add support to Multiple TT HS HUB
* [#17181](https://github.com/apache/nuttx/pull/17181) drivers/usbmisc: Aligned Cmake with Make
* [#17174](https://github.com/apache/nuttx/pull/17174) drivers/wireless/ieee80211/bcm43xxx/CMakeLists.txt: Aligned Cmake with Make
* [#17177](https://github.com/apache/nuttx/pull/17177) drivers/wireless/bluetooth: Aligned Cmake with Make

Board Support

New Boards

Boards With Improvements

File System

* [#17128](https://github.com/apache/nuttx/pull/17128) fs/mmap/fs_mmap.c: add missing NULL pointer
* [#17126](https://github.com/apache/nuttx/pull/17126) fs/mmap/fs_mmap.c: fix errno when fd is not valid
* [#17125](https://github.com/apache/nuttx/pull/17125) fs/mmap/fs_mmap.c: MAP_PRIVATE or MAP_SHARED must be specified
* [#17127](https://github.com/apache/nuttx/pull/17127) fs/mmap/fs_msync.c: don't flush changes if MAP_PRIVATE
* [#17124](https://github.com/apache/nuttx/pull/17124) fs/mmap/fs_munmap.c: return error if len is 0
* [#17233](https://github.com/apache/nuttx/pull/17233) fs/fat: Ignore //... sequences in the file path
* [#17348](https://github.com/apache/nuttx/pull/17348) fs/fat: Ignore multiple consecutive slashes in long file names
* [#17264](https://github.com/apache/nuttx/pull/17264) vfs/fs_stat: set st_size on EEPROM character drivers

Networking

Security Issues Fixed In This Release

Compatibility Concerns

* [#17244](https://github.com/apache/nuttx/pull/17244) [!] sched/event: removed event_tickwait_wait() and added TSTATE_WAIT_EVENT

* [#17339](https://github.com/apache/nuttx/pull/17339) ! driver/timers: Remove oneshot callback, args and tick-based API. [ClockDevice Part III]


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.