DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
What's New In This Release
Major Changes to Core OS
Sched
- #16148 Sched small sem cleanups
- #16394 sched: Add max delay tick limitation for wdog/wqueue.
- #16389 sched: Remove checking of WDOG_ISACTIVE when cancelling wdog
- #15998 sched: simplify call of get current tcb
- #16262 sched/affinity: Fix CPU_LOCKED functionality for some SMP calls
- #16134 sched/gettid: Move thread ID to TLS
- #15951 sched/init: Fix build error with CONFIG_BOARD_CRASHDUMP_CUSTOM
- #16113 sched/mutex: add ticked lock version for mutex/rmutex
- #16329 sched/queue: fix typo in dq_insert_mid macro
- #15982 sched/sem_waitirq: Move kmm_map() call to sem_wait()
- #16334 sched/signal: Fix signal delivered to a wrong thread
- #16333 sched/signal: signal dispatch cleanups
- #16301 sched/signal/sig_dispatch: Fix a race condition between nxsig_tcbdispatch and nxsig_deliver
- #16383 sched/timedwait: Ensure critical section for nxsig_timeout
- #15937 sched/wdog: Support for periodic wdog.
- #16343 sched/wdog: watchdog timer improvements.
- #16342 sched/wqueue: Fix wd_cancel_sync and improve work_queue performance.
- #16231 sched/wqueue: Refactor delayed and periodic workqueue.
libs
- #16130 libc/arm: optimize crc32/crc32c for arm
- #16311 libc/backtrace: Fix compilation error when set LIBC_BACKTRACE_BUFFSIZE
- #16374 libc/fdcheck: fix issue about a double close check
- #16149 libc/semaphore: Read semaphore value by using NXSEM_COUNT macro
- #15944 libc/strings: fix compile warning if enable -Wshadow
- #16142 libs/libc/crc16: add some comments for crc16ccitt
- #16143 libs/libc/crc16: add support of CRC-16/ANSI(aka CRC-16/IBM)
- #16360 libs/libc/semaphore: Enable semaphore fast wait/post paths for counting semaphores
- #16147 libs/libc/crc16: Separate implementation of crc16xmodem from crc16
tools
- #16241 tools: Update Unix.mk for CONFIG_ARCH_BOARD_COMMON
- #16000 tools/bdf-converter: Fix loop termination condition.
- #16015 tools/checkpatch: Use gmake on BSD, make otherwise.
- #16402 tools/CMakeLists.txt: Improvements to CMakeLists.txt file
- #16413 tools/Config.mk: add -DHAVE_STRNDUP=1
- #16452 tools/doreleasenotes.py: remove deprecater API
- #15854 tools/espressif: Improve version checking by subprocess
- #16169 tools/host_info_dump.py: fix UnboundLocalError: local variable 'vendor_specific_module_path' referenced before assignment
- #15953 tools/mksyscall: fix 106: Unexpected end of line: "FAR char * co"
- #16396 tools/nxstyle.c: fix error Relative file path on Windows Native
- #16426 tools/nxstyle.c: fix defined but not used warning
- #16313 tools/process_config: remove unused unnecessary printing
Architectural Support
New Architecture Support
Improvements
ARM
- #16018 arch/arm: add missing include for itm_syslog
- #16019 arch/arm: Fix crash when using memcpy/memset as RAMFUNCS
- #16344 arch/arm: fix arm-7a mmu using l1entry swap, we should use per-process mmu table, can speed up for above 10 times.
- #15897 arch/arm: guard .thumb_func use
- #16227 arch/arm/armv6-m/CMakeLists.txt: fix undefined reference to up_show_cpuinfo
- #16120 arch/arm/armv8-r: Enable fpu before arm_el_init
- #16112 arch/arm/imx6: fix missed comma
- #16446 arch/arm/imxrt: rt10xx: MPU fixes and allow to put ramvectors inside ITCM.
- #16460 arch/arm/imxrt: rt117x fix TCM/OCRAM ECC backdoor access
- #15988 arch/arm/nucleo-f429zi: Add board flash size config for STM32F429ZI
- #16308 arch/arm/nrf53: fix broken RPMSG HCI server
- #16281 arch/arm/rp2040: Allow simultaneous selection of multiple interrupt modes
- #16037 arch/arm/rp2040|rp23xx: remove ADC option from Kconfig
- #16348 arch/arm/rp2040/gpio: Fix debug assertion for interrupts.
- #16244 arch/arm/rp23xx: Address the spinlock errata RP2350-E2
- #16306 arch/arm/rp23xx: add dsp/fpu extensions support
- #16330 arch/arm/rp23xx: add missing fpu init for smp cores
- #16363 arch/arm/rp23xx: allow to use armv8m systick lowerhalf
- #16214 arch/arm/rp23xx: Fix IRQ prioritize
- #16247 arch/arm/rp23xx: fix irq priority levels
- #16253 arch/arm/rp23xx: fix linker scripts 100% RAM usage bug
- #16304 arch/arm/rp23xx: fix not restart after TX error
- #16210 arch/arm/rp23xx: Fix PWM registers access
- #16299 arch/arm/rp23xx: fix watchdog, enable TICK blocks
- #16331 arch/arm/rp23xx: update serial code to recent smp fixes from cxd56 serial code
- #16300 arch/arm/rp23xx: update USB PLL/VCO/FBDIV
- #16349 arch/arm/rp23xx: remove spinlock from up_txint
- #16395 arch/arm/rp23xx: resets: do not reset USBCTL, SYSCFG
- #16372 arch/arm/rp23xx: wdog: Ensure setup before register phase
- #16398 arch/arm/rp23xx: xosc: Update startup delay calculation
- #16303 arch/arm/sama5: Add support for reset reason logging
- #16078 arch/arm/sama5/spi: fix ifdelay setup in spi_setdelay call
- #16079 arch/arm/samv7: enable GPIO clock even if interrupt not enabled
- #16434 arch/arm/samv7/sam_us.c: disable interrupts for flash access
- #15900 arch/arm/samv7/spi: fix ifdelay setup in spi_setdelay call
- #15991 arch/arm/stm32: fix stm32f1xx alarm support
- #16102 arch/arm/stm32l4: Add CMakeLists for the STM32L4
- #16206 arch/arm/stm32h5: Add USART6 serial driver config.
- #16178 arch/arm/stm32h5: implement flash driver for progmem
- #16204 arch/arm/stm32h5: copy bss and initialized data before configuring hardware
- #16180 arch/arm/stm32h5: DTS Hardware Files
- #16207 arch/arm/stm32h5: Fix ADC internal channel configuration.
- #16422 arch/arm/stm32h5: Fix FLASH bank logic during erase operations.
- #16205 arch/arm/stm32h5: Fix i2c compiler warnings.
- #16218 arch/arm/stm32h5: GPDMA Hardware files
- #15718 arch/arm/STM32H5: Initial ICACHE Support
- #16220 arch/arm/stm32h5: organize peripheral Kconfig selection
- #16224 arch/arm/stm32h7: unassigned ret variable in SIOCSCANBITRATE.
- #16338 arch/arm/stm32f0l0g0: Add STM32G0 Flash driver.
- #16150 arch/arm/stm32f0l0g0: add watchdog support
- #15949 arch/arm/stm32f0l0g0: Fix SPI reads when nbits is 8
- #16137 arch/arm/stm32f0l0g0/stm32_adc.c: fix ADC calibration
ARM64
- #15939 arch/arm64: Add up_perf_init for qemu.
- #15938 arch/arm64: Improvements on ARM generic timer drivers.
- #16387 arch/arm64/imx9: Extend ELE API with RNG support
- #16458 arch/arm64/imx9: Guard EL3-only features when booting at EL1
- #16332 arch/arm64/imx9: Support for AHAB authentication + ROMAPI
- #15970 arch/arm64/imx9: Support for imx9 edgelock enclave
- #16453 arch/arm64/toolchain: Add -fstack-usage for stack analysis
AVR
- #16365 arch/avr: AVR fixes and support for AVR DA/DB family
- #16451 arch/avr: fix up_saveusercontext and other smaller changes
- #16268 arch/avr: Fixes before adding support to AVRDB
- #16457 arch/avr/atmega: Resolve memory corruption preventing boot
RISC-V
- #16223 arch/espressif: Add dedicated GPIO support for esp32[-s2|-s3|-c3|-c6|-h2]
- #16350 arch/espressif: Add SDM support for esp32[-|-s2|-s3|-c3|-c6|-h2]
- #16320 arch/espressif: Add variable to override MCUboot version and URL
- #16391 arch/espressif: Fixes for Quadrature Encoder mode of PCNT peripheral
- #16315 arch/risc-v: Add RS485 support for esp32[-c3|-c6|h2]
- #16173 arch/risc-v: PANIC() on system call crash
- #16014 arch/risc-v: Fix wrong source name in make script
- #16266 arch/risc-v: save/restore fpu registers always when CONFIG_ARCH_LAZYFPU is off
- #15929 arch/risc-v: tick timer improvements
- #15941 arch/risc-v/common: Fix unaligned stack access on 64-bit risc-v
- #16252 arch/risc-v/esp32{c6,c3,h2}: Fix bootloader flash compiler error
- #16284 arch/risc-v/esp32{c6,c3,h2}: Fix bootloader crash when flash QIO is enabled
- #15992 arch/risc-v/esp32[c3|c6|h2]: Fix efuse issue on MCUBoot
- #16108 arch/risc-v/esp32h2: Set the default SPI flash frequency to 64MHz
- #16219 arch/risc-v/espressif: Bump common source version
- #16175 arch/risc-v/espressif: Fix bug with usbconsole and DEBUG_FEATURES
- #15920 arch/risc-v/espressif: Remove usb serial workaround for esp32 modules
- #16392 arch/risc-v/espressif/esp_pcnt.c: counter accumulation fix
- #16292 arch/risc-v/k230: update documents
- #15979 arch/risc-v/mpfs ethernet improvements
- #16031 arch/risc-v/mpfs: Remove big kernel lock from several drivers
- #16026 arch/risc-v/mpfs/mpfs_rcc: Add stub driver for FPGA clock and reset controller
- #16126 arch/risc-v/mpfs/mpfs_entrypoints.c: Change atomic_load > atomic_read
- #16177 arch/risc-v/mpfs/usb: Align usb_ctrlreq_s properly to 32-bit boundary
SIM
- #16285 arch/sim: add CAN interface support
- #16162 arch/sim: Add i2c setup and shutdown interface
- #16381 arch/sim/Kconfig: simulated CAN depends on LINUX host
- #16433 arch/sim/sim_canchar.c: fix compilation when CAN FD is disabled
- #16371 arch/sim/sim_canchar.c: notify upper-half driver that tx done
- #16358 arch/sim/sim_oneshot: Calculate next oneshot time in ticks instead of…
X86_64
- #16287 arch/x86_64: add debug interface
- #15935 arch/x86_64: Implement TSC frequency query via CPUID 0x40000010
- #16288 arch/x86_64: support for stack canaries
XTENSA
- #15866 arch/esp32_partition: add some partition operation interfaces for esp32
- #16260 arch/esp32_partition.c: fix the incorrect boot sequence when switching from Factory to OTA_1
- #15885 arch/esp32_himemcdev: Replace file descriptor with node
- #15904 arch/esp32_spi: Add check to see if the TX_FIFO is empty
- #16092 arch/xtensa/common: Make esp32 wlan device configurable
- #16157 arch/xtensa/espressif: Fix ESP32-S2 SPI flash frequency selection
- #15993 arch/xtensa/espressif: Fix I2C Slave driver error
- #15855 arch/xtensa: add CONFIG_SPIRAM_MEMTEST from ESP-IDF
- #16155 arch/xtensa: Add common I2S support for esp32[- |-s2|-s3]
- #16208 arch/xtensa: add crt0 to initialize environment
- #15907 arch/xtensa: initial support for debugpoint api
- #16022 arch/xtensa: fix definition for
_int32_tand_uint32_t - #16127 arch/xtensa: move espnow from esp32 to common/espressif
- #16016 arch/xtensa/esp32: Add support for hardware accelerated SHA
- #15962 arch/xtensa/esp32: espnow improvements
- #16012 arch/xtensa/esp32s3: Add esp32s3 lcd ev v1.5 support
- #16152 arch/xtensa/esp32s3: Fix bug regarding SPI flash operation mode
- #16261 arch/xtensa/esp32s3: fix tickless mode timer unexpect interrupt handle
- #16085 arch/xtensa/esp32s3: The MISO and C/S pins are optional
- #15954 arch/xtensa/esp32[s2|s3]: Add number of IRQ status lists for PHY initialization configuration
Driver Support
New Driver Support
Drivers With Significant Improvements
Board Support
New Board Support
Boards With Significant Improvements
File System
Bug Fixes
Significant Improvements
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.