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

Compare with Current View Page History

« Previous Version 8 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

  • #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

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

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

  • #17331 driver: AT25EE multi-device support
  • #17182 drivers/1Wire: DS2XXX driver for various Maxim/Analog devices memories
  • #16936 drivers/net: Add network driver for 10BASE-T1x SPI MAC-PHYs
  • #17363 drivers/sensors: Add QST QMI8658 6-axis IMU sensor driver

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

  • #17298 boards/arm/stm32h7: add Arduino Portenta H7

Boards With Improvements

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

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

  • #17244 [!] sched/event: removed event_tickwait_wait() and added TSTATE_WAIT_EVENT

  • #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:

  • 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