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

Compare with Current View Page History

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

Core OS

Sched

  • #13395 Critmon optimize, make possible open cpuload based on critmon and disable critical section & sched_lock to save cost.
  • #12691 sched.h: add SCHED_BATCH and SCHED_IDLE definition
  • #12584 sched.h: CPU_XXX macros can also be used without CONFIG_SMP
  • #12703 sched.h: Update doc link for tcbinfo_s
  • #13274 sched: add DEBUGASSERT to assure that affinity not zero
  • #13341 sched: adjust the scheduling strategy
  • #13105 sched: change pthread_mutex implementation from sem to mutex
  • #12742 sched: Improve Kconfig help of INIT_ENTRYPOINT
  • #13525 sched: move DUMP_ON_EXIT to sched
  • #13211 sched: replace up_cpu_index with this_cpu
  • #13271 sched: use this_task replace nxsched_self
  • #13263 sched/event: clear pending events before enable the scheduler
  • #13329 sched/group/setuptask_file: duplicate idle task fd for kernel thread
  • #13083 sched/irq: correct critical section to spin lock
  • #12802 sched/nxevent: add support of kernel event group
  • #13264 sched/policy: move g_policy from data to rodata
  • #13017 sched/sched: simplify the implementation of the function nxsched_readytorun_setpriority
  • #13134 sched/signal: fix pthread_kill use after free
  • #13530 sched/signal: Simplified Implementation for SIGEV_THREAD_TID
  • #12283 sched/signal: There is no need to use sched_[un]lock
  • #12553 sched/tcb: amend pull/12320  

MM

  • #12550 mm: add mm_initialize_pool, make pool more flexible
  • #12556 mm: mm_threshold perfer from init
  • #12501 mm/iob: Simplify IOB alloc/free logic
  • #12923 mm/map/vm_region.c: Fix usage of void* arithmetics
  • #12946 mm/mempool: rename the mempool_alloc and mempool_free function
  • #12659 mm_ubsan: add dummy to bypass runtime actions
  • #12646 mm_ubsan: add implement for dynamic_type_cache_miss

libc

  • #12672 add rint and expm1 function to cmath from libm
  • #13011 lib_getcwd:Fix the Name in the function description.
  • #12966 lib_remove:Repair the logical judgment
  • #12890 libc: Add macro restrictions to code that uses floating point numbers
  • #13111 libc: compile stackchk function by default
  • #12953 libs: fix the default value of process-shared attribute
  • #12975 libs: fix the default value of process-shared attribute
  • #12605 libc: scanf, printf %z change switch const to if
  • #12585 libc/execinfo: extract a common backtrace format function
  • #13013 libc/msic: Implement get_nprocs API
  • #13381 libc/misc/crc32: crc32 add slow mode, optional decrease size
  • #13441 libc/netdb: Remove unnecessary CONFIG_LIBC_NETDB checks
  • #13025 libc/netdb: Separate IPv4 and IPv6 cache size limit
  • #13220 libc/sysconf: add _SC_GETPW_R_SIZE_MAX
  • #13479 libc/time: add g_lcl_lock to protect local context in localsub
  • #13080 libc/time: remove lib_strptime
  • #12693 libc/unistd: added an implementation of the lib_flock function
  • #12609 libc/x86_64: port string functions from bionic
  • #13110 libcxxabi: libcxxabi enables exceptions by default
  • #13079 libs/libc/obstack: correctly append null byte at the end of string
  • #13482 libs/libc/obstack: implement ptr and int growing functions
  • #13495 libs/libc/obstack: revert invalid null byte append to obstack_vprintf
  • #13185 libs/libc/stdio/*printf *scanf:Add string serialization and deserialization functions
  • #13294 libs/libm: fix epsilon relaxation in log and logf
  • #13307 libs/libm/libm: apply epsilon relax factor only if epsilon is small
  • #12568 libm{libm|newlib}: fix broken sincos optimization for GCC
  • #12811 libm/copysign: respect signed zero/NaN handling in copysign
  • #13174 syscall: delete getrandom in syscall because it have moved to lib

tools

various

Build System

New Features

  • #12904 [Cross-Platform] Remove Unix-specific code in savedefconfig and replace it with cmake script
  • #12910 [cmake] add_application supports only registration but not compilation
  • #12964 [cmake] split the archive process to avoid parameter too long problems
  • #13019 [cmake] add nuttx_post and app_context inter targets for timing control
  • #12908 [Win32 sim] enable win32 native platfrom sim compilation by CMake fix compilation error
  • #12900 arch/sim/src/cmake/Toolchain.cmake: macOS fix unknown options: --gc-sections
  • #12856 build: Fix libc/pwd CMakeLists.txt
  • #13347 build: fix memory manager compile options for CMake
  • #12859 build: Fix Toolchain.cmake for CONFIG_SIM_ASAN enabled
  • #12880 build: set CMake policy to allow FetchContent_Populate
  • #12784 build/cmake: add user_ldscript preprocessing
  • #12866 build/cmake: fix system include dir for PROTECTED mode
  • #13143 board/maix-bit: initial cmake support
  • #13090 board/qemu-armv7a: add CMake support
  • #12868 boards/rv-virt: cmake for pnsh and nsbi
  • #13175 Cmake: [arch arm] added initial support for MSYS2
  • #13389 cmake: add support for PCI
  • #12516 cmake: reuse OpenAMP own CMake script for CMake build
  • #12592 cmake: refine sim cmake redefine symbols
  • #13449 cmake: Refactor extra_lib tagert,build include_arch path,refine sim link script target
  • #12667 cmake: strip file full path to save the code size
  • #13451 cmake: support openlibm,dhara,libmcs,lic regex CMake build scripts
  • #12608 cmake/add_library: enable library install by default
  • #12714 cmake/boards: fix build break on custom board
  • #13085 CMakeLists.txt: warning D9002 on Windows + msvc
  • #13253 cmake/nuttx_kconfig.cmake: fixed the correct .config path in the buid folder
  • #13276 cmake/tricore: filter out nostdlib in linker phase to avoid build break
  • #13499 libc: add missing preadv/pwritev in CMakeLists.txt
  • #12700 riscv/cmake: fix Toolchain.cmake
  • #12694 riscv/k230: fix apps ROMFS cmake
  • #12996 riscv/qemu-rv: add RPTUN cmake
  • #12634 sim/cmake: enable garbage collection of unused input sections
  • #12721 tools/testbuild.sh: add option -N use CMake with Ninja
  • #12805 tools/testbuild.sh: added store compilation artifacts for cmake
  • #12724 tricore/cmake: add support of cmake build for tricore

Bug Fixes

  • #12558 [bugfix] cmake:fix a few issues during CMake build
  • #12915 [bugfix] fix CMake build block when enable LTO
  • #12582 Fix cmake for cxd56xx
  • #12581 cmake: Fix build failure when -DNUTTX_APPS_DIR is specified
  • #13171 CMake: fix CMake compile errors during the protected build mode
  • #13081 cmake: fix invalid syntax when generating version.h from tags

Architectural Support

New Architectures

Architecture Improvements

  • #12460 arch/risc-v/common: provide architecture specific perfmon bindings.
  • #12546 arch/riscv: fix NuttSBI PMP config

Driver Support

New Driver Support

  • #11605 Coresight: add init coresight driver framework

Drivers Improvements

Board Support

New Board Support

  • #13248 arm: Add support for CSK6011A SOC and CSK6011A-NANO board
  • #11709 at32uc3a0: Initial work for SimpleMachines' Mizar32-A
  • #12813 boards/esp32s3: Add initial support to the ESP32-S3-Korvo-2 board
  • #13467 boards/esp32s3: add support to esp32s3-lhcbit board

Boards Improvements

  • #12878 arm/stm32f103-minimum: Use common board MFRC522
  • #12973 board/arm/rp2040/seeed-xiao-studio-rp2040 GPIO configuration
  • #12738 board/linum-stm32h753bi: Add support to external sdram
  • #12882 board/lm3s6965-ek: restore 128K kflash
  • #12699 board/stm32f401rc-rs485: Add support to Device Configuration over Telnet
  • #12737 board/stm32f401rc-rs485: Add support to MAX7219 8x8 LED Matrix
  • #13516 boards: Update EXAMPLES_SOTEST_DEVMINOR to EXAMPLES_SOTEST_DEVMINOR_MAX
  • #12743 boards/arm/rp2040: Userled configuration to Seeed-Stdio RP2040
  • #13142 boards/arm/stm32/stm32f4discovery: Add support to RFID MFRC522
  • #13440 boards/arm/stm32h7/stm32h745i-disco: Add RPTUN support
  • #12825 boards/armv5: Make ARMv5 boards work again
  • #12593 boards/stm32: DRV8825 driver
  • #12673 boards/esp32[c3|c6|h2|s2|s3]: Ignore etctmp in common board
  • #13124 boards/esp32s3_lan9250: deinitialize the ethernet device lan9250
  • #12716 boards/esp32s3: Increse the default stack size for usbnsh
  • #12763 boards/imx93-evk: add sdimage cleanup
  • #12876 boards/lm3s6965-ek: fix memory.ld for PROTECTED
  • #12598 boards/MIMXRT1020-EVK: Fix board I2C code to adapt to last IMXRT I2C/pi…
  • #13137 boards/risc-v/esp32c6/esp32c6-devkitm: Add support to RFID MFRC522
  • #12869 boards/rv-virt: unify RV32 config names
  • #13226 boards/sim: Defconfigs for nand and mnemofs
  • #12898 boards/xtensa/esp32s3: ESP32S3 Emmc Support
  • #13478 boardctl: add board control api to start slave core
  • #13273 boardcrtl: change BOARDCTL_TESTSET to BOARDIOC_SPINLOCK
  • #12867 LTDC for Linum board
  • #12987 nuttx/boards:Uniform initialization format for init_array.
  • #12544 riscv/nuttsbi: add MTVAL argument
  • #12637 Usbnsh to seed-xiao-rp2040 board
  • #12713 zynq_mpsoc/zcu111: add support for gpio and board auto led

File System

New FS

Significant Improvements

  • #13514 add sched note for littlefs/romfs/rpmsgfs
  • #12863 Fix the location of tmpfs pwrite write and Fixed some code check warnings
  • #13500 fs.h: fix a comment in file_operations
  • #12532 fs: add backtrace to where file opens
  • #13150 fs: add fs_heap, support shm/tmpfs/pseudofile with indepent heap
  • #12587 Fs: backtrace tweak
  • #13512 fs: Dump the list of files when the file description runs out
  • #13194 fs: nfs: Fix nfsmount error
  • #12978 fs: Rename node with inode.
  • #12969 Fslock optimize
  • #12937 fs/mnemofs: Fix journal log rw issue, rw size issue
  • #12945 fs/hostfs: Replace strcpy with memcpy
  • #13443 fs_inode:Change the type of i_crefs to atomic_int
  • #13458 fs_dup2 bug fix, memleak
  • #13573 fs/chmod/fchmod/lchmod: only set permissions by mode_t and ignore othjer bits
  • #12931 fs/epoll: Optimize implementation details
  • #12615 fs/fat: Fix Fseek Bug When File Size Is Multiple of Cluster Size
  • #12548 fs/fat/fs_fat32.c Return EOF when reading past the end of the file.
  • #13521 fs/dump: correct SCHED_DUMP_ON_EXIT to DUMP_ON_EXIT
  • #12990 fs/mmap: Fix build warning with [-Wmaybe-uninitialized].
  • #13132 fs/procfs: Supports any number of thread displays
  • #13123 fs/shmfs:Avoid an integer overflow
  • #12790 fs/spiffs: Return OK on spiffs_fstat success
  • #13407 fs/mmap: Add MADV_HUGEPAGE definitions
  • #13406 fs/mmap: Ensure anonymous pages are initialized to zero
  • #12661 fs/mnemofs: Adds Block Allocator
  • #12668 fs/mnemofs: Add parent iterator and path methods.
  • #12680 fs/mnemofs: Add LRU and CTZ methods
  • #12683 fs/mnemofs: Add journal methods.
  • #12702 fs/mnemofs: Add master node and r/w methods
  • #12943 fs/mnemofs: Autoformat
  • #12808 fs/mnemofs: Refactoring path logic, direntry size bug fix, open free bug fix
  • #12658 fs/mnemofs: Setup and VFS methods
  • #13475 fs/mount: add ftl proxy to mount block filesystem on mtd device
  • #13258 fs/mq_open: revise comments
  • #13326 fs/files_extend: Bug Fix
  • #13331 fs/inode: using inode reference to indicate unlink and simply code
  • #13077 Fsnotify
  • #12942 Hostfs support get filepath by ioctl
  • #12817 procfs/meminfo: free delaylist before reporting
  • #13058 procfs/mempool: fix did not remove when pool not enabled
  • #13092 rpmsgfs: fix out of bounds access caused by data transmission farmat
  • #13063 rpmsgfs: set fs type to rpmsgfs when mount through rpmsgfs
  • #13348 smartfs procfs: fix double declare g_smartfs_operations
  • #12939 rpmsgfs_client:Fix error return exception
  • #12941 rpmsgfs: support filelock
  • #13098 tmpfs: old data was loaded when SEEK_SET beyond end of the file
  • #13490 vfs:fix a type mismatch issue and a typo


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