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
- #15129 sched_processtimer: use atomic to protect g_timer_interval and g_timer_tick
- #15130 sched/wdog: use small lock to protect g_wdactivelist
- #15136 clock_timekeeping: remove enter_critical_section in sched/clock/clock_timekeeping.c
- #15139 sched/clock: call up_timer_gettime() to get higher resolution
- #15151 sched/clock: cleanup g_system_ticks reference if arch timer is enabled
- #15324 sched: remove spin_lock_irqsave(NULL) support
- #15346 sched/event: init deleted node to avoid null pointer reference
- #15377 sched/semaphore: tick wait 0 timeout should be safe in interrupt context
- #15415 sched: remove all spin_lock_irqsave(NULL)
- #15509 Revert "sched: misc: Remove sched_lock in _assert()"
- #15518 sched/clock: remove unlock logic to avoid relock
- #15561 sched/timer: remove critical section
- #15575 sched/wqueue: fix potential deadlock
- #15576 sched/wdog: remove wd_cancel_irq() implement
- #15587 sched/wqueue: some minor improve to reduce sched_lock range
- #15589 sched/mqueue/CMakeLists.txt: fix compilation for CONFIG_DISABLE_MQUEUE_SYSV=n
- #15686 No need to call sched_lock explicitly after call spin_lock_irqsave, s…
- #15862 sched/spin_lock: continue work to rename raw_spin* to spin_*_notrace
mm
libc
- #15104 libs/libc: add a option to disable path buffer by default
- #15120 libc/chdir: chdir/fchdir should not depend on environment variables
- #15125 libc/chdir: replace heap alloc to path buffer to improve performance
- #15197 libs/libc/stdlib: update BSD 4 -> 3 clause license headers.
- #15198 lib_pathbuffer.c:Use atomic instead of locks
- #15210 libxx: Make LIBCXXABI default for sim/macOS
- #15328 libc/machine: fix config error
- #15407 libs/gdbstub fixes
- #15551 libc/unistd: move NAME_MAX/LINE_MAX/PATH_MAX define to unistd
- #15578 libs/lib_tempbuffer: set
errnowhen fails - #15581 libc/gnssutils: remove C99 standard flag from Make.defs
- #15627 fix(libc): lib_strftime %F month number off-by-one
- #15772 libc/wcsrtombs: Fix the wcsrtombs() according to the POSIX standard
- #15830 libs/libc/modlib/modlib_bind.c: Fix system crash if modlib_bind fails
- #15865 libc/libcxx: fix failures with GCC 14
- #15868 libs/libnx: do not generate resource if CONFIG_NX is not enabled
tools
- #15847 tools/nxstyle: handle case statement
- #15740 tools: rename GDB plugin to pynuttx/nxgdb and enable PyPI packaging
- #15542 tools/refresh.sh: Add log for progress
- #15531 tools/refresh.sh: Should continue to refresh other configs when matching debug configs
- #15492 tools/nxstyle.c: Add missing zlib function names to white list
- #15304 tools/Unix.mk: Add debug_info target to print nxdiag output
- #15694 tools/mkexport: kernel mode module/elf flags
- #15696 tools: Export LLVM flags for kernel build
- #15697 tools: Export ZIG/ZIGFLAGS in Export.mk instead
various
- #15123 binfmt/modlib: reduce size of binary_s if CONFIG_LIBC_MODLIB is disabled
- #15124 binfmt/loadable: move binary_s to stack to avoid access allocator
- #15756 include/stdlib.h: define system()'s prototype for the flat build
- #15640 modlib/meminfo: trivial revision on logging/dump
- #15588 modlib: fix armv7a w/ unified gnu-elf.ld.in
- #15527 modlib:gnu-elf.ld.in load exe elf data section mismatch
- #15494 kconfiglib/mark: It should use pip instead of apt install* #15722 gdb/wdog: add basic wdog dump command
- #15723 gdb/workqueue: add basic workqueue dump support
- #15726 gdb: add tool to check heap memory corruption
- #15613 gdbstub: add const to send buffer
- #15618 gdbstub: typo and log fixes
- #15623 Gdbstub support binary memory read
- #15759 gdbstub: fix memory binary upload on latest GDB
- #15777 Nxgdb mm minor fixes
- #15742 nxgdb/fs: simpifiy inode print and add more command options
- #15743 nxgdb/irq: add irqinfo command
- #15744 nxgdb/memdump: add free command
- #15745 Nxgdb memleak optimization
Major Changes to the Build System
Bug Fixes
- #15091 build(CMAKE): fix pac sim elf ONLY in Linux platform
- #15702 build: CMake fix for sim:btuart
- #15848 nuttx/compiler: fix build warning on GCC14
- #15185 [cmake] windows native: fixed FAILED: System.map
- #15594 cmake/mkconfig: add support of set custom command options to config.h
- #15596 cmake: Use EXTRAFLAGS to define customized compilation options
- #15655 [cmake] savedefconfig.cmake: fix EOL changes to defconfig files on Windows native
- #15775 cmake/pic: sync pic related compiler flags from makefile
Architectural Support
New Architecture Support
- #15879 arch/mcx-nxxx: Add support for NXP MCX-N236 CPU
Architecture Improvements
- #15584 arch/Kconfig: allow FLASH config w/o MMU
- #15072 arch: mem barrier interface Align with riscv
- #15651 arch: set (*running_task)->xcp.regs to NULL when exit from irq/exception
- #15669 arch: select LIBC_ARCH_ELF when using COREDUMP
- #15728 arch: Remove the abuse of spinlock in smp boot
- #15769 arch/zynq-mpsoc improve the ethernet driver
- #15908 arch/mcx-nxxx: Add GPIO interrupt support
- #15892 arch/ra4: Add support for Renesas RA4M1 MCU
- #15400 arch/qemu-armv7a: kernel mode cmake support
ARM
- #15486 arch/arm: Add LLVM configuration to CMake
- #15517 arch/arm: fix regression by spinlock change
- #15762 arch/arm: add semihosting poweroff
- #15529 arch/armv7a: fix vfork for KERNEL build
- #15585 arch/armv7-r: fix gic.h build error
- #15800 arch/armv7-r: PROTECTED mode support (1/2)
- #15813 arch/armv7-r: PROTECTED mode support (2/2)
- #15870 arch: cxd56xx: Fix i2c bus freeze at i2c initialization
- #15092 arch: cxd56xx: : use small lock in arch/arm/src/cxd56xx/cxd56_rtc.c
- #15166 arch: cxd56xx: Fix not restart after TX error
- #15884 arch: cxd56xx: Update delay value for subcore
- #15837 arch/arm/max326xx: add max32690 gpio driver
- #15504 arch/arm/rp23xx: Set priority for svcall exception
- #15781 arch/arm/samv7/sam_tc_lowerhalf.c: do not set the CPCSTOP bit
- #15583 Add STM32H5 Ethernet Driver
- #15351 Add STM32H5 QSPI Driver
- #15271 Add Hardware Defines for STM32H5 QSPI Driver
- #15411 Add FDCAN Character Driver to STM32H5 Architecture
- #15495 Add Timer Support to STM32H5 ADC Driver
- #15420 arch/arm/stm32/: Fix I2C to support STM32G4 devices.
- #15421 arch/arm/stm32/: Added enable/disable to timer low level ops.
- #15458 arch/arm/stm32: fix stm32g4 enable pll code.
- #15473 arch/arm/stm32/i2c: raise compilation error when configuration is invalid
- #15872 arch/arm/tiva: Add complementary PWM mode support
- #15093 lc823450_dma: use small lock in arch/arm/src/lc823450/lc823450_dma.c
- #15094 max32660_rtc: use small lock in arch/arm/src/max326xx/max32660/max32660_rtc.c
- #15096 s32k3xx_serial: use small lock in arch/arm/src/s32k3xx/s32k3xx_serial.c
- #15222 lc823450_rtc: use small lock in arch/arm/src/lc823450/lc823450_rtc.c
- #15255 at32_serial: use small lock in arch/arm/src/at32/at32_serial.c
- #15263 imx_gpio: use small lock in arch/arm/src/imx6/imx_gpio.c
ARM64
- #15748 arch/arm64 Fix the SP unalignment issues
- #15758 arch/arm64: generate error if context size is not aligned to 16bytes
- #15646 arch/arm64/src/imx9/imx9_lpuart.c: Call uart_xmitchars when txint is enabled
- #15519 arch/arm64: fix typo spin_lock_irqsave -> spin_unlock_irqrestore
- #15901 arch/arm64: fix boot stage prints with CONFIG_ARCH_EARLY_PRINT=y
- #15083 arch/arm64/src/imx9/imx9_usdhc.c: Simplify eventwait logic and remove…
- #15843 arch/arm/imx9: scmi: update to scmi 3.2 spec
- #15290 imx9_flexcan: use small lock in arch/arm/src/imx9/imx9_flexcan.c
- #15291 imx9_lpuart: use small lock in arch/arm(64)/src/imx9/imx9_lpuart.c
- #15144 arch/arm64/imx9: Fix usdhc dma receive
sim
- #15209 sim: Fix build errors on macOS
- #15341 sim_alsa: set paused to false when executing close
- #15661 sim/posix/uart: add host_printf() to debug some critical issue
- #15706 sim: Align LLVM target info across CMake and Makefile
- #15645 sim/rpmsg_uart: add sim rpmsg uart support
- #15639 sim/virtio: fix typo sim_rpmsg_vritio.c -> sim_rpmsg_virtio.c
- #15633 sim/nsh: enable debug assertion by default
- #15586 sim: fix regression from https://github.com/apache/nuttx/pull/14623
- #15552 sim_hostfs:add host_errno_convert API for convert result
- #15500 sim: Fixes the linker 'noexecstack' warning
- #15463 sim:citest: Bump the nsh line length
- #15453 sim: Disable chained fixups for sim_macho_init.c
- #15418 sim/oneshot: Remove redundant variables.
- #15226 arch/sim/src/nuttx-names.in: Add pipe2
X86_64
- #15409 arch/intel64: allow to attach handlers to ISR
- #15325 arch/x86_64:g_current_regs is only used to determine if we are in irq,
- #15392 arch/x86_64: The interrupt context flag is stored in the CPU private …
- #15398 arch/x86_64: this_task is stored in the CPU private data
- #15408 arch/x86_64/include/intel64/irq.h: align definitions
- #15508 arch/x86_64:Resolve the issue of abnormal interrupt numbers triggered when KASAN is enabled
Xtensa
- #15741 arch/xtensa: Add --print-memory-usage to LDFLAGS in Toolchain.defs
- #15404 arch/xtensa: enable SPIRAM test during boot of ESP32|S3
- #15080 xtensa/esp32: encrypted MTD for partition offset
- #15082 xtensa/esp32s3: add lock for async operation work
- #15232 esp32_rtc: use small lock in arch/xtensa/src/esp32s2/esp32s2_rtc.c
- #15221 esp32s3_rtc: use small lock in arch/xtensa/src/esp32s3/esp32s3_rtc.c
- #15470 arch/esp32s3_partition: Read data from SPI Flash with decryption
- #15269 arch/xtensa: Support
__threadandthread_localkeywords
Risc-v
- #15895 riscv/esp32c6: Fix issue related esp32c6 usbserial driver.
- #15763 arch/risc-v/Kconfig: Select ARCH_RV_CPUID_MAP for all mpfs targets
- #15642 arch/risc-v/src/mpfs: Disable external interrupts on all SMP harts
- #15713 arch/risc-v/src/mpfs/mpfs_cache.c: Move l2zerodevice to use cache ways starting from 0
- #15725 arch/risc-v/src/common/riscv_backtrace.c: Fix "error: pointer of type 'void *' used in arithmetic"
- #15819 mpfs_i2c: Tweaks and fixes for the i2c driver
- #15469 arch/risc-v: Improve LLVM CPU type detection with findstring
- #15475 arch/risc-v: Refactor LLVM CPU type handling in Toolchain.cmake
- #15537 arch/risc-v: Decouple ARCH_RV_CPUID_MAP and up_cpu_index()
- #15540 arch/risc-v: Remove riscv_mhartid
- #15381 arch/risc-v: inline up_cpu_index if RISCV_PERCPU_SCRATCH is not enabled
- #15396 arch/risc-v: Make CPU index handling based on ARCH_RV_CPUID_MAP
- #15294 arch/risc-v/espressif: add missing spinlock to wlan_recvframe
- #15084 risc-v/mpfs: make cache clearing optional
- #15835 arch/risc-v: move stack boundary check into backtrace
- #15878 arch/risc-v/src/mpfs: Move PLIC interrupt enable/disable to mpfs_plic and handle pending interrupts
- #15886 arch/risc-v/src/mpfs: Implement wrcomplete support for coremmc driver
- #15910 arch/risc-v: Add ARCH_HAVE_RAMFUNCS to ESP32-C6 and ESP32-H2
- #15097 litex_serial: use small lock in arch/risc-v/src/litex/litex_serial.c
- #15225 esp32c3_rtc: use small lock in arch/risc-v/src/esp32c3-legacy/esp32c3_rtc.c
- #15267 esp_rtc: use small lock in arch/risc-v/src/common/espressif/esp_rtc.c
Driver Support
New Driver Support
- #15295 nuttx/audio: add fake audio driver.
- #15307 drivers/sensors: Add support to Renesas FS3000 Air Velocity Flow
- #15332 risc-v/bl808: Add I2C driver
- #15496 drivers/sensors/bmi088: add driver for Bosch BMI088 IMU
- #15525 drivers/sensors: Wrote a driver for the MCP9600 thermocouple amplifier.
- #15795 drivers/wireless/lpwan/sx126x: Initial standalone sx126x driver
Drivers With Significant Improvements
- #15293 drivers/sensors: Add Velocity sensor type to UORB
- #15339 Drivers/thermal: Fix hysteresis takes no effect error
- #15340 drivers/e1000: malloc size error
- #15342 drivers/sensors/gnss: Fix deactivate failure when using both topic and device
- #15387 drivers/timers/watchdog: add watchdog timer notifier chain
- #15406 drivers/serial: simplify 16550_PCI_UARTx_CLOCK config
- #15410 virtio-rng: Register /dev/urandom driver if CONFIG_DEV_URANDOM=y
- #15440 drivers/video: add BRGA8888 support for goldfish gpu fb
- #15448 drivers/sensors/gnss: Fix integer overflow error
- #15468 drivers/sensors/gnss: Macro
UINT8_MAXfor maximum value of `uint8_t crefs - #15485 drivers/usbdev/cdcacm.c: Fix a crash in cdcacm if usbdev gets unregistered while client calls close for the tty
- #15498 drivers/vhost: fix compile error while get vhost status.
- #15520 drivers/note: fix typo falgs and align local name to irq_mask
- #15564 drivers/can: ctucanfd the first round of fixes - mainly for char dev
- #15610 drivers/sensor: add new sensot type to align android sensor type
- #15612 drivers: mcp23x08 add missing header and fix some defines
- #15629 drivers/iovec: revert vector io implement from loop/null/zero driver
- #15641 drivers/rpmsg: fix compiler warning
- #15654 drivers/rpmsg: update format string
- #15663 drivers/rpmsg_port_uart: remove debug message of datalen
- #15703 LIS2MDL UORB driver
- #15789 drivers/sensors: Added uORB driver for LSM6DSO32 IMU.
- #15799 drivers/devicetree: merge ioresource MEM64 to prefetchable memory
- #15811 drivers/thermal: Add support for passive trip point
- #15860 drivers/sensors/lsm6dso32: fixed byte read command to include start condition
- #15871 drivers/rpmsg/Kconfig: Add SPI dependency for RPMSG_PORT_SPI
- #15875 drivers/sensors/ms56xx: Use nxsig_usleep for long delays.
- #15882 drivers/net: change format specifiers macros on lan9250 driver
- #15891 drivers/thermal/core: Fix work not queued after getting temperature fails
- #15914 drivers/audio/es8311: set proper format specifier for logging
- #15918 drivers/audio/es8388: set proper format specifier macro for logging
- #14898 drivers/serial/serial.c: adapt to the iovec-based api
- #15142 drivers/timers/watchdog: support the configurations of Auto-monitor r…
- #15145 drivers/bch: Drivers may not support command
BIOC_FLUSH - #15824 sensors/lsm6dso32: Fixed typo in device address registration.
- #15573 sensors/sht4x: Converted SHT4X driver to UORB framework.
Board Support
New Board Support
Boards With Significant Improvements
- #15539 boards: Refresh configurations with refresh.sh
- #15541 boards: Replace
CONFIG_NSH_LINELENwithCONFIG_LINE_MAX - #15187 boards: add nimble defconfig to esp32c3-generic
- #15224 boards/sim/sim/sim/scripts/Make.defs: simplify a bit
- #15390 boards/risc-v, xtensa: Remove CONFIG_DEV_ZERO
- #15427 board/qemu-armv7a: add board_power_off
- #15438 boards/xtensa: unify linker script for MCUBoot and Simple Boot
- #15524 boards/xtensa: disable DEV_CONSOLE on usbnsh defconfig
- #15620 boards/qemu-armv7r: fix typo
- #15626 boards/qemu-armv7a: revises knsh config
- #15659 nuttx/boards:fix kconfig under apps/testing folder that change config-testing-mm to config-testing-heap
- #15682 boards/linum-stm32h753bi: Fix wrong usbnsh example name
- #15698 boards: Rename CONFIG_TESTING_SENSORTEST to CONFIG_SYSTEM_SENSORTEST
- #15704 boards/qemu-armv7a: revise nsh config
- #15710 boards/linum-stm32h753bi: Fix lvgl example
- #15724 boards/rv-virt: use modlib gnu-elf.ld
- #15727 boards/stm32/nucleo-f429zi: update netnsh defconfig
- #15750 feat: add arch depends for aurix tc397 board
- #15796 boards/linum-stm32h753bi: optimize display timings and memory config
- #15817 boards/stm32l4: Fix all boards to support proper stm32_bringup.c
- #15832 boards/b-g431b-esc1: configure CAN_TERM pin
- #15833 boards/stm32: fix CAN bit timings for boards
- #15834 boards/stm32: enable SocketCAN utils for cansock configs
- #15836 boards/esp32s3-devkit: Initializing configuration for Fastboot
- #15863 board/arm/rp2040: support config st7789 reset gpio pin
- #15894 boards/arm/rp2040/common: Add weak_function to SPI common logic
File System
Bug Fixes
- #13519 fs/reference_count: set default reference count option depends on DISABLE_PTHREAD
- #14444 fs/inode: refresh tcb after each file sync() is completed
- #15077 fs/tmpfs: Skip any slash at the beginning of relpath
- #15202 fs: fix comment in https://github.com/apache/nuttx/pull/15163
- #15159 fs/shm/shmfs_alloc.c: Allocate zero-initialized memory in flat build
- #15167 fs/fat/fs_fat32util.c: fix potential exception due to dividing zero during mounting when fat is corrupted
- #15203 fs: move fl_lock to a more appropriate location
- #15204 fs/littlefs/Make.defs: fix a littlefs unpack regression
- #15603 fs/vfs: initialize uio only if lower implement readv/writev
- #15814 littlefs/cmake: fix compilation flag issue* #15334 littlefs: fix EINVAL on path operations with littlefs 2.10.0
- #15335 bump littlefs to 2.10.1 where 2.10.0 was used
Networking
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:
- 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.