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

Compare with Current View Page History

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

  • #16554 sched: assert: Print Stack pointer value when not within the stack
  • #16673 sched: Fix smp scheduling
  • #16919 sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
  • #16927 sched/signal: Old signal action need save sa_user
  • #16481 sched/wdog: Replace periodical timer with the wd_start_next.
  • #16545 sched/wqueue: Fix windows compilation errors.
  • #16593 sched/wqueue: Fix windows compilation errors.


MM

libc

tools

cmake

  • #16880 arch: Add Cmake build support for raspberrypi-4b board & bcm2711 chip
  • #16475 arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
  • #16579 arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
  • #16647 arch/arm64/fvp-v8r: support cmake compile
  • #16581 arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of …
  • #16477 arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.c
  • #16794 arm: CMake build for the i.MX RT series implemented.
  • #16627 Arm32 v8m support cmake clang compile
  • #16922 boards/arm/imxrt: CMake added imxrt1020-evk imxrt1050-evk boards
  • #16918 boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boards
  • #16639 cmake/arm64:   support clang compile
  • #16547 cmake(bugfix):fix VERSION genarator strip error in CMake build
  • #16594 cmake(bugfix):fix VERSION genarator strip error in CMake build
  • #16751 cmake(bugfix):add default c++ search path
  • #16897 Cmake: add defconfig preprocess capability in Cmake build environment(recursively expand #include)
  • #16721 cmake: enhance the function of cmake nuttx_wildcard_sources
  • #16867 drivers/analog/CMakeLists.txt: Aligned Cmake with Make
  • #16870 drivers/audio/CMakeLists.txt: Aligned Cmake with Make
  • #16873 drivers/ioexpander/CMakeLists.txt: Aligned Cmake with Make
  • #16871 drivers/leds/CMakeLists.txt: Aligned Cmake with Make
  • #16913 drivers/net/CMakeLists.txt: Aligned Cmake with Make
  • #16620 drivers/segger/CMakeLists.txt: Aligned Cmake with Make
  • #16633 drivers/segger/CMakeLists.txt: Aligned Cmake with Make
  • #16616 drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
  • #16634 drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
  • #16737 toolchain/arm64/cmake: Corrected the writing of arm64 cmake search library

Major Changes to the Build System

New Features

Bug Fixes

Architectural Support

New Architecture Support

Driver Support

New Driver Support

  • #16836 drivers/analog/ads7046: Add support for ADS7046 ADC
  • #16714 drivers/input: Create Single Button Multi Actions
  • #16902 drivers/ioexpander: Add support for pcal6416
  • #16934 drivers/ioexpander/aw9523b: New driver for AW9523B i/o expander
  • #16217 drivers/leds: Add support for KTD2052
  • #16660 drivers/net: add IGB network card support
  • #16623 drivers/net: add support for the NCV7410 10BASE-T1S SPI MAC-PHY
  • #16605 drivers/sensors: add Quectel L86-XXX GNSS uORB sensor driver
  • #16838 drivers/sensors/tmp112: Add support for TMP112 temperature sensor

Drivers With Significant Improvements

  • #16715 drivers/analog/ads1115.h: Add ioctl for conversion trigger
  • #16875 drivers/can/kvaser_pci: configure number of passes in interrupt handler
  • #16738 drivers/fs:Always use register_mtddriver() to register the MTD device (patch2)
  • #16914 drivers/i2s/i2schar: Implement ioctl commands and blocking read/write operations
  • #16745 drivers/ioexpander/icjx.c: reconfigure icjx after undervoltage
  • #16729 drivers/misc/optee: Cache coherency when MMU is disabled
  • #16734 drivers/misc/optee: expand RPC suppport for IMX9
  • #16800 drivers/misc/optee_smc: Explicitly yield during NW interrupts
  • #16801 drivers/misc/optee_smc: Fix sched_yield() on flat builds
  • #16473 drivers/mtd: fix compile warning
  • #16577 drivers/mtd: fix compile warning
  • #16789 drivers/mtd: introduce nvblk
  • #16642 drivers/mtd/ftl/bch: Add direct writing method for FTL
  • #16906 drivers/net: ksz9477 fixes
  • #16899 drivers/net: Remove NCV7410 driver and corresponding board support
  • #16661 drivers/net: various fixes for e1000 and igc
  • #16649 drivers/net/Kconfig: Move NET_IGC_TXDESC and NET_IGC_RXDESC to NET_IG…
  • #16767 drivers/pci: epc add dma heap
  • #16753 drivers/segger: Add a kconfig to override Segger SystemView target sources version
  • #16510 drivers/segger: Change SEGGER_RTT_LOCK into rspinlock
  • #16805 drivers/sensor: Add flags for GNSS satellite
  • #16764 drivers/sensors/l86xxx: Fix driver registration crashes
  • #16701 drivers/sensors/l86xxx: Fix Kconfig options and dependencies
  • #16821 drivers/sensors/l86xxx: Mutex fixes & performance improvements
  • #16778 drivers/sensors/l86xxx: Use uORB GNSS lower-half
  • #16717 drivers/sensors/nau7802: Added frequency control
  • #16466 drivers/serial: fix race conditions
  • #16573 drivers/serial: fix race conditions
  • #16820 drivers/syslog/syslog_channel.c: fix incompatible-pointer-types compile errors
  • #16788 drivers/video: add sched_note_mark at fb_remove_paninfo and fb_notify_vsync


Board Support

New Board Support

  • #16443 boards/avr/atmega: Added Elegoo Mega2560r3 board
  • #16781 boards/imxrt: Add support to ARCX Socket Grid board
  • #16558 boards/xtensa/esp32s3: add new esp32s3-8048S043 board

Improvements

  • #16792 boards/arm: Fix Kconfig style
  • #16663 boards/arm/lpc17xx_40xx/lincoln60: Correct defconfig for THTTPD_CGIINBUFFERSIZ spelling
  • #16833 boards/arm/qemu: Change config name of input tool
  • #16931 boards/arm/rp23xx/common: update board reset via BOOTROM functions
  • #16707 boards/arm/stm32f401rc-rs485: Add support to HX711 ADC
  • #16779 boards/arm/stm32f401rc-rs485: Add support to MAX31855 and MAX6675
  • #16780 boards/arm/stm32f4discovery: Add support to HX711 ADC
  • #16857 board/esp: Revert mtdblock registeration
  • #16866 boards/esp32s3: Add SPI slave device support
  • #16725 boards/espressif: add support for SDMMC over SPI for ESP32-C3|C6|H2
  • #16812 boards/imxrt: Fix issues and add USBHOST support to arcx-socket-grid
  • #16824 boards/imxrt/arcx-socket-grid: Remove debug symbols
  • #16535 boards/nucleo-f446re: fix adc example
  • #16592 boards/nucleo-f446re: fix adc example
  • #16665 boards/qemu-armv8a: Add xedge example program and documentation
  • #16659 boards/qemu-intel64/qemu.ld: add .lbss, .ldata and .lrodata
  • #16848 boards/risc-v/rp23xx-rv/common: update board reset via BOOTROM functions
  • #16646 boards/riscv-v/esp32c6: Add the NCV7410 10BASE-T1S SPI MAC-PHY support
  • #16898 boards/tricore: rename tc397 chip board name
  • #16505 boards/xtensa/esp32: Add BLE config to esp32-sparrow
  • #16602 boards/xtensa: support SDMMC over SPI on ESP32|S2|S3
  • #16638 boards/xtensa/esp32s3/esp32s3-box: Fix ILI9342C color inversion
  • #16681 boards/weact-stm32h743 Add sdcard support
  • #16785 boards/weact-stm32h743: Add support to ST7735 display

File System

 Improvements

  • #16722 fs/block_proxy: fix the issue of the refs count for filep being zeroed out by utilizing dup2
  • #16938 fs/fat: Fix wrong alloc used in fat_zero_cluster()
  • #16536 fs/fcntl: using ioctl to implement FIOGCLEX/FIOCLEX/FIONCLEX
  • #16832 fs/lock: Allow driver lock
  • #16598 fs/procfs: fix output format of fd info
  • #16518 fs/smartfs: Fix a fatal bug about sector writing after seek
  • #16590 fs/smartfs: Fix a fatal bug about sector writing after seek
  • #16490 fs/vfs: check if all iov_base are accessible
  • #16584 fs/vfs: check if all iov_base are accessible
  • #16609 fs/vfs: clear filep when call file_open/file_mq_open to avoid random value[bug fix]
  • #16538 fs/vfs/fs_close.c: avoid double free if CONFIG_FS_NOTIFY is set
  • #16455 fs/vfs/fs_rename: fix directory move operation.

Networking

Improvements

  • #16926 include/net/if.h: Add mechanism for MMD access with SIOCxMIIREG ioctls
  • #16628 net: Enable TCP/IP backlog by default
  • #16684 net/arp: avoid unnecessary ARP requests
  • #16905 net/can: fixes and cleanups
  • #16682 net/local: correct shutdown state when use UDP mode (To fix issue: https://github.com/apache/nuttx/issues/16555)
  • #16494 net/utils: avoid unalign access g_tcp_connections_buffer
  • #16585 net/utils: avoid unalign access g_tcp_connections_buffer
  • #16599 netdb/lib_dnsquery.c: prevent file descriptor leakage
  • #16606 netdb/lib_dnsquery.c: In the IPv6 or IPv4 dns_query_callback() block,…

Compatibility Concerns

  • #16499 [BREAKING] fs/vfs: Separate file descriptors from file descriptions

This PR is a rework of the NuttX file descriptor implementation. The goal is two-fold:

Improve POSIX compliance. The old implementation tied file description to inode only, not the file struct. POSIX however dictates otherwise. Fix a bug with descriptor duplication (dup2() and dup3()). There is an existing race condition with this POSIX API that currently results in a kernel side crash. The crash occurs when a partially open / closed file descriptor is duplicated. The reason for the crash is that even if the descriptor is closed, the file might still be in use by the kernel (due to e.g. ongoing write to file). The open file data is changed by file_dup3() and this causes a crash in the device / drivers themselves as they lose access to the inode and private data.

The fix is done by separating struct file into file and file descriptor structs. The file struct can live on even if the descriptor is closed, fixing the crash. This also fixes the POSIX issue, as two descriptors can now point to the same file.

The implementation of this PR is based on the modifications made in #16361. Thank you @pussuw

DEPENDS ON: apache/nuttx-apps#3091

IMPACT

Remove the FS_REFCOUNT config because reference counting is a very necessary feature that is required in many scenarios to ensure stability. Rename the functions fs_getfilep, fs_putfilep, and fs_reffilep to file_get, file_put, and file_ref respectively, to unify the naming convention to file_xxx, such as file_open, file_ioctl, etc. Introduce a new fd (file descriptor) structure. If multiple file descriptors (fds) are in a dup relationship, they can share the same file entity to implement the dup functionality. Modify the functions nx_close_from_tcb, nx_open_from_tcb, nx_dup2_from_tcb, and nx_dup3_from_tcb to fdlist_open, fdlist_close, fdlist_dup2, and fdlist_dup3 respectively, to uniformly operate on file descriptors using fdlist.

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