Work In Progress
Work In Progress
What's New In This Release
Major Changes to Core OS
sched
- #11944 sched: Fix user task exception handling
- #11498 sched: move etc romfs mount from nsh to sched/init
- #11846 sched: remove unused group link node
- #11950 sched: replace some global variables to macro
- #11769 sched: rw_sem: replace mutex with spinlock
- #11818 sched.h: fix CPU_EQUAL(s1, s2) write error
- #11949 sched/cpu: replace up_cpu_index() to this_cpu()
- #11816 sched/cpuload: remove ciritical_section() to fix recursive
- #11839 sched/environ: check envcp validity before hold sched_lock()
- #11848 sched/group: change type of task group member to single queue
- #11832 sched/group: move task group into task_tcb_s to improve performance
- #11838 sched/group: replace group_findbypid to task_getgroup
- #11885 sched/group: set clear flag if the group is not really needed
- #11971 sched/init: move task list table from data to bss
- #11542 sched/logging: add task activation/exit logs
- #11854 sched/pthread: fix memory leak of pthread_tcb_s
- #11898 sched/pthread/join: refactor pthread join to support join task
- #11890 sched/pthread/join: remove unused joininfo
- #11891 sched/pthread: replace pthread_sem_give() to nxsem_post() to unify the post method
- #11972 sched/signal: merge allocate of signal pool
- #11916 sched/signal: move unblock signal info to stack
- #11925 sched/stdio/file: unify group file list to common single queue
- #11840 sched/task: save argument counter to avoid limit check
- #11948 sched/tasklist: replace task status list with macro definition
- #11774 sched/tcb: add preserved tcb flag to support static tcb
- #11777 sched/tls: inline group info in flat mode to improve performance
- #11953 sched/wqueue: replace some global variables to macro
mm
libs
- #11526 libc.csv: Fix qsort signature with unexpected quotation mark
- #11977 libc/uname: Add option to disable uname timestamp
- #11772 libm/newlib: fix support for x86_64
- #11889 libs/libc/string: fix memmem() boundary case when needle is at end of haystack
- #11474 libcxx.defs: appease "expr: syntax error" messages with clang
- #11556 libcxx: Fix CMake compile with correct CMAKE_CXX_STANDARD
- #11918 libxx: ibcxxabi: Path <cxxabi.h> not found
misc
- #11486 assert: fix flags type, should be irqstate_t
- #11796 assert/panic: disable panic message to save the code size
- #11989 audio: libsrc
- #11464 binfmt/libelf: adjust log levels of a few binfmt logs
- #11904 binfmt/loadmodule: replace kmm_free() to lib_free()
- #11862 binfmt/task/member: remove invaild membership reverse
- #11733 include/rpmsg/rpmsg.h: remove temporary define
- #11640 include/threads.h: Fix typo in mtx_timedlock
- #11466 include/types.h: make 64-bit time_t back to unsigned
- #11805 list: rename container_of to list_container_of from public header
- #11903 Revert "assert/panic: disable panic message to save the code size"
- #11858 Replace PRIxPTR with %p and remove the cast of (uintptr_t)
- #11686 openamp: Fix void pointer arithmetic in openamp to remove compilation…
- #11786 tls: report warning if pthread enabled only
Changes to the Build System
Bug Fixes
- #11914 cmake: add initial KERNEL mode support
- #11579 cmake: add support for Ubuntu stock toolchain for risc-v
- #11736 cmake: add target that define in external moduleCMakeLists.txt
- #11545 cmake: arm/armv8-r: init armv8-r cmake build
- #11788 cmake: fix empty BASE_DEFCONFIG
- #11749 cmake: fix external library mode
- #11893 cmake: fix libxx header file search path issue and enable libxx for CMake build
- #11745 cmake: fix the problems of using cmake to compile custom board
- #11667 cmake: Fixed nucleo-u5a5zj-q
- #11457 cmake: init arch arm64 CMake and qemu-armv8a build
- #11415 cmake: set NUTTX variable
- #11488 cmake: some fixes for sim/macOS + cmake + libcxx
- #11475 cmake: some fixes for cmake build of libcxx
- #11735 cmake/toolchain: fix compiler warning on ARM32
- #11624 compiler/tasking: fix unreachable code on tasking toolchain
- #11202 tools: Allow apps to customize NuttX build time variables
- #11808 tools: Fix broken exported CMake toolchain file link dependencies
- #11900 tools: Fix cmake-format wrong execution order
- #11942 tools: Fix Export.mk
- #11908 tools: Improve export by adding NuttX current target (arch, chip, board)
- #11548 tools/export: add Zig support for kernel build on linux host
- #11920 tools/gdb: memdump: Enhance memdump
- #11506 tools/link.sh: fix an incorrect variable
- #11888 tools/minidumpserver.py: support quit with gdb
- #11448 tools/mkallsyms: support sorting symbol tables by name
- #11606 tools/nxstyle: can use ',' in the string when declaring it
- #11710 toolchain/lto: enable lto flags only on GNU toolchain
- #11711 toolchain/tasking: add dependencies rules for tasking compiler
Architectural Support
New Architecture Support
- #11707 arch/tricore: add Infineon AURIX TriCore support
Architecture Improvements
Driver Support
New Driver Support
Drivers With Significant Improvements
Board Support
New Board Support
Boards With Significant Improvements
File System
improvements
- #11841 fs: enhance file_allocate_from_tcb() mulit-threads saftey & remove memcpy when close the fd
- #11896 fs: revise comments and harden nx_mount logic
- #11892 fs/driver: using nx_unlink to call unlink ops to release some resource
- #11723 fs/fat: fs_fat32: fix default return value of fat_ioctl().
- #11850 fs/inode: add pre-allocated task files to avoid allocator access
- #11958 fs/inode: replace some global variables to macro
- #11729 fs/littlefs: Add to get the full path
- #11680 fs/mount: add FS_RPMSGFS as cause of NODFS_SUPPORT
- #11540 fs/partition: fs_mbr: fix for MBR block count calculation.
- #11776 fs/procfs: add build config to /proc/version
- #11550 fs/romfs: Move rn_child/rn_count before rn_namesize
- #11629 fs/shmfs: Fix CONFIG_FS_SHM -> CONFIG_FS_SHMFS
- #11634 fs/shmfs: Fix stat() system call for shmfs object
- #11635 fs/shmfs: Fix shmfs_truncate
- #11647 fs/vfat: Fix typo in the macro DIRSEC_BYTENDX
- #11724 fs/vfs: Implement Filelock
Networking
Improvements
- #11495 net: add support for multi PHY and optionally use it on imxrt
- #11759 net: Fix minor coding problems
- #11492 net: Only call arp_send for PF_INET and icmpv6_neighbor for PF_INET6
- #11491 net/can: Release IOB when failed to queue in datahandler
- #11856 net/local: Fix the minor issue found
- #11480 net/local: local_sendmsg: fix peer->lc_cfps[] array out-of-range write
- #11804 net/local: Minor local socket improvement
- #11653 net/nat: Fix ICMP Error MSG Processing
- #11744 net/pkt: Support binding to devices other than ETH
- #11509 net/route: Support longest prefix match for routing
- #11649 net/rpmsgsock: Rename rpmsg_socket_getconnname to rpmsg_socket_getpeername
- #11578 net/support to ARP Address Conflict Detection
- #11909 net/tcp: return true only when send window updates
- #11910 net/tun: in tun_write, try to release iob before iob_prepare
- #11639 net/udp: Fix source address selection under IPv6
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:
- https://gitbox.apache.org/repos/asf?p=incubator-nuttx.git
- https://gitbox.apache.org/repos/asf?p=incubator-nuttx-apps.git
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.