DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Work In Progress
Work In Progress
What's New In This Release
Major Changes to Core OS
Sched
- #17056 sched: add stack overflow check on switch context
- #17121 sched: Improve nxsched stack overflow checking implementation
- #17075 sched: merge nxsched_switch_context and add nxsched_switch_critmon
- #16933 sched: remove csection in event
- #17266 sched: replace spinlock/sched_lock with spin_lock_irqsave_nopreempt
- #17060 sched: use nxsched_switch_context to unify the calls to nxsched_suspend_scheduler and nxsched_resume_scheduler
- #17326 sched/clock: Only allow clock_systime_ticks() to access g_system_ticks
- #17104 sched/clock: remove return value of clock_systime_timespec()
- #17176 sched/clock: remove unused function clock_dow() (dow:day of week)
- #16920 sched/event: add nxevent_clear api
- #16993 sched/event: add nxevent_getmask api
- #16990 sched/event: fix event bug after csection was removed by PR 16933
- #17272 sched/event: Fix uninitialized need_switch flag issue in event_post()
- #16942 sched/event: move the temporary even_wait variable out of nxevent_tickwait
- #16919 sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
- #17110 sched/irq: add a check for the interrupt stack in irq_dispatch
- #17190 sched/irq: fixed some issues with irq stack overflow detection
- #16944 sched/semaphore: add support to customize semaphore max allowed value
- #17222 sched/sched: add nxsched_wakeup(), introduce TSTATE_SLEEPING and improve nxsched_ticksleep()
- #17324 sched/sched: Fix nxsched_suspend() logic
- #17199 sched/sched: Replace nxsched_alarm_tick_expiration() with nxsched_tick_expiration()
- #17359 sched/signal: Fix nxsig_ismember() return value behavior
- #17367 sched/signal: Fix nxsig clockwait() implementation issue
- #17366 sched/signal: Initialize signal action pool during init phase
- #17252 sched/signal: Improve nxsig_wait_irq() for performance enhancement and code duplication reduction
- #17196 sched/signal: Remove shadow definitions to reduce unnecessary API
- #17212 sched/signal: use list_waitingforsignal() to access g_waitingforsignal
- #16939 sched/signal/sig_dispatch.c: Correct signal dispatch to specific thread
- #17263 sched/signal/sig_dispatch.c: Remove DEBUGASSERT(!sched_idletask())
- #17130 sched/sig_pending: sigpending() should return caller pending signals only
- #17368 sched/sleep: Add nxsched_nanosleep() API
- #17200 sched/sleep: add support for scheduling sleep
- #17204 sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
- #17106 sched/task: move lock to mhead scope
- #17293 sched/wdog: Fix wd_start() boundary check for WDOG_MAX_DELAY
- #17279 sched/wdog: Improve wdog precision
- #17295 sched/wdog: Introduce wd_restart()/wd_restart_next() for convenient watchdog restart
- #17159 sched/wdog: remove unnecessary list_node redefinition
- #17286 sched/wdog: Use list_in_list() to detect active watchdogs
- #17300 sched_lock: remove the check for whether tcb is NULL
MM
libc
tools
- #16969 Revert "codespellrc: add ans to ignore words"
- #16945 tools/checkpatch.sh: check format for all commits in patch
- #16968 tools/checkpatch.sh: fix check for HEAD commit
- #17335 tools/checkpatch.sh: Improved error display on GitHub
- #16974 tools/configure.sh: align tools/configure.sh with CmakeLists.tx
various
Build System
Cmake
- #17020 cmake: add cmake disassembly support for GHS compiler
- #17198 cmake: correct nuttx_wildcard_sources cmake usage
- #17346 CMake: Enable both sub-Kconfig and generated menu Kconfig
- #17350 CMake: Enable Kconfig generation for external directories
- #17027 cmake: improve board specific Toolchain.cmake
- #17412 cmake: Improve nuttx_generate_kconfig()
- #17072 CMake: Move global compiler flags setting before add_executable()
- #17105 cmake: pass exclusion list to nuttx_add_subdirectory
- #17028 cmake: Provide better .hex and .srec gen for tasking compiler
- #17061 Cmake: Provide linker script preprocess for tasking compiler
- #17209 cmake: Remove redundant logic in CMake scripts
- #17210 cmake: Remove unused BUILD_OOTCPP guard from configuration.
Architectural Support
New Architecture Support
Driver Support
New Drivers
Drivers With Improvements
- #17278 drivers/can: Fix buffer overrun and read failures
- #17360 drivers/can: message alignment for read and write operations
- #17136 drivers/can/ctucanfd_pci.c: refactor to use netdev_uperhalf
- #17135 drivers/can/kvaser_pci.c: refactor to use netdev_upperhalf
- #17344 drivers/eeprom: Set the bus frequency
- #17175 drivers/mtd/CMakeLists.txt: Aligned Cmake with Make
- #17388 drivers/mtd/w25: support custom SPI transfers delay
- #16999 drivers/net/mdio: add mdio bus
- #17378 drivers/pci: qemu_edu: fix arm32 build warning
- #17341 drivers/sensors: Fix Kconfig
- #17392 drivers/sensors: improvements for Kconfig
- #17076 drivers/sensors/ms56xx: Replace custom curtime with standard function
- #17267 drivers/syslog: Add early_syslog() for early boot or system down debugging
- #16982 drivers/syslog: let syslog_write() return the maximum bytes writen through a channel
- #17316 drivers/timers: Introduce clockcount, the time conversion API. [ClockDevice Part II]
- #17345 drivers/timers: Re-implemented timer drivers with the count-based oneshot API [ClockDevice Part V]
- #17221 drivers/timers/arch_alarm: Revert removal of ndelay_accurate
- #17178 drivers/usbdev: Aligned Cmake with Make
- #17180 drivers/usbhost: Aligned Cmake with Make
- #17247 drivers/usbhost_hub: Add support to Multiple TT HS HUB
- #17181 drivers/usbmisc: Aligned Cmake with Make
- #17174 drivers/wireless/ieee80211/bcm43xxx/CMakeLists.txt: Aligned Cmake with Make
- #17177 drivers/wireless/bluetooth: Aligned Cmake with Make
Board Support
New Boards
Boards With Improvements
File System
- #17128 fs/mmap/fs_mmap.c: add missing NULL pointer
- #17126 fs/mmap/fs_mmap.c: fix errno when fd is not valid
- #17125 fs/mmap/fs_mmap.c: MAP_PRIVATE or MAP_SHARED must be specified
- #17127 fs/mmap/fs_msync.c: don't flush changes if MAP_PRIVATE
- #17124 fs/mmap/fs_munmap.c: return error if len is 0
- #17233 fs/fat: Ignore //... sequences in the file path
- #17348 fs/fat: Ignore multiple consecutive slashes in long file names
- #17264 vfs/fs_stat: set st_size on EEPROM character drivers
Networking
Security Issues Fixed In This Release
Compatibility Concerns
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:
- nuttx - The real time operating system itself.
- apps - Optional applications and example programs for the operating system. You can use this repository or make your own custom one.
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.org. For 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.