Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Work In Progress

Warning
titleWork 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

...

Markdown
arm
* [#10987](https://github.com/apache/nuttx/pull/10987) gd32f4: add gd32f470i board support
* [#11094](https://github.com/apache/nuttx/pull/11094) stm32: add support to LINUM-STM32H753BI board
* [#10990](https://github.com/apache/nuttx/pull/10990) stm32: add support to STM32F401RC-RS485 board
* [#11358](https://github.com/apache/nuttx/pull/11358) stm32h7: linum-stm32h753bi: Add modbus example using usart6
* [#11276](https://github.com/apache/nuttx/pull/11276) seeed-xiao-rp2040: Add initial board support

xtensa
* [#10976](https://github.com/apache/nuttx/pull/10976) Add ESP32-2432S028 board
* [#10928](https://github.com/apache/nuttx/pull/10928) esp32s3-box: Support hardware version 3

risc-v
* [#11379](https://github.com/apache/nuttx/pull/11379) Initial support for CanMV-k230 board
* [#11377](https://github.com/apache/nuttx/pull/11377) Add support for PINE64 Ox64 BL808 SBC

Board Improvements

...

File System

Improvements

Markdown
* [#10995#11056](https://github.com/apache/nuttx/pull/1099511056) ChangeModify inode_checkflags to static functiontest "ramtest" path
* [#11445#11192](https://github.com/apache/nuttx/pull/1144511192) Fixremove obsolete CONFIG_EXAMPLES_FOC_IPHASE_ADC option

arm

Markdown
hostfs after uid/gid changes
* [#11433#11101](https://github.com/apache/nuttx/pull/1143311101) fatcxd56xx: FixAdd number of data clusters usable for fat drivercxd5610 gnss driver

* [#11196#11373](https://github.com/apache/nuttx/pull/1119611373) fatgd32f4xx: fixchange ubsangd32f470z warning of shift-out-of-boundsboard code

* [#10706#11193](https://github.com/apache/nuttx/pull/1070611193) fs_epollimx6: several epoll problems fixFix sabre-6quad:libcxx

* [#11125#11310](https://github.com/apache/nuttx/pull/1112511310) fs_files.cnrf52: make sure that fs_getfilep is not interrupted when holding mutexnrf52832-dk: add timer example
* [#11349#10835](https://github.com/apache/nuttx/pull/1134910835) fs_gettype:add zipfs magic nrf52: remove CONFIG_ARMV7M_SYSTICK form tickless configs

* [#11446#11150](https://github.com/apache/nuttx/pull/1144611150) hostfssama5:fix structureAdd layoutQSPI inconsistencysupport in hostfsSAMA5
* [#11090#11151](https://github.com/apache/nuttx/pull/1109011151) inode: Change inode_unlink to static functionsama5: sama5d2-xult: add support for QSPI flash and nxffs

* [#11188#11117](https://github.com/apache/nuttx/pull/1118811117) inodestm32: check file list before memcpyb-g431b-esc1: don't use CONFIG_STM32_USE_LEGACY_PINMAP=y
* [#11140#11306](https://github.com/apache/nuttx/pull/1114011306) inodestm32h7: improvefix the performance of get file pointerconfig conflict
* [#11318#11214](https://github.com/apache/nuttx/pull/1131811214) proc stm32h7: linum-stm32h753bi: FixAdd groupfdsupport to getRTC fd by group instead of current tcband alarm
* [#11449#11167](https://github.com/apache/nuttx/pull/1144911167) procfs add poll supportstm32h7: linum-stm32h753bi: Added suport to userlerds library.
* [#11360#11265](https://github.com/apache/nuttx/pull/1136011265) procfs/cpuinfostm32f4: Zero copylen in cpuinfo_readstm32f401rc-rs485: Add sdcard support
* [#11039#11217](https://github.com/apache/nuttx/pull/1103911217) renamestm32f4: fix use after free issue about renamestm32f401rc-rs485: Add buttons support
* [#11451#11169](https://github.com/apache/nuttx/pull/1145111169) smartfsstm32f4: Add necessary aligned access in smartfs_rename()stm32f401rc-rs485: add support to userleds
* [#11248#11255](https://github.com/apache/nuttx/pull/1124811255) spiffsstm32f4: correct mutex lock cycle of spiffs
stm32f401rc-rs485: Fix f401rc flash size

risc-v

Markdown
* [#10804#10736](https://github.com/apache/nuttx/pull/1080410736) support zipfs,can mount zipfileesp32c3: pm: Let PM_PROCFS depend on FS_PROCFS_REGISTER
* [#11232#11418](https://github.com/apache/nuttx/pull/1123211418) tmpfsesp32c6: fixAdd anostest integer overflowdefconfig
* [#10880#11096](https://github.com/apache/nuttx/pull/1088011096) vfsmpfs: Add option addfor munmapboard logicspecific toPMP pseudofs

Networking

Improvements

Markdown
configuration
* [#10813#11262](https://github.com/apache/nuttx/pull/1081311262) Add CONFIG_NET_ICMPv6_ROUTER_LIFETIMEqemu-rv: rv-virt/knsh: Set correct RAM_START and RAM_SIZE
* [#10893#11397](https://github.com/apache/nuttx/pull/1089311397) allow icmpv6 and udp to find the dev by the ifindex with s_boundto.
* qemu-rv: Virtio sound

sim

Markdown
* [#10960](https://github.com/apache/nuttx/pull/10960) fix Cygwin/MSYS2 ld: unrecognized option '-z'
* [#11290[#10916](https://github.com/apache/nuttx/pull/1091611290) Fixnxscope: remove CONFIG_ALLSYMS=y

xtensa

Markdown
RNDIS compilation error
* [#10819#11142](https://github.com/apache/nuttx/pull/1081911142) localesp32: FixAdd the problem that local udp socketpair cannot release fifo files.LVGL defconfig
* [#11443#11229](https://github.com/apache/nuttx/pull/1144311229) localesp32: makeAdd thesupport callenconder return of each process consistent with linuxto ESP32-2432S028
* [#11015#10961](https://github.com/apache/nuttx/pull/1101510961) localesp32: SupportAdd SO_SNDBUFwifishare optionboard inconfig getsockoptand documentation
* [#11289#10996](https://github.com/apache/nuttx/pull/1128910996) loopbackesp32: Fix flags of lo deviceRename Shift game to Brickmatch and add an board example to esp32-devkitc
* [#11324#11417](https://github.com/apache/nuttx/pull/1132411417) icmpv6:Optimize the process of obtaining the IPv6 address through RA.esp32<|s2|s3>_board_spiflash: Fix error message about SmartFS init
* [#11010#11425](https://github.com/apache/nuttx/pull/1101011425) icmpv6esp32s2: Increase Fixinit nettask maskstack logicsize into icmpv6_setaddresses3072
* [#11197#11156](https://github.com/apache/nuttx/pull/1119711156) igmp: call IFF_SET_IPv4 when igmp_sendesp32s3: Link stack checking function and data to SRAM when enable flash or PSRAM driver
* [#11384#11342](https://github.com/apache/nuttx/pull/1138411342) ipv6esp32s3: Fix source address with many addresses in same networkadd esp32s3-devkit:toywasm kconfig
* [#11378#11295](https://github.com/apache/nuttx/pull/1137811295) ipv6esp32s3: MoveAdd xxx_ipv6multicast from arch to common codertc defconfig
* [#10894#10885](https://github.com/apache/nuttx/pull/1089410885) netdbESP32S3-EYE: WhenGPIO setand a dns nameserver which already exists, retrun OKbutton support
* [#11076#10884](https://github.com/apache/nuttx/pull/1107610884) netconfigESP32-S3-EYE: Enable SOCK_CLOEXEC for ioctl socketsI2C, SPI and LCD support
* [#11396#10883](https://github.com/apache/nuttx/pull/1139610883) ESP32-S3-EYE: Wifi

File System

Improvements

Markdown
* [#10995](netdev: Modify the logic for setting the IFF_RUNNING status of interfaces.
* [#11110](https://github.com/apache/nuttx/pull/1111010995) SimplifyChange gettinginode_checkflags valueto forstatic different domainfunction
* [#11054#11445](https://github.com/apache/nuttx/pull/1105411445) SupportFix multiplehostfs IPv6after address per netdevuid/gid changes
* [#11406#11433](https://github.com/apache/nuttx/pull/1140611433) tcpfat: Recover from iob shortage with TCP_WRITE_BUFFERSFix number of data clusters usable for fat driver
* [#11126#11196](https://github.com/apache/nuttx/pull/1112611196) tcpfat: Supportfix initialubsan sequencewarning number described in RFC 6528of shift-out-of-bounds
* [#11009#10706](https://github.com/apache/nuttx/pull/1100910706) tunfs_epoll: Fixseveral theepoll error of calling tun_close when tun_txavail or tun_txavail_work is executedproblems fix
* [#10986#11125](https://github.com/apache/nuttx/pull/1098611125) tunfs_files.c: Fixmake thesure error of calling tun_close when tun_txavail or tun_txavail_work is executedthat fs_getfilep is not interrupted when holding mutex
* [#11372#11349](https://github.com/apache/nuttx/pull/1137211349) udpfs_gettype:add Add check when sending too big packet without IP fragzipfs magic
* [#11210#11446](https://github.com/apache/nuttx/pull/1121011446) udphostfs:fix structure Addlayout supportinconsistency forin SO_TIMESTAMPhostfs
* [#11120#11090](https://github.com/apache/nuttx/pull/1112011090) udp: modify ipv4 multicast to allow different conn to join simultaneously
* [#10878](https://github.com/apache/nuttx/pull/10878) usersock: Return -ENOSUPP directly if domain isn't equal to PF_INET/PF_INET6

Security Issues Fixed In This Release

Compatibility Concerns

Changes to Build System

Renamed or Modified Kconfig Options

...

inode: Change inode_unlink to static function
* [#11188](https://github.com/apache/nuttx/pull/11188) inode: check file list before memcpy
* [#11140](https://github.com/apache/nuttx/pull/11140) inode: improve the performance of get file pointer
* [#11318](https://github.com/apache/nuttx/pull/11318) proc: Fix groupfd to get fd by group instead of current tcb
* [#11449](https://github.com/apache/nuttx/pull/11449) procfs add poll support
* [#11360](https://github.com/apache/nuttx/pull/11360) procfs/cpuinfo: Zero copylen in cpuinfo_read
* [#11039](https://github.com/apache/nuttx/pull/11039) rename: fix use after free issue about rename
* [#11451](https://github.com/apache/nuttx/pull/11451) smartfs: Add necessary aligned access in smartfs_rename()
* [#11248](https://github.com/apache/nuttx/pull/11248) spiffs: correct mutex lock cycle of spiffs
* [#10804](https://github.com/apache/nuttx/pull/10804) support zipfs,can mount zipfile
* [#11232](https://github.com/apache/nuttx/pull/11232) tmpfs: fix an integer overflow
* [#10880](https://github.com/apache/nuttx/pull/10880) vfs: add munmap logic to pseudofs

Networking

Improvements

Markdown
* [#10813](https://github.com/apache/nuttx/pull/10813) Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME
* [#10893](https://github.com/apache/nuttx/pull/10893) allow icmpv6 and udp to find the dev by the ifindex with s_boundto.
* [#10916](https://github.com/apache/nuttx/pull/10916) Fix RNDIS compilation error
* [#10819](https://github.com/apache/nuttx/pull/10819) local: Fix the problem that local udp socketpair cannot release fifo files.
* [#11443](https://github.com/apache/nuttx/pull/11443) local: make the call return of each process consistent with linux
* [#11015](https://github.com/apache/nuttx/pull/11015) local: Support SO_SNDBUF option in getsockopt
* [#11289](https://github.com/apache/nuttx/pull/11289) loopback: Fix flags of lo device
* [#11324](https://github.com/apache/nuttx/pull/11324) icmpv6:Optimize the process of obtaining the IPv6 address through RA.
* [#11010](https://github.com/apache/nuttx/pull/11010) icmpv6: Fix net mask logic in icmpv6_setaddresses
* [#11197](https://github.com/apache/nuttx/pull/11197) igmp: call IFF_SET_IPv4 when igmp_send
* [#11384](https://github.com/apache/nuttx/pull/11384) ipv6: Fix source address with many addresses in same network
* [#11378](https://github.com/apache/nuttx/pull/11378) ipv6: Move xxx_ipv6multicast from arch to common code
* [#10894](https://github.com/apache/nuttx/pull/10894) netdb: When set a dns nameserver which already exists, retrun OK
* [#11076](https://github.com/apache/nuttx/pull/11076) netconfig: Enable SOCK_CLOEXEC for ioctl sockets
* [#11396](https://github.com/apache/nuttx/pull/11396) netdev: Modify the logic for setting the IFF_RUNNING status of interfaces.
* [#11110](https://github.com/apache/nuttx/pull/11110) Simplify getting value for different domain
* [#11054](https://github.com/apache/nuttx/pull/11054) Support multiple IPv6 address per netdev
* [#11406](https://github.com/apache/nuttx/pull/11406) tcp: Recover from iob shortage with TCP_WRITE_BUFFERS
* [#11126](https://github.com/apache/nuttx/pull/11126) tcp: Support initial sequence number described in RFC 6528
* [#11009](https://github.com/apache/nuttx/pull/11009) tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
* [#10986](https://github.com/apache/nuttx/pull/10986) tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
* [#11372](https://github.com/apache/nuttx/pull/11372) udp: Add check when sending too big packet without IP frag
* [#11210](https://github.com/apache/nuttx/pull/11210) udp: Add support for SO_TIMESTAMP
* [#11120](https://github.com/apache/nuttx/pull/11120) udp: modify ipv4 multicast to allow different conn to join simultaneously
* [#10878](https://github.com/apache/nuttx/pull/10878) usersock: Return -ENOSUPP directly if domain isn't equal to PF_INET/PF_INET6

Security Issues Fixed In This Release

Compatibility Concerns

Markdown
* [#10605](https://github.com/apache/nuttx/pull/10605)  Implement ticket spinlock

A proposal to slove #1488

Implement ticket spinlock.


* [#10861](https://github.com/apache/nuttx/pull/10861) spinlock: Add spin_lock_init and spin_is_locked macro

align with Linux api naming.


* [#11102](https://github.com/apache/nuttx/pull/11102) sched: explicitly select the cpuload clock source configuration

Different configurations require different dependencies.
Explicitly select dependencies to avoid automatically selecting
inappropriate configurations.

* [#11334](https://github.com/apache/nuttx/pull/11334) stm32h7_adc: Dynamically set clock prescaler and BOOST

First commit is aligning naming and is a breaking change.

* [#10827](https://github.com/apache/nuttx/pull/10827) Improve adjtime() functionality

Prior pull request #9084 and issue #8858 added basic adjtime()
support for the SAMv7 platform.

This pull request adds support for STM32 platform.

In addition I have made a few changes to the adjtime() configuration
options:

1) Previously adjustments less than 1 microsecond per tick would be
   completely ignored. Now they are applied over a shorter period at
   a rate of 1 us per tick.

2) Previously CLOCK_ADJTIME_PERIOD was in units of 1/100th of second.
   Change to milliseconds to be more generally useful unit.
   Change setting name to CLOCK_ADJTIME_PERIOD_MS to make the unit change
   easier to notice.

3) Previously CLOCK_ADJTIME_SLEWLIMIT was in percentage.
   Most clock crystals have better accuracy than 1%, so the minimum slew
   rate was excessive. Change to CLOCK_ADJTIME_SLEWLIMIT_PPM with setting
   value in parts per million.

4) No need to use floating point math in clock_adjtime.c.

Impact

Users who have used CLOCK_ADJTIME_PERIOD and CLOCK_ADJTIME_SLEWLIMIT 
settings should update their configuration. New CLOCK_ADJTIME_PERIOD_MS is
10x the old period value, and new CLOCK_ADJTIME_SLEWLIMIT_PPM is 10000 times
the old slewlimit.

Known Problems In This Release

NuttX on Ox64: getprime + hello crashes 

Markdown
NuttShell (NSH) NuttX-12.4.0
nsh> uname -a
NuttX 12.4.0 96c2707737 Jan 15 2024 10:35:29 risc-v ox64
nsh> 
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 0 msec
nsh> 
nsh> hello
riscv_exception: EXCEPTION: Store/AMO page fault. MCAUSE: 000000000000000f, EPC: 0000000050208fcc, MTVAL: 0000000080200000
riscv_exception: PANIC!!! Exception = 000000000000000f

More Information

How to Download

...

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

...