You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Work In Progress

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


* [#15129](https://github.com/apache/nuttx/pull/15129) sched_processtimer: use atomic to protect g_timer_interval and g_timer_tick
* [#15130](https://github.com/apache/nuttx/pull/15130) sched/wdog: use small lock to protect g_wdactivelist
* [#15136](https://github.com/apache/nuttx/pull/15136) clock_timekeeping: remove enter_critical_section in sched/clock/clock_timekeeping.c
* [#15139](https://github.com/apache/nuttx/pull/15139) sched/clock: call up_timer_gettime() to get higher resolution
* [#15151](https://github.com/apache/nuttx/pull/15151) sched/clock: cleanup g_system_ticks reference if arch timer is enabled
* [#15324](https://github.com/apache/nuttx/pull/15324) sched: remove spin_lock_irqsave(NULL) support
* [#15346](https://github.com/apache/nuttx/pull/15346) sched/event: init deleted node to avoid null pointer reference
* [#15377](https://github.com/apache/nuttx/pull/15377) sched/semaphore: tick wait 0 timeout should be safe in interrupt context
* [#15415](https://github.com/apache/nuttx/pull/15415) sched: remove all spin_lock_irqsave(NULL)
* [#15509](https://github.com/apache/nuttx/pull/15509) Revert "sched: misc: Remove sched_lock in _assert()"
* [#15518](https://github.com/apache/nuttx/pull/15518) sched/clock: remove unlock logic to avoid relock
* [#15561](https://github.com/apache/nuttx/pull/15561) sched/timer: remove critical section
* [#15575](https://github.com/apache/nuttx/pull/15575) sched/wqueue: fix potential deadlock
* [#15576](https://github.com/apache/nuttx/pull/15576) sched/wdog: remove wd_cancel_irq() implement
* [#15587](https://github.com/apache/nuttx/pull/15587) sched/wqueue: some minor improve to reduce sched_lock range 
* [#15589](https://github.com/apache/nuttx/pull/15589) sched/mqueue/CMakeLists.txt: fix compilation for CONFIG_DISABLE_MQUEUE_SYSV=n
* [#15686](https://github.com/apache/nuttx/pull/15686) No need to call sched_lock explicitly after call spin_lock_irqsave, s…
* [#15862](https://github.com/apache/nuttx/pull/15862) sched/spin_lock: continue work to rename raw_spin* to spin_*_notrace

mm

* [#15384](https://github.com/apache/nuttx/pull/15384) mm: Unified memory management alignment length
* [#15490](https://github.com/apache/nuttx/pull/15490) mm: Add mm_lock_irq, mm_unlock_iq
* [#15761](https://github.com/apache/nuttx/pull/15761) nxgdb/mm: show pool expand queue size

libc

* [#15104](https://github.com/apache/nuttx/pull/15104) libs/libc: add a option to disable path buffer by default
* [#15120](https://github.com/apache/nuttx/pull/15120) libc/chdir: chdir/fchdir should not depend on environment variables
* [#15125](https://github.com/apache/nuttx/pull/15125) libc/chdir: replace heap alloc to path buffer to improve performance
* [#15197](https://github.com/apache/nuttx/pull/15197) libs/libc/stdlib: update BSD 4 -> 3 clause license headers.
* [#15198](https://github.com/apache/nuttx/pull/15198) lib_pathbuffer.c:Use atomic instead of locks
* [#15210](https://github.com/apache/nuttx/pull/15210) libxx: Make LIBCXXABI default for sim/macOS
* [#15328](https://github.com/apache/nuttx/pull/15328) libc/machine: fix config error
* [#15407](https://github.com/apache/nuttx/pull/15407) libs/gdbstub fixes
* [#15551](https://github.com/apache/nuttx/pull/15551) libc/unistd: move NAME_MAX/LINE_MAX/PATH_MAX define to unistd
* [#15578](https://github.com/apache/nuttx/pull/15578) libs/lib_tempbuffer: set `errno` when fails
* [#15581](https://github.com/apache/nuttx/pull/15581) libc/gnssutils: remove C99 standard flag from Make.defs
* [#15627](https://github.com/apache/nuttx/pull/15627) fix(libc): lib_strftime %F month number off-by-one
* [#15772](https://github.com/apache/nuttx/pull/15772) libc/wcsrtombs: Fix the wcsrtombs() according to the POSIX standard
* [#15830](https://github.com/apache/nuttx/pull/15830) libs/libc/modlib/modlib_bind.c: Fix system crash if modlib_bind fails
* [#15865](https://github.com/apache/nuttx/pull/15865) libc/libcxx: fix failures with GCC 14
* [#15868](https://github.com/apache/nuttx/pull/15868) libs/libnx: do not generate resource if CONFIG_NX is not enabled

tools


* [#15847](https://github.com/apache/nuttx/pull/15847) tools/nxstyle: handle case statement
* [#15740](https://github.com/apache/nuttx/pull/15740) tools: rename GDB plugin to pynuttx/nxgdb and enable PyPI packaging
* [#15542](https://github.com/apache/nuttx/pull/15542) tools/refresh.sh: Add log for progress
* [#15531](https://github.com/apache/nuttx/pull/15531) tools/refresh.sh: Should continue to refresh other configs when matching debug configs
* [#15492](https://github.com/apache/nuttx/pull/15492) tools/nxstyle.c: Add missing zlib function names to white list
* [#15304](https://github.com/apache/nuttx/pull/15304) tools/Unix.mk: Add debug_info target to print nxdiag output
* [#15694](https://github.com/apache/nuttx/pull/15694) tools/mkexport: kernel mode module/elf flags
* [#15696](https://github.com/apache/nuttx/pull/15696) tools: Export LLVM flags for kernel build
* [#15697](https://github.com/apache/nuttx/pull/15697) tools: Export ZIG/ZIGFLAGS in Export.mk instead

various

* [#15123](https://github.com/apache/nuttx/pull/15123) binfmt/modlib: reduce size of binary_s if CONFIG_LIBC_MODLIB is disabled
* [#15124](https://github.com/apache/nuttx/pull/15124) binfmt/loadable: move binary_s to stack to avoid access allocator
* [#15756](https://github.com/apache/nuttx/pull/15756) include/stdlib.h: define system()'s prototype for the flat build
* [#15640](https://github.com/apache/nuttx/pull/15640) modlib/meminfo: trivial revision on logging/dump
* [#15588](https://github.com/apache/nuttx/pull/15588) modlib: fix armv7a w/ unified gnu-elf.ld.in
* [#15527](https://github.com/apache/nuttx/pull/15527) modlib:gnu-elf.ld.in load exe elf data section mismatch
* [#15494](https://github.com/apache/nuttx/pull/15494) kconfiglib/mark: It should use pip instead of apt install

Major Changes to the Build System

New Features

Bug Fixes

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 __thread and thread_local keywords

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_MAX for 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


  • #15785 esp32[s3]: Add ES8311 support for esp32s3-lcd-ev board
  • #15798 boards/arm Add support to Seeed Xiao nRF52840 Board
  • #15867 boards/Add ARCH_CHIP_ESP32S3WROOM1N16R8 configuration for ESP32-S3 DevKit

Boards With Significant Improvements


  • #15539 boards: Refresh configurations with refresh.sh
  • #15541 boards: Replace CONFIG_NSH_LINELEN with CONFIG_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



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.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.

  • No labels