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

* [#17214](https://github.com/apache/nuttx/pull/17214) lib: Introduce the invariant-divisor fast division
* [#17139](https://github.com/apache/nuttx/pull/17139) libc/crc: Add crc8rohcincr for incremental CRC8 ROHC calculation
* [#16994](https://github.com/apache/nuttx/pull/16994) libc/fclose: Validate the user provided stream pointer
* [#17129](https://github.com/apache/nuttx/pull/17129) libc/pthread/pthread_keydelete.c: reset key value
* [#17380](https://github.com/apache/nuttx/pull/17380) libc/unistd: Replace pipe() macro with proper function implementation
* [#17289](https://github.com/apache/nuttx/pull/17289) libs/libc: Fix Kconfig issue for ARMv8-R assembly implementations of memcpy and memset
* [#17400](https://github.com/apache/nuttx/pull/17400) libs/libc/arm: add back __aeabi_mem* function

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

* [#17298](https://github.com/apache/nuttx/pull/17298) boards/arm/stm32h7: add Arduino Portenta H7

Boards With Improvements

* [#17281](https://github.com/apache/nuttx/pull/17281) boards/arm: remove custom MCUBoot version from defconfigs
* [#16991](https://github.com/apache/nuttx/pull/16991) boards/a2g-tc397-5v-tft: Enable events by default in the a2g-tc397-5v-tft defconfig
* [#16989](https://github.com/apache/nuttx/pull/16989) boards/arm/imxrt: CMake added teensy-4.x board
* [#17314](https://github.com/apache/nuttx/pull/17314) boards/arm/kinetis: CMake added NXP Freedom-K28F and Freedom-K66F boards
* [#17328](https://github.com/apache/nuttx/pull/17328) boards/arm/kinetis: CMake added NXP TWR-K60N512 and TWR-K64F120M boards
* [#17329](https://github.com/apache/nuttx/pull/17329) boards/arm/kinetis: CMake added NXP KWIKSTIK-K40 and PJRC Teensy 3.x boards
* [#17297](https://github.com/apache/nuttx/pull/17297) boards/arm/qemu/qemu-armv7a: add demo for gdbstub
* [#17224](https://github.com/apache/nuttx/pull/17224) boards/arm/rp2040: allow flash write operation on rp2040 in SMP mode
* [#17033](https://github.com/apache/nuttx/pull/17033) boards/arm/rp2040: implement "board_boot_image" for bootloader support
* [#17112](https://github.com/apache/nuttx/pull/17112) boards/arm/rp2040: CMake added Adafruit boards
* [#17142](https://github.com/apache/nuttx/pull/17142) boards/arm/rp2040: CMake added Raspberry Pi Pico W board
* [#17114](https://github.com/apache/nuttx/pull/17114) boards/arm/rp2040: CMake added Seeed, WIZnet and Waveshare boards
* [#17138](https://github.com/apache/nuttx/pull/17138) boards/arm/rp2040: CMake added Waveshare RP2040-LCD-1.28 board and Improvements in rp2040_boot_stage2.cmake
* [#17099](https://github.com/apache/nuttx/pull/17099) boards/arm/rp2040: CMake added pimoroni-tiny2040 board and Improvements in rp2040_boot_stage2.cmake
* [#17160](https://github.com/apache/nuttx/pull/17160) boards/arm/rp23xx: CMake added Pimoroni Pico Plus 2 board
* [#17154](https://github.com/apache/nuttx/pull/17154) boards/arm/rp23xx: CMake added Seeed Studio XIAO RP2350 board
* [#17168](https://github.com/apache/nuttx/pull/17168) boards/arm/rp23xx/pimoroni-pico-2-plus: added ‘rp23xx_spisd.h’ in board.h
* [#17163](https://github.com/apache/nuttx/pull/17163) boards/arm/rp23xx/pimoroni-pico-2-plus: Corrected all defconfig files
* [#17155](https://github.com/apache/nuttx/pull/17155) boards/arm/rp23xx/pimoroni-pico-2-plus: fix 'BOARD_HSTX_FREQ' undeclared 
* [#17164](https://github.com/apache/nuttx/pull/17164) boards/arm/rp23xx/pimoroni-pico-2-plus: fix linker scripts 100% RAM usage
* [#17167](https://github.com/apache/nuttx/pull/17167) boards/arm/rp23xx/pimoroni-pico-2-plus: fix implicit declaration of function 'board_spisd_initialize'
* [#17169](https://github.com/apache/nuttx/pull/17169) boards/arm/rp23xx/xiao-rp2350: fix linker scripts 100% RAM usage
* [#17022](https://github.com/apache/nuttx/pull/17022) boards/arm/samv7/samv71-xult: Add support for the OA-TC6 10BASE-T1x M…
* [#17038](https://github.com/apache/nuttx/pull/17038) boards/arm/samv7/samv71-xult/configs/oa_tc6: Add plcatool support
* [#17421](https://github.com/apache/nuttx/pull/17421) boards/arm/stm32l4/nucleo-l476rg: CMake fix addition of HTS221 and LSM6DSL sensors
* [#17391](https://github.com/apache/nuttx/pull/17391) boards/arm/stm32f4/stm32f429i-disco: Add NX boot logo splash screen
* [#17320](https://github.com/apache/nuttx/pull/17320) boards/nucleo-h743zi: register TMPFS
* [#17035](https://github.com/apache/nuttx/pull/17035) boards/risc-v: add support for init script on ESP32-C3|C6|H2
* [#17334](https://github.com/apache/nuttx/pull/17334) boards/risc-v/esp32c3: remove CXX initialization from BLE defconfig
* [#17021](https://github.com/apache/nuttx/pull/17021) boards/risc-v/esp32c6: Add support for the OA-TC6 10BASE-T1x MAC-PHYs
* [#17059](https://github.com/apache/nuttx/pull/17059) boards/risc-v/esp32[c3|h2]/<board>: Unset `-Werror` flag by default
* [#17064](https://github.com/apache/nuttx/pull/17064) boards/risc-v/esp32[c3|c6|h2]: Fix GPIO function used by the button
* [#17285](https://github.com/apache/nuttx/pull/17285) boards/risc-v/esp32s3_lan9250.c: fix some unused variable build warning
* [#17015](https://github.com/apache/nuttx/pull/17015) boards/weact-stm32h750
* [#17319](https://github.com/apache/nuttx/pull/17319) boards/x86_64/intel64/qemu-intel64: register TMPFS
* [#17131](https://github.com/apache/nuttx/pull/17131) boards/x86_64/qemu-intel64: increase stack size for ostest
* [#17001](https://github.com/apache/nuttx/pull/17001) boards/xtensa: fix the issue of undefined symbol reference errors
* [#17227](https://github.com/apache/nuttx/pull/17227) boards/xtensa: optimize linker script IRAM section 
* [#17401](https://github.com/apache/nuttx/pull/17401) boards/xtensa/esp32s3: Fix esp32s3-devkitc:knsh
* [#17262](https://github.com/apache/nuttx/pull/17262) boards/xtensa/esp32s3: Increase LCD PWM frequency to reduce LCD flicker
* [#17148](https://github.com/apache/nuttx/pull/17148) boards/xtensa/esp32s3: Refactor ES8311 initialization to use I2C handle
* [#17050](https://github.com/apache/nuttx/pull/17050) boards/xtensa/esp32s3-lckfb-szpi: Remove obsolete device function prototypes

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.