DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Work In Progress
Work In Progress
What's New In This Release
Major Changes to Core OS
Sched
- #17287 sched/clock: Fix missing clock_inittime() call
- #17423 docs/sched/sched: Add documentation for different sleep interfaces
- #17482 sched/clock: Remove unnecessary preprocessor definition
- #17485 sched/misc: correct coredump log format
- #17517 sched/sched: Part 1: add high resolution timer (hrtimer) only (without os tick support with hrtimer) for NuttX
- #17535 sched/signal: assert if call timedwait from interrupt
- #17545 sched: merge task_tcb_s and pthread_tcb_s into tcb to simplify the code.
- #17546 sched/env_putenv:putenv is kernel function need use kmm_free
- #17564 Revert "sched/group: move task group into task_tcb_s to improve perfo…
- #17584 sched: Improvements on sched_timerexpiration.
- #17640 sched/wdog: Fix-up for SMP and Improvements.
- #17642 sched/hrtimer: hrtimer state machine improvement for SMP cases
- #17644 sched/signals: add support to partially or fully disable signals
- #17680 sched: Remove
CONFIG_SCHED_TICKLESS_TICK_ARGUMENT. - #17681 sched/wdog: fix race condition in wd_gettime()
- #17739 sched/task: fix Redundant memory allocation.
- #17781 sched/hrtimer: isolate SMP logic in hrtimer
- #17784 sched/hrtimer: Fix some functional correctness issues.
- #17796 sched/wdog: Simplify the wdog expiration handling.
- #17822 sched: binfmt remove csection
- #17823 sched: merge nxsched_timer_expiration() into nxsched_process_timer() to simplify tick process
- #17848 sched/hrtimer: Some improvements.
- #17912 sched/sched: Improve sched make and cmake scripts
- #17921 sched/hrtimer: fix Kconfig typo
- #17941 sched/tls: fix uninitialized argv pointer in task info
- #17953 sched/task: fix task_exit regression with critical section state
- #17955 sched/addrenv: replace critical section with spinlock for refs protec…
- #17957 sched/environ: rm cestion_in evn
- #17958 sched/irq: handle NULL ISR handler in irq_default_handler
- #17959 sched/signal: use spinlock to protect signal queues
- #17969 sched/sched_roundrobin.c: fix round-robin scheduling in SMP mode
- #17971 sched/list: some improvements.
- #17981 sched: stack debugging improvements
- #17985 sched/task: fix null pointer dereference in fork address environment …
- #17991 sched/signals: improvements for when all signals are disabled
- #17993 sched/wdog: Simplify tickless timer expiration.
- #18002 sched/sched: add sched_timer.c to improve tick processing and enable hrtimer support for scheduler
- #18007 sched/group: add spinlock in group_childstatus.c
- #18012 sched: add spinlock to sched_note_preemption and nxsched_critmon_pree…
- #18016 sched/task: MISRA/Coverity cleanups in scheduler, init, libc spawn, and ARMv8-R IRQ helpers
- #18026 sched/hrtimer: add option for list-based hrtimer management
- #18034 sched/environ: add interrupt context check to getenv
- #18037 sched/tls: fix thread ID initialization in tls_dup_info
- #18038 sched/pthread: use spin_lock_irqsave_nopreempt for mutex head lock
- #18040 sched: move process ID from kernel to TLS for faster access
- #18041 sched/pthread: remove duplicate robust mutex checking logic
- #18047 [BUG-FIX] Fix some bug of sched
- #18066 sched/irq: Avoid same static function name in different files
- #18070 sched/signal: fix the occasional issue where SIGCONT was not executed
- #18072 sched/wqueue: add configuring the stack of an hpwork/lpwork as static
- #18078 sched: add configuration to record the busy waiting time
- #18080 sched/sched: Modify the critical section interface name
- #18084 sched/irq: declare the object in scope
- #18086 sched/irq: avoid casting from signed int to unsigned int
- #18090 sched/irq: Every function must have exactly one exit point
- #18093 sched/irq: fix MISRA C problems for irq_chain.c
- #18098 sched/pthread: move pthread mutex from syscall to user-space
- #18105 sched/irq: Change the function parameter "regs" to "context"
- #18111 sched/irq: Avoid directly converting variables of type uintptr_t to void
- #18114 sched: add trace points during system startup and board initialization
- #18118 sched: fix regression and improve NULL pointer safety in task information functions
- #18122 sched/irq: Fix potential deadlock in irqchain_detach
- #18131 sched/hrtimer: Fix functional correctness issues.
- #18141 sched/hrtimer: refresh code comments to match implementation
- #18160 sched/irq: Add architecture-specific IRQ-to-index mapping interface
- #18174 sched/hrtimer: fix hrtimer regression introduced by recent update and add support for tickless with hrtimer
- #18175 sched/irq: functions should have exactly one exit point
- #18183 sched: Remove FS_PROCFS dependency for SCHED_CRITMONITOR
- #18184 sched: Remove legacy sched_resumescheduler.c
- #18187 sched: call spinlock nopreempt when need disable context swi…
- #18189 sched: replace critical section with spinlock
- #18190 sched/irq: Avoid negative array index in irqchain_dispatch
- #18191 sched/irq: Fix type mismatch in irq_dispatch (MISRA C-2012 Rule 10.3)
- #18192 sched/signal: Optimize code logic
- #18193 sched/semaphore: Fix HIS_CALLS metric violation for MISRA compliance
- #18196 sched: Add bounds checking to prevent OVERRUN defect
- #18197 sched: Fix null pointer dereference (FORWARD_NULL defect)
- #18198 sched: Reduce return points in sched_rrgetinterval() for MISRA compliance
- #18201 sched/semaphore: Code quality improvements and MISRA compliance fixes
- #18202 sched: Reduce return statements in sched_get_stackinfo() for MISRA compliance
- #18203 sched/irq: Consolidate IRQ bounds checking into IRQ_TO_NDX macro
- #18204 sched/irq: Avoid out-of-bounds array access
- #18205 sched_setpriority: Consolidate return statements for MISRA HIS compliance
- #18208 sched_setparam: Refactor nxsched_set_param() with helper functions for MISRA HIS compliance
- #18210 sched: Optimize reader-writer semaphore and achieve MISRA HIS goto compliance
- #18212 sched_getfiles: Consolidate return statements in nxsched_get_fdlist_from_tcb() for MISRA HIS compliance
- #18215 sched_profil: Move static variable to block scope for MISRA C 2012 compliance
- #18216 sched: Consolidate return statements for MISRA HIS compliance
- #18217 sched_profil: Consolidate return statements for MISRA HIS compliance
- #18220 sched_sysinfo: Consolidate return statements for MISRA HIS compliance
- #18221 sched_get_stateinfo: Move static array to block scope for MISRA C 2012 Rule 8.9
- #18223 sched_setscheduler: Eliminate goto statements and consolidate returns for MISRA HIS compliance
- #18224 sched/hrtimer: Fix functional correctness issues and improve the performance.
- #18237 sched: Consolidate return statements in sched_critmonitor() for MISRA HIS compliance
- #18227 sched_getscheduler: Consolidate return statements for MISRA HIS compliance
- #18235 sched_waitid: Code quality improvements for HIS compliance and complexity reduction
- #18239 sched_cpuload: Move static wdog to block scope for MISRA C 2012 Rule 8.9
- #18240 sched_sysinfo.c: misra_c_2012_rule_9_1_violation: uninit_use
- #18241 Fix critical SMP scheduler issues with CPU selection and ready-to-run list management
- #18255 sched/semaphore: optimize the source code
- #18270 sched/spinlock: Replace critical_section with spinlock.
- #18278 sched/sched: fix casting issue found by coverity
- #18284 sched/clock: replace atomic operations with sequence lock for tick counter
- #18306 sched: Fix CANCEL_FLAG_* macro definitions MISRA C:2012 Rule 10.4 violations
- #18307 sched/spawn: Fix MISRA C Rule 10.4 violations
- #18336 sched/waitpid: reduce cyclomatic complexity for HIS/MISRA compliance
- #18338 sched/semaphore: Add debug assert to detect mutex recursion.
- #18376 sched/mqueue: Enable receiving messages on an interrupt handler
- #18437 sched/clock: fix CLOCK_BOOTTIME and CLOCK_MONOTONIC handling
- #18438 sched/sched: fix typos and remove unused declarations in sched.h
- #18444 sched/sched: Add nxsched_abstick_sleep() and make nxsched_ticksleep() a wrapper around it
- #18448 sched/misc: fix incorrect mutex holder retrieval in assert backtrace
- #18450 sched/misc: fix potential out-of-bounds access in coredump stack emission
- #18451 sched/misc: fix incomplete data emission in coredump elf_emit function
MM
libc
tools
various
Major Changes to the Build System
New Features
Bug Fixes
Architectural Support
New Architecture Support
Driver Support
Drivers With Improvements
- #16925 drivers/timers/capture: fix typo in capture.h
- #17373 drivers/pci: Calculate PCI bar size use mask 0xffffffff
- #17375 drivers/pci: calculate bar size
- #17376 drivers/eeprom: Support PE/SE/CE commands
- #17379 drivers/pci: write legacy num to config sapce when enable legacy irq
- #17426 drivers/lcd/st7789.c: fix byte order in st7789_fill for 3 wires
- #17433 drivers/usbdev: fix cdcecm netdev can not enter running state
- #17441 drivers/can/can.c: fix broken O_NONBLOCK
- #17446 drivers/lpwan: Fix Kconfig SX1276 and SX1262 position
- #17455 note/drivers: Get taskname more safely.
- #17456 drivers/i3c: Revert "drivers/i3c: remove extra i3c_dev_register, do_daa has created them"
- #17464 drivers/mmcsd: Aligned Cmake with Make
- #17470 drivers/rpmsgdev: server functions enhanced
- #17491 drivers/usbhost: improve usbhost hid kbd
- #17498 drivers/timers/ptp: support ptp clock driver model,CLOCKFD and clock adjtime/settime/gettime for ptp device
- #17501 drivers/battery: fix event lost before service open
- #17510 drivers/ioexpander: add debounce and interrupt mask functions
- #17512 drivers/sensors/goldfish: support more sensors
- #17528 drivers/input: Adds a small extension to the Force Feedback (FF) input subsystem
- #17529 drivers/virtio: Fix DRIVERS_VIRTIO_INPUT configuration dependencies
- #17530 drivers: replace critical_section with spinlock
- #17531 drivers/timers: A small improvements in the drivers/timers subsystem
- #17540 drivers/timers: fix rtc_time struct
- #17541 drivers/virtio: if in assert, don't wait semaphore
- #17552 drivers/mtd: Add W25N SPI NAND flash driver
- #17554 drivers/rpmsg: Add rpmsg_get_signals API and rpmsg transport ops support
- #17586 drivers/net: fix "wapi save_config" and "wapi reconnect" commands
- #17597 drivers/net: setting loopback network driver sending task to the HPWORK queue
- #17604 drivers/mtd: add MTDIOC_ISBAD ioctl
- #17746 drivers/i2c: add ioexpander-based lower-half implementation for I2C bit-bang
- #17747 drivers/capture: add signal notification support and fake capture driver
- #17752 drivers/sensors: add a dynamic sensor debugging tool sensor_monitor
- #17760 drivers/rpmsg: port spi add debug log, low power feature and bug fixs
- #17763 drivers/sx127x: Add support to different bitrate and RX timeout
- #17764 drivers/adc: Use mutexlock to replace critical section protection
- #17769 drivers/sensors: update upper->parsebuffer every new line
- #17772 drivers/sensors: fix mpu9250 register function comments
- #17776 drivers/pty: fix memory leak when pty_destroy
- #17778 drivers/rpmsg: router double free and reconnect related bugs fix
- #17782 drivers/usrsock: replace net_lock with conn_lock
- #17783 drivers/Rpmsg: fix rpmsg dead lock and ns bind race condition problem
- #17787 drivers/rptun: fix rptun stop related deadlock and crash bugs
- #17797 drivers/can: replace critical-section mutex with spinlock
- #17802 drivers/virtio-gpu: Avoid calling free in IRQ
- #17805 drivers/net/e1000|igc.c: add PIDVID of NIC
- #17813 drivers/ioexpander: add enable & disable macro for gpio SETDEBOUNCE and SETMASK
- #17814 drivers/sensors: add get_info interface for gnss_uorb
- #17816 drivers/rptun: refactor rptun to decoupling the rptun and rpmsg virtio, make rptun can work with any virtio devices
- #17824 drivers/sensors: sensor bug fix - part 1
- #17833 drivers/net: fix igc build error
- #17837 drivers/sensors: add a new sensor type ENG
- #17842 drivers/net/rpmsgdrv.c: add bidirectional data netdev support
- #17845 drivers/mtd: Optimizations for RRAM/MRAM Compatibility and Erase Logic Robustness
- #17870 drivers/net: Fix crash in wifi_sim disconnect.
- #17871 drivers/virtio: Use arc4random_buf to generate MAC address.
- #17872 drivers/sensors/fakesensor: Remove GNSS dependency
- #17923 drivers/timers: check CONFIG_BOARD_LOOPSPERMSEC != 0 at runtime
- #17928 drivers/can: repair compiler error
- #17942 drivers/mmcsd: fix typo, it should be "Byte" by spec
- #17949 drivers/misc/optee: add missing addrenv header include
- #17989 drivers/usbhost_hidkbd: Fix small typo in usbhost_hidkbd.c
- #18005 drivers/rpmsg: remove unnecessary header files, revise make.def and cmake file
- #18014 drivers/serial/Kconfig-16550: fix non-existent option
- #18036 drivers/rpmsg: use nuttx/atomic.h instead metal/atomic.h
- #18061 drivers/pipe: fix POLLHUP handling in poll()
- #18073 drivers/sensors optimizes the sensor rpmsg driver proxy waiting mechanism to improve reliability. part 2
- #18081 drivers/analog/mcp47x6: fix configuration command
- #18085 drivers/rpmsg_router: multiple fixes and improvements for multi-core stability
- #18091 drivers/mtd: add nvs cache buffer
- #18095 drivers/mtd: support ram_mtdconfig device && lomtdconfig device
- #18100 drivers/net/slip: set serial port to raw mode to prevent character escaping
- #18102 drivers/sensors: fix sensor deadlock. part 3
- #18108 drivers/rpmsg: unify cpuname handling and fix pm wakelock initialization
- #18116 drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C
- #18125 drivers/usbdev: fix rndis net link status can't update timely issue
- #18134 drivers/sensors: Add non-wakeup mode support and optimize RPMSG communication part 4.
- #18156 drivers/rpmsg: fix struct alignment issue by removing flexible array member
- #18159 drivers/rpmsg_port_spi: add PM support and stability improvements
- #18163 drivers/rpmsg_port_uart: Improvements and bug fixes for stability and power management
- #18164 drivers/sensors/dhtxx: Fix read return values to be POSIX compliant
- #18165 drivers/rpmsg: refactor internal APIs to private header
- #18180 drivers/sensors: Remove the uncalibrated member of the sensor lowerhalf layer part 5
- #18209 drivers/sensors: sensor bug fix. part 6
- #18231 drivers/serial: fix crash when buffer is full and only recvbuf is imp…
- #18246 drivers/ioexapnder/mcp23x17 : Fix write gpio output values on OLAT registers
- #18248 drivers/rpmsg: support release the rx buffer early in endpoint callback
- #18250 drivers/timers: add timer driver implemented by watchdog
- #18256 drivers/sensors: add sensor monitor debug log. part 7
- #18261 drivers/sensors/gnss: Add monitor logs for activation
- #18265 drivers/virtio: virtio config space size-matched read operations
- #18286 drivers/analog: fix adc ads1115 driver
- #18289 drivers/vhost: Improvements and fixes for vhost framework
- #18290 drivers/virtio: use virtqueue_nused() to check pending buffers
- #18291 drivers/virtio: fix the minor code style in virtio.c
- #18294 drivers/rpmsg: add timestamp support for rpmsg buffer latency measurement
- #18301 drivers/lcd: Add ST7796 TFT LCD framebuffer driver
- #18304 drivers/power/pm: Fix typos in comments
- #18361 drivers/usbdev: Fix usbmsc_unbind() function for USB composite device
- #18372 drivers/note: noteram ioctl FIONBIO should return -ENOTTY
- #18410 drivers/serial/uart: implement uart rpmsg linux conterpart
- #18435 drivers/sensors: Legacy sensor warning
- #18446 drivers/serial: add common Xilinx UART Peripheral System (XUARTPS) support
- #18454 drivers/syslog: add millisecond option for syslog timestamp formatting
Board Support
New Board Support
Boards With Significant Improvements
File System
Bug Fixes
Significant Improvements
Networking
Improvements
- #16940 net: Hardware Checksum Offload Support for NuttX Network Stack
- #17431 net/pkt: Add some feature support
- #17435 net/can: add write buffer to support nonblock send
- #17436 net/netdev/netdev_register.c: skip mld_devinit if Nic can not support mld
- #17440 net/utils/net_bufpool: add lock to struct net_bufpool_s and bufpool_navail
- #17451 net: replace critical_section with spinlock
- #17452 net: add vlan support
- #17465 netdev_upperhalf: convert Kconfig to variable
- #17483 net/pkt: add SOCK_DGRAM support
- #17519 net: Check listening connections when selecting ports
- #17520 net/pkt: Fixed error handling for unsupported types
- #17521 net/socket: Fixed network card name does not end with \0 when binding the device issue
- #17526 net/tcp: modify txavail to be sent directly in the current thread
- #17551 net/packet: add PACKET_<ADD|DROP>_MEMBERSHIP support
- #17553 net/netlink: add RT_TABLE_LOCAL definition for mqttc5 build
- #17555 net/tcp: add TCP_CORK definition
- #17585 net/netdev: allow stack to send/receive when running
- #17587 net/igmp: mod check of IGMP_SCHEDMSG from assert to error log
- #17588 net/tcp: modify the return value when dev is down in tcp_pollsetup
- #17589 net: update check condition from IFF_UP to IFF_RUNNING in the network sending process
- #17590 net/tcp: resolve reconnection issues when connection failed due to rejection
- #17603 net/tcp: improve TCP retransmission mechanisms for better reliability
- #17607 net/pkt: fix DHCP transmission failure by updating d_sndlen/d_len lengths
- #17652 net/wireless: fix compile warning issue for wireless
- #17655 netpkt: Introduction to using netpkt example
- #17656 net/ethernet: ARP can be configured on interface
- #17657 netlib: Introduction to IP conflict detection functions
- #17658 net/icmp: check the checksum field when receive icmp message
- #17659 net/ethernet: remove no use remove excess code
- #17660 netdev_upperhalf: add direct rx mode
- #17661 net/can: fix the typo and compile error
- #17662 net/icmp: Return -ENOPROTOOPT for SOL_SOCKET to avoid misleading logs
- #17663 net/net_initialize: remove the empty functions that are not needed
- #17667 net/can: can protocol uses a separate buffer to cache can data
- #17669 netlib: Add IOB statistics interface description
- #17672 net/ipfrag: fix ip fragment assert when iob not enough
- #17673 net/bufpool: fix typo
- #17674 net/icmp: check src ip for icmp request message
- #17676 net/tcp: add kconfig to support retransmission at a fixed time
- #17677 net/vlan: add some macro for vlan
- #17678 net/tcp: add support for the CLOSE_WAIT state
- #17679 nuttx/net: Expose the net_ipv6addr_maskcmp interface to user-mode calls
- #17686 net/ipv4: Send ICMP Destination Unreachable for unknown protocol
- #17687 net/ipv4: Drop a ipv4 packet with total length bigger than the actual transmitted data
- #17688 net/arp: support ARP entry learned on gratuitous ARP response
- #17689 net/icmp: Support icmp timestamp request
- #17691 net/tcp: tcp header seq check
- #17692 net: decouple the impact of net_lock between network cards
- #17693 net/ethernet: fix compilation issues for inet_sockif.c
- #17695 net/vlan: make a judgment before calling fuction
- #17698 net/udp: Validate UDP length field against actual packet size
- #17699 net/udp: Support zero-length UDP datagrams
- #17700 net/ethernet: change struct ifreq to consistent with Linux
- #17701 net/devif: fix poll issue when ifdown
- #17702 net/arp: dont learn arp information if interface is noarp
- #17705 net/ioctl: add a socket interface for ioctl
- #17707 net/tcp: support recv packet in the TCP_FIN_WAIT_1/2 state
- #17709 net/tcp: remove SYN_RCVD state conn by listener created when free listener
- #17710 net/tcp: send reset when retransmitted number greater than TCP_MAXRTX
- #17711 net/tcp: support OTW ack seq check
- #17712 net/arp: support arp request limit
- #17713 net/tcp: discard fin packet in LISTEN state
- #17714 net/tcp: fix tcp conn lock leak when port in use in tcp_selectport
- #17715 net/tcp: fix conn->work use after free in worker queue list
- #17716 net/ipv6: Drop IP packet shorter than length in IP header
- #17729 net/arp: Skip ARP request if ip address is invalid
- #17730 net/neighbor: Skip Neighbor request if ip address is invalid at ipv6
- #17732 net/netlink: replace net_lock with netlink_lock
- #17733 net/local: replace net_lock with local_lock
- #17734 net/usrsock: replace net_lock with usrsock_lock
- #17735 net_sockif.c: add ip level s|getsockopt support in SOCK_CTRL
- #17743 net/can: fix poll setup to properly find and use free pollfd slots
- #17745 net/local: simplify file descriptor passing using shared filep references
- #17754 net/devif_poll: only call the corresponding xxx_poll when there is data to be sent
- #17775 net can: modify the return value of can_datahandler API.
- #17785 net/udp: fix udp message cannot be sent to the network card
- #17806 net/netdev: Fix best prefix in findby
- #17819 net/route: need clear old cached route info when do reset cache
- #17858 net: make the sendmsg param type consistent with posix specification
- #17869 net/icmpv6: fix crash when ipv6 address modified during autoconfig
- #17877 net/usrsock: Fix EPIPE loop by clearing POLLIN on remote close
- #17878 net: Support no-lto option for the network build.
- #17887 netinet/in.h: Rename imr_interface to imr_address in struct ip_mreqn.
- #17890 net/icmp: Fix devif_loopback dead loop when unrecognized ICMP packet
- #17895 net/route/ramroute: replace prealloc with netpool
- #17896 net/neighbor: fix compilation with CONFIG_NET_ICMPv6_NO_STACK
- #17907 net/can: allow errmask to be set to CAN_ERR_FLAG
- #17917 net/ipv4: check whether the length of the ipv4 option is correct
- #17919 net/netdev: correct the ioctl command validation logic
- #18011 net: limit TCP and UDP send/recv buffer usage with throttled IOB
- #18056 net/bluetooth: fix rmutex deadlock
- #18247 net/netdev: a valid netdev for ipv4 should have ipv4 addr configured
- #18249 netdev_driver: add carrier_on to xxx_ifup where carrier_on is absent
- #18258 net/rpmsg: Modify error handling to rpmsg socket
- #18386 net/utils: add union name for tasking compiler compatibility
Security Issues Fixed In This Release
Compatibility Concerns
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.