
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
* [#11944](https://github.com/apache/nuttx/pull/11944) sched: Fix user task exception handling
* [#11498](https://github.com/apache/nuttx/pull/11498) sched: move etc romfs mount from nsh to sched/init
* [#11846](https://github.com/apache/nuttx/pull/11846) sched: remove unused group link node
* [#11950](https://github.com/apache/nuttx/pull/11950) sched: replace some global variables to macro
* [#11769](https://github.com/apache/nuttx/pull/11769) sched: rw_sem: replace mutex with spinlock
* [#11818](https://github.com/apache/nuttx/pull/11818) sched.h: fix CPU_EQUAL(s1, s2) write error
* [#11949](https://github.com/apache/nuttx/pull/11949) sched/cpu: replace up_cpu_index() to this_cpu()
* [#11816](https://github.com/apache/nuttx/pull/11816) sched/cpuload: remove ciritical_section() to fix recursive
* [#11839](https://github.com/apache/nuttx/pull/11839) sched/environ: check envcp validity before hold sched_lock()
* [#11848](https://github.com/apache/nuttx/pull/11848) sched/group: change type of task group member to single queue
* [#11832](https://github.com/apache/nuttx/pull/11832) sched/group: move task group into task_tcb_s to improve performance
* [#11838](https://github.com/apache/nuttx/pull/11838) sched/group: replace group_findbypid to task_getgroup
* [#11885](https://github.com/apache/nuttx/pull/11885) sched/group: set clear flag if the group is not really needed
* [#11971](https://github.com/apache/nuttx/pull/11971) sched/init: move task list table from data to bss
* [#11542](https://github.com/apache/nuttx/pull/11542) sched/logging: add task activation/exit logs
* [#11854](https://github.com/apache/nuttx/pull/11854) sched/pthread: fix memory leak of pthread_tcb_s
* [#11898](https://github.com/apache/nuttx/pull/11898) sched/pthread/join: refactor pthread join to support join task
* [#11890](https://github.com/apache/nuttx/pull/11890) sched/pthread/join: remove unused joininfo
* [#11891](https://github.com/apache/nuttx/pull/11891) sched/pthread: replace pthread_sem_give() to nxsem_post() to unify the post method
* [#11972](https://github.com/apache/nuttx/pull/11972) sched/signal: merge allocate of signal pool
* [#11916](https://github.com/apache/nuttx/pull/11916) sched/signal: move unblock signal info to stack
* [#11925](https://github.com/apache/nuttx/pull/11925) sched/stdio/file: unify group file list to common single queue
* [#11840](https://github.com/apache/nuttx/pull/11840) sched/task: save argument counter to avoid limit check
* [#11948](https://github.com/apache/nuttx/pull/11948) sched/tasklist: replace task status list with macro definition
* [#11774](https://github.com/apache/nuttx/pull/11774) sched/tcb: add preserved tcb flag to support static tcb
* [#11777](https://github.com/apache/nuttx/pull/11777) sched/tls: inline group info in flat mode to improve performance
* [#11953](https://github.com/apache/nuttx/pull/11953) sched/wqueue: replace some global variables to macro |
mm
* [#11921](https://github.com/apache/nuttx/pull/11921) mm: Using Macros Instead of Memory to Fill Labels
* [#11884](https://github.com/apache/nuttx/pull/11884) mm/kconfig: fix typo in MM_DEFAULT_ALIGNMENT |
libs
* [#11526](https://github.com/apache/nuttx/pull/11526) libc.csv: Fix qsort signature with unexpected quotation mark
* [#11977](https://github.com/apache/nuttx/pull/11977) libc/uname: Add option to disable uname timestamp
* [#11772](https://github.com/apache/nuttx/pull/11772) libm/newlib: fix support for x86_64
* [#11889](https://github.com/apache/nuttx/pull/11889) libs/libc/string: fix memmem() boundary case when needle is at end of haystack
* [#11474](https://github.com/apache/nuttx/pull/11474) libcxx.defs: appease "expr: syntax error" messages with clang
* [#11556](https://github.com/apache/nuttx/pull/11556) libcxx: Fix CMake compile with correct CMAKE_CXX_STANDARD
* [#11918](https://github.com/apache/nuttx/pull/11918) libxx: ibcxxabi: Path <cxxabi.h> not found |
misc
* [#11486](https://github.com/apache/nuttx/pull/11486) assert: fix flags type, should be irqstate_t
* [#11796](https://github.com/apache/nuttx/pull/11796) assert/panic: disable panic message to save the code size
* [#11989](https://github.com/apache/nuttx/pull/11989) audio: libsrc
* [#11464](https://github.com/apache/nuttx/pull/11464) binfmt/libelf: adjust log levels of a few binfmt logs
* [#11904](https://github.com/apache/nuttx/pull/11904) binfmt/loadmodule: replace kmm_free() to lib_free()
* [#11862](https://github.com/apache/nuttx/pull/11862) binfmt/task/member: remove invaild membership reverse
* [#11733](https://github.com/apache/nuttx/pull/11733) include/rpmsg/rpmsg.h: remove temporary define
* [#11640](https://github.com/apache/nuttx/pull/11640) include/threads.h: Fix typo in mtx_timedlock
* [#11466](https://github.com/apache/nuttx/pull/11466) include/types.h: make 64-bit time_t back to unsigned
* [#11805](https://github.com/apache/nuttx/pull/11805) list: rename container_of to list_container_of from public header
* [#11903](https://github.com/apache/nuttx/pull/11903) Revert "assert/panic: disable panic message to save the code size"
* [#11858](https://github.com/apache/nuttx/pull/11858) Replace PRIxPTR with %p and remove the cast of (uintptr_t)
* [#11686](https://github.com/apache/nuttx/pull/11686) openamp: Fix void pointer arithmetic in openamp to remove compilation…
* [#11786](https://github.com/apache/nuttx/pull/11786) tls: report warning if pthread enabled only
|
Changes to the Build System
Bug Fixes
* [#11914](https://github.com/apache/nuttx/pull/11914) cmake: add initial KERNEL mode support
* [#11579](https://github.com/apache/nuttx/pull/11579) cmake: add support for Ubuntu stock toolchain for risc-v
* [#11736](https://github.com/apache/nuttx/pull/11736) cmake: add target that define in external moduleCMakeLists.txt
* [#11545](https://github.com/apache/nuttx/pull/11545) cmake: arm/armv8-r: init armv8-r cmake build
* [#11788](https://github.com/apache/nuttx/pull/11788) cmake: fix empty BASE_DEFCONFIG
* [#11749](https://github.com/apache/nuttx/pull/11749) cmake: fix external library mode
* [#11893](https://github.com/apache/nuttx/pull/11893) cmake: fix libxx header file search path issue and enable libxx for CMake build
* [#11745](https://github.com/apache/nuttx/pull/11745) cmake: fix the problems of using cmake to compile custom board
* [#11667](https://github.com/apache/nuttx/pull/11667) cmake: Fixed nucleo-u5a5zj-q
* [#11457](https://github.com/apache/nuttx/pull/11457) cmake: init arch arm64 CMake and qemu-armv8a build
* [#11415](https://github.com/apache/nuttx/pull/11415) cmake: set NUTTX variable
* [#11488](https://github.com/apache/nuttx/pull/11488) cmake: some fixes for sim/macOS + cmake + libcxx
* [#11475](https://github.com/apache/nuttx/pull/11475) cmake: some fixes for cmake build of libcxx
* [#11735](https://github.com/apache/nuttx/pull/11735) cmake/toolchain: fix compiler warning on ARM32
* [#11624](https://github.com/apache/nuttx/pull/11624) compiler/tasking: fix unreachable code on tasking toolchain
* [#11202](https://github.com/apache/nuttx/pull/11202) tools: Allow apps to customize NuttX build time variables
* [#11808](https://github.com/apache/nuttx/pull/11808) tools: Fix broken exported CMake toolchain file link dependencies
* [#11900](https://github.com/apache/nuttx/pull/11900) tools: Fix cmake-format wrong execution order
* [#11942](https://github.com/apache/nuttx/pull/11942) tools: Fix Export.mk
* [#11908](https://github.com/apache/nuttx/pull/11908) tools: Improve export by adding NuttX current target (arch, chip, board)
* [#11548](https://github.com/apache/nuttx/pull/11548) tools/export: add Zig support for kernel build on linux host
* [#11920](https://github.com/apache/nuttx/pull/11920) tools/gdb: memdump: Enhance memdump
* [#11506](https://github.com/apache/nuttx/pull/11506) tools/link.sh: fix an incorrect variable
* [#11888](https://github.com/apache/nuttx/pull/11888) tools/minidumpserver.py: support quit with gdb
* [#11448](https://github.com/apache/nuttx/pull/11448) tools/mkallsyms: support sorting symbol tables by name
* [#11606](https://github.com/apache/nuttx/pull/11606) tools/nxstyle: can use ',' in the string when declaring it
* [#11710](https://github.com/apache/nuttx/pull/11710) toolchain/lto: enable lto flags only on GNU toolchain
* [#11711](https://github.com/apache/nuttx/pull/11711) toolchain/tasking: add dependencies rules for tasking compiler |
Architectural Support
New Architecture Support
* [#11707](https://github.com/apache/nuttx/pull/11707) arch/tricore: add Infineon AURIX TriCore support
|
Architecture Improvements
Driver Support
New Driver Support
* [#11767](https://github.com/apache/nuttx/pull/11767) drivers/analog/hx711: Add driver for hx711 weight scale ADC
* [#11868](https://github.com/apache/nuttx/pull/11868) drivers/can/sja1000: Add SJA1000 CAN driver support
* [#11806](https://github.com/apache/nuttx/pull/11806) drivers/mtd/mtd_nandram: Adds virtual NAND Flash simulator
* [#11552](https://github.com/apache/nuttx/pull/11552) drivers/usbhost: Add a USB bluetooth driver
|
Drivers With Significant Improvements
* [#11589](https://github.com/apache/nuttx/pull/11589) drivers/alt1250: Notice instance information
* [#11829](https://github.com/apache/nuttx/pull/11829) drivers/analog/hx711: Fix few issues in hx711 driver
* [#11941](https://github.com/apache/nuttx/pull/11941) drivers/devicetree: add common FDT utilities APIs
* [#11947](https://github.com/apache/nuttx/pull/11947) drivers/ioexpander: icjx: add support for multiple pin read/write
* [#11590](https://github.com/apache/nuttx/pull/11590) drivers/ioexpander: add support for iC-JX expander
* [#11423](https://github.com/apache/nuttx/pull/11423) drivers/mtd: Add MTD for AT25 eeprom
* [#11886](https://github.com/apache/nuttx/pull/11886) drivers/mtd: mt_config_fs : update nvs to support align size
* [#11671](https://github.com/apache/nuttx/pull/11671) drivers/modem/alt1250: Add LTE_CMDID_RESTARTAPI command
* [#11580](https://github.com/apache/nuttx/pull/11580) drivers/note: fix build with CONFIG_SCHED_INSTRUMENTATION_FUNCTION
* [#11857](https://github.com/apache/nuttx/pull/11857) drivers/pipe: Change to the block mode by file_ioctl(FIONBIO)
* [#11618](https://github.com/apache/nuttx/pull/11618) drivers/rpmsg: It should be possible to use ping without rptun being enabled, so striped rptun_ping out of rptun and rename to rpmsg_ping.
* [#11714](https://github.com/apache/nuttx/pull/11714) drivers/rpmsg: make all rpmsg services depend on RPMSG
* [#11699](https://github.com/apache/nuttx/pull/11699) drivers/rpmsg/ping: Replace UINT_MAX with CLOCK_MAX
* [#11483](https://github.com/apache/nuttx/pull/11483) drivers/rpmsg/rpmsgdev_server: do not notify the client when the fds has teardown
* [#11481](https://github.com/apache/nuttx/pull/11481) drivers/rpmsg/rpmsg_sockif: recv/recvmsg return 0 when peer close
* [#11591](https://github.com/apache/nuttx/pull/11591) drivers/rpmsgfs: decoupling rpmsgfs server and rpmsg virtio.
* [#11510](https://github.com/apache/nuttx/pull/11510) drivers/rpmsgfs: synchronous message transfer format
* [#11515](https://github.com/apache/nuttx/pull/11515) drivers/rpmsgmtd: use fixed length struct to transfer between two cpus
* [#11687](https://github.com/apache/nuttx/pull/11687) drivers/rptun: add explicit initialization for variable
* [#11537](https://github.com/apache/nuttx/pull/11537) drivers/rptun: decoupling rptun ping and rptun_virtio_device, rptun ping and rptun.
* [#11712](https://github.com/apache/nuttx/pull/11712) drivers/rptun: dump: move rptun_dump.c to rptun.c, remove redundant code.
* [#11603](https://github.com/apache/nuttx/pull/11603) drivers/rptun: extract rptun char to rpmsg/rpmsg.c
* [#11741](https://github.com/apache/nuttx/pull/11741) drivers/rptun: ioctl: remove rptun_panic and rptun_dump_all
* [#11713](https://github.com/apache/nuttx/pull/11713) drivers/rptun: ioctl: Strip rpmsg ioctl and rptun ioctl.
* [#11487](https://github.com/apache/nuttx/pull/11487) drivers/rptun: ping: support data checksum and data transfer rate calculation
* [#11520](https://github.com/apache/nuttx/pull/11520) drivers/rptun: remove rptun work queue related unused code
* [#11627](https://github.com/apache/nuttx/pull/11627) drivers/rptun: remove temporarily retained RPTUNIOC_xxx definitions.
* [#11454](https://github.com/apache/nuttx/pull/11454) drivers/rptun: Select OPENMAP under RPTUN
* [#11536](https://github.com/apache/nuttx/pull/11536) drivers/rptun: Strip rpmsg and rptun.
* [#11719](https://github.com/apache/nuttx/pull/11719) drivers/rptun: should initialize the vring da when da == 0 || da == -1
* [#11874](https://github.com/apache/nuttx/pull/11874) drivers/sensors: add uorb support for lsm9ds1
* [#11628](https://github.com/apache/nuttx/pull/11628) drivers/sensors: delete warning about argument type in bmi160
* [#11792](https://github.com/apache/nuttx/pull/11792) drivers/sensors: Remove duplicated defnitions from bmi160.h
* [#11789](https://github.com/apache/nuttx/pull/11789) drivers/sensors/bmi160: fix compilation errors
* [#11923](https://github.com/apache/nuttx/pull/11923) drivers/sensors/bmi270: fix accel and gyro data position
* [#11525](https://github.com/apache/nuttx/pull/11525) drivers/serial/pl011: add support of uart0/2/3 port
* [#11813](https://github.com/apache/nuttx/pull/11813) drivers/syslog: syslog_rpmsg: handle syslog_rpmsg_transfer() return value
* [#11965](https://github.com/apache/nuttx/pull/11965) drivers/usbdev/cdcecm: remove duplicate assignment statements
* [#11560](https://github.com/apache/nuttx/pull/11560) drivers/usbhost: Update USB bluetooth driver
* [#11859](https://github.com/apache/nuttx/pull/11859) drivers/video: Update for improvement and bug fix
* [#11936](https://github.com/apache/nuttx/pull/11936) drivers/video/V4l2: header update
* [#11887](https://github.com/apache/nuttx/pull/11887) drivers/video/v4l2: refactor
* [#11716](https://github.com/apache/nuttx/pull/11716) drivers/virtio: move metal_init to the virtio_register_drivers()
* [#11478](https://github.com/apache/nuttx/pull/11478) drivers/virtio-mmio: ack the interrupt as soon as possible
* [#11482](https://github.com/apache/nuttx/pull/11482) drivers/virtio-mmio: avoid output error log when not found mmio device
* [#11485](https://github.com/apache/nuttx/pull/11485) drivers/virtio-mmio: use byte to byte in read/write config when length != 1,2,4,8
* [#11592](https://github.com/apache/nuttx/pull/11592) drivers/wireless: bcmf_driver:wlan interface status reset by unsolicited wpa packet
* [#11617](https://github.com/apache/nuttx/pull/11617) drivers/wireless: IEEE802.15.4 support for nrf52
* [#11701](https://github.com/apache/nuttx/pull/11701) drivers/wireless: ieee802154_mac: add TRACEDUMP request
* [#11705](https://github.com/apache/nuttx/pull/11705) drivers/wireless: mrf24j40: add support for IEEE802154_ATTR_PHY_REGDUMP
* [#11616](https://github.com/apache/nuttx/pull/11616) drivers/wireless: mrf24j40: minor fixes
* [#11535](https://github.com/apache/nuttx/pull/11535) drivers/wireless/bluetooth: Prevent btsak from repeatedly showing the same error.
|
Board Support
New Board Support
* [#11960](https://github.com/apache/nuttx/pull/11960) boards: add two new gd32f4 boards
* [#11583](https://github.com/apache/nuttx/pull/11583) boards: Bring up changes from nuttx/pci branch (2nd attempt)
* [#11991](https://github.com/apache/nuttx/pull/11991) boards: esp32c6 devkitm support
* [#11945](https://github.com/apache/nuttx/pull/11945) boards: Initial port for i.MX93 and i.MX93EVK board
* [#11879](https://github.com/apache/nuttx/pull/11879) boards/stm32h7: add Waveshare OpenH743I board
* [#11607](https://github.com/apache/nuttx/pull/11607) boards/arm/xmc4: add xmc4800-relax to nuttx
|
Boards With Improvements
File System
improvements
* [#11841](https://github.com/apache/nuttx/pull/11841) fs: enhance file_allocate_from_tcb() mulit-threads saftey & remove memcpy when close the fd
* [#11896](https://github.com/apache/nuttx/pull/11896) fs: revise comments and harden nx_mount logic
* [#11892](https://github.com/apache/nuttx/pull/11892) fs/driver: using nx_unlink to call unlink ops to release some resource
* [#11723](https://github.com/apache/nuttx/pull/11723) fs/fat: fs_fat32: fix default return value of fat_ioctl().
* [#11850](https://github.com/apache/nuttx/pull/11850) fs/inode: add pre-allocated task files to avoid allocator access
* [#11958](https://github.com/apache/nuttx/pull/11958) fs/inode: replace some global variables to macro
* [#11729](https://github.com/apache/nuttx/pull/11729) fs/littlefs: Add to get the full path
* [#11680](https://github.com/apache/nuttx/pull/11680) fs/mount: add FS_RPMSGFS as cause of NODFS_SUPPORT
* [#11540](https://github.com/apache/nuttx/pull/11540) fs/partition: fs_mbr: fix for MBR block count calculation.
* [#11776](https://github.com/apache/nuttx/pull/11776) fs/procfs: add build config to /proc/version
* [#11550](https://github.com/apache/nuttx/pull/11550) fs/romfs: Move rn_child/rn_count before rn_namesize
* [#11629](https://github.com/apache/nuttx/pull/11629) fs/shmfs: Fix CONFIG_FS_SHM -> CONFIG_FS_SHMFS
* [#11634](https://github.com/apache/nuttx/pull/11634) fs/shmfs: Fix stat() system call for shmfs object
* [#11635](https://github.com/apache/nuttx/pull/11635) fs/shmfs: Fix shmfs_truncate
* [#11647](https://github.com/apache/nuttx/pull/11647) fs/vfat: Fix typo in the macro DIRSEC_BYTENDX
* [#11724](https://github.com/apache/nuttx/pull/11724) fs/vfs: Implement Filelock |
Networking
Improvements
* [#11495](https://github.com/apache/nuttx/pull/11495) net: add support for multi PHY and optionally use it on imxrt
* [#11759](https://github.com/apache/nuttx/pull/11759) net: Fix minor coding problems
* [#11492](https://github.com/apache/nuttx/pull/11492) net: Only call arp_send for PF_INET and icmpv6_neighbor for PF_INET6
* [#11491](https://github.com/apache/nuttx/pull/11491) net/can: Release IOB when failed to queue in datahandler
* [#11856](https://github.com/apache/nuttx/pull/11856) net/local: Fix the minor issue found
* [#11480](https://github.com/apache/nuttx/pull/11480) net/local: local_sendmsg: fix peer->lc_cfps[] array out-of-range write
* [#11804](https://github.com/apache/nuttx/pull/11804) net/local: Minor local socket improvement
* [#11653](https://github.com/apache/nuttx/pull/11653) net/nat: Fix ICMP Error MSG Processing
* [#11744](https://github.com/apache/nuttx/pull/11744) net/pkt: Support binding to devices other than ETH
* [#11509](https://github.com/apache/nuttx/pull/11509) net/route: Support longest prefix match for routing
* [#11649](https://github.com/apache/nuttx/pull/11649) net/rpmsgsock: Rename rpmsg_socket_getconnname to rpmsg_socket_getpeername
* [#11578](https://github.com/apache/nuttx/pull/11578) net/support to ARP Address Conflict Detection
* [#11909](https://github.com/apache/nuttx/pull/11909) net/tcp: return true only when send window updates
* [#11910](https://github.com/apache/nuttx/pull/11910) net/tun: in tun_write, try to release iob before iob_prepare
* [#11639](https://github.com/apache/nuttx/pull/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:
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.