What's New In This Release
Improvements to Core OS
sched
- #10919 sched: assert: move the backtrace dump after the stack dump
- #11195 sched: assert: restore assertion registers to array of last registers
- #10858 sched: assert.c: Print process name in assert dump
- #11131 sched: Check for zero sleep time and yield CPU
- #11226 sched: delete check when pick nexttcb in readytorun list
- #11038 sched: env_dup: fix issue about USE_AFTER_FREE
- #11102 sched: explicitly select the cpuload clock source configuration
- #10816 sched: Fix dependencies of CONFIG_SCHED_CPULOAD_ settings
- #11036 sched: Follow o_cloexe semantics when calling the exec function
- #10867 sched: format: modify spin_lock_irqsave format
- #11018 sched: group/killchildren: replace syscall(2) to kernel api
- #10605 sched: Implement ticket spinlock
- #10827 sched: Improve adjtime() functionality
- #11231 sched: lock refine: remove sched_[un]lock in xxx_waitsample
- #11302 sched: misc/rwlock:Implementing read/write locks.
- #11347 sched: Print more information in assert
- #11017 sched: pthread/barrierwait: replace syscall(2) to kernel api
- #10929 sched: Remove the unused tcb argument from group_setupidlefiles
- #10776 sched: rw spinlock
- #11124 sched: rw spinlocks: cosmetic changes
- #11191 sched: sem_holder.c: When accessing SEM_WAITLIST, use holder's addrenv
- #11257 sched: semaphore: Move POSIX regulated parts of semaphores into libc
- #11252 sched: sigaction: Expand si_user for non-kernel signals
- #10970 sched: smp call exit immediately when cpuset change to 0.
- #10861 sched: spinlock: Add spin_lock_init and spin_is_locked macro
- #11348 sched: Stack recored:Add maximum stack statistics when the task is running
- #9163 sched: Stop the sched timer when possible to save the power in tickless mode
- #10934 sched: support smp function call
- #11032 sched: task: [posix]spawn: Simplify how spawn attributes are handled
- #11241 sched: task: pthread_cancelpt: Fix nxtask_delete from another task group
- #11165 sched: task: pthread_cancelpt: Move cancel point handling to libc, data to TLS
- #11097 sched: task: Remove spawn_proxyattrs as obsolete implementation
- #11177 sched: taskfiles: skip unnecessary file open/close operations to improve performance
- #11250 sched: taskspawn: fix spawn fail if enable FDCHECK
- #10834 sched: timer: handle perf count overflow
mm
- #11068 mm: both use spin_lock_irqxx() when operated delaylist
- #11183 mm: free delay list when exceeding specified count
- #11258 mm: kmap: Finalize kmap implementation for RISC-V
- #10837 mm: kmap: Fix bug in kmm_unmap
- #10876 mm: kmap: Fix several issues with the kmm_map interface
- #11114 mm: kmap: Fix bad dependency to ARCH_VMA_MAPPING
- #11092 mm: improve SMP performance
- #11152 mm: record the maximum system memory usage
- #11168 mm: Remove mm_spinlock
- #10984 mm: Replace enter_critical_section with spin_irqsave
libs
- #11408 libc: add fgetwc, getwc, ungetwc wchar api implementation
- #10602 libc: add support for custom streams with fopencookie()
- #11011 libc: add support for memory buffer stream with fmemopen()
- #11274 libc: add support for open_memstream
- #11288 libc: arm: add support of PACBTI
- #10969 libc: Change errno to set_errno and get_errno
- #11294 libc: Fix -nan issue with f32
- #11198 libc: Fix improper handling of 64 bit types for libvsprintf
- #11322 libc: Handle PCREL_HI20/LO12_I/S relocations correctly
- #10994 libc: Improve stdio unlock version function
- #11364 libc: lib_slcd: fix encode/decode of binary nibble to/from ascii hex
- #11035 libc: localtime: fix the timezone error caused by minor error
- #11281 libc: machine/arm: align related implementations of armv7 architecture
- #10927 libc: machine: Remove FAR from sparc
- #11133 libc: realpath: allocate link buffer of pseudofs to save stack
- #10913 libc: Refine the implementation of fopen/fdopen
- #10993 libc: Remove the unused lib_libdtoa.c
- #11137 libc: Solve some problems encountered during cmake compilation
- #10992 libc: stdio: Change FILE buffer field from "unsigned char *" to "char *"
- #11063 libc: stdlib/lib_exit.c: fix multiple definition of __dso_handle and sethost.sh: add MSYS environmen for msys2
- #11447 libc: stream: add stream interface
- #11350 libc: Support gdbstub kernal debugging
- #11346 libc: Supports storing coredump into block devices
- #10862 libc: memfd: shm_unlink or unlink anonymous file
- #10891 libc: memfd: turn a runtime error into a linker error
- #10972 libds: add missing observer_b16.c to cmake build
- #10915 libdsp: lib_observer.c: use float numbers for some calculations
- #10979 libdsp: update LP_FILTER comment
- #11256 libm: Fix an issue that public header files are not exported
- #11162 libm: newlib: Change the download site to https
- #11386 libs: log2ceil: Move implementation of log2ceil to a common place
- #11043 libs: modlib: optimize code and add arch api for allocating data section
- #11394 libxx: cmake: remove useless code
- #11050 libxx: Silence warnings when building libcxx.
- #11301 libxx: upgrade llvm version to 17.0.6
- #10860 libxx: Use gnu++20 option only if using libcxx
misc
- #11242 Revert "libc/lib_bzero:Add bzero prototype."
- #10881 arm, arm64, xtensa, libxx: Change sed -r to sed -E to support macOS
- #11027 assert: rename __ASSERT to ASSERT to avoid conflict
- #11025 audio: add amr format support
- #11055 binfmt/elf: Select ARCH_USE_TEXT_HEAP if ARCH_HAVE_TEXT_HEAP
- #11238 clock.h: use CONFIG_DEBUG_SCHED to test init ticks
- #10924 crypto/rsa_verify: export rsa verify via /dev/crypto
- #10978 debug/assert: decouple configuration of show file name feature
- #10809 dma: support source/destination address auto step
- #10870 fixedmath: add abs and sign operations
- #11111 ioctl: add definitions related to ethtool
- #11121 ioctl: add SIOCGIWNAME support
- #11026 kernel: replace all sem_* to nxsem_*: in kernel space
- #10849 langinfo: The character U+ff0c "," could be confused with the ASCII character U…
- #11243 list: search prev item in reverse order
- #11221 poll: pollsetup should notify only one fd passed by caller
- #10892 refine: move BIT Macro to nuttx/bits.h
- #11218 spinlock: Move the inclusion of stdatomic.h to source file
- #10869 sys/types: supporting 32-bit IDs for gid_t/uid_t
- #11207 tcbinfo:remove total_num form tcbinfo.
- #11298 video: Update v4l2m2m interface & create videoio.h
- #11362 virtio.h: add virtio_has_feature api for virtio driver
Build System
Improvements
- #11007 Revert "make/archive: Use the full path name when matching or storing…
- #11047 applications: Move the test tools in the system to the testing
- #11395 cmake: build file support with libcxx 17.0.6
- #10982 cmake: correct cmake rule file name
- #11375 cmake: fix NUTTX_COMMON_DIR
- #11031 cmake: init RISC-V cmake qemu-rv build
- #10843 cmake: raise error if previous make build was not cleaned
- #10879 fix: TreeNode has same attribute with NodeMixin
- #10968 nuttx: generate nuttx.map file when enable debug link map.
- #11303 sh: Enhanced compilation system
- #11432 tools: config.mk: whether verbosity is enabled or not, should use bash
- #11098 tools: configure.c and tools/sethost.sh Add CONFIG_EXPERIMENTAL for configure windows native
Architectural Support
New Architecture Support
Architecture Improvements
- #10836 arch: add a flag indicating that the chip doesn't support DMA transfer from/to FLASH
- #10759 arch: add use_data to g_tcbinfo
- #11190 arch: dumponexit: unify dump on exit to common code
- #10828 arch: simplify ARCH_PERF_EVENTS related code
- #11160 arch: textheap: add _heapmember declare for text and data heap
arm
#11282 clang: replace deprecated parameter
#11170 Let's old arm's arm_doirq return register context like armv7-a
#11413 debug:fix gdbstub clear fpb & dwt when already use jtag/swo bug
#11166 armv8-m: Fix typo error for NVIC_SYSHCON_HARDFAULTPENDED
#11118 cxd56xx: Support to get gnss firmware version
#11398 imxrt: Extend FlexIO support to 117x
#11436 imxrt: flexio move ifdef guard lower
#11012 imxrt: NXP I2C non-DMA end only on stop with end of packet
#11000 imxrt: nxp lpi2c calculated timeout can not be 0
#11033 imxrt: NXP lpi2c DMA transaction only need the status conditioned
#11164 imxrt: NXP Serial Do not wait on TXDMA semaphore
#11070 imxrt: NXP Serial overcome race where DMA has not fetched TCD again
#11020 imxrt: serial Ensure the cache is updated if the DMA has updated again
#11199 imx6: Replace cpu_start_t with start_t
#10877 mx8mp: Add support for SPI
#11203 nRF91: initial support for GNSS
#11308 nrf{52|53|91}: add missing support for 1 Mbps UART baud
#10826 nrf{52|53|91}: add support for up_perf
#10830 nrf{52|53|91}: fixes for timer
#11172 rp2040: pwm: Fix errors at CONFIG_PWM_NCHANNELS=1
#10817 sama5: Sort SAMA5D2 adc/tsd dma
#10806 sama5: TSD trigger and pressure scaling issues
#11307 samd212: invert tx and rx in spi_dma_setup
#11212 samd212: sam_dmac: Fix compilation and fix SAM_DMAC_CHINTENCLR settings
#10855 samv7: channel gain switching in aefc
#11312 samv7: sam_emac: Implement errata workaround for KSZ8061 PHY
#10847 {stm32|stm32f7|at32|samv7|imxrt}: fix for adc_setup
#11211 stm32: Add support for Ethernet packet timestamping and PTP timer
#11175 stm32: foc: add support for board-specific ioctl
#10833 stm32: Initialize LED driver during late initialization for nucleo-f446re
#11181 stm32: stm32/stm32_adc.c: protect irq_attach with refcounter
#11194 stm32: stm32_foc.c: rename some macros
#11194 stm32: stm32_eth: Fix excessively long critical section in ifdown handlerm
#10865 stm32: UART needs to be disabled before changing setup
#10824 stm32l4: ADC: Adds low level operations to start and stop DMA.
#11154 stm32h7: serial: Do not wait on TXDMA semaphore
#11323 stm32h7: serial refactor out tx dma semaphore
#11332 stm32h7: serial Remove .txdmasem = SEM_INITIALIZER(1) bad cherry-pick
#10841 stm32h7: stm32_oneshot.c: Fix format warnings.
#11334 stm32h7: stm32h7_adc: Dynamically set clock prescaler and BOOST
#11367 stm32u5: fix EXTICR2,3,4 register offsets
#10846 s32k1xx: Fix LPUART inversion warnings & config.
#10844 s32k1xx: Fix warnings in PWM code.
#11099 s32kxxx: flexcan doesn't set srr bit for extended frames
#11325 s32k3xx: NXP S32K3xx Fixes stuttering output
#11106 s32k3xx: serial ensure the cache is updated if the DMA has updated again
arm64
- #10888 Add support for FIQ interrupts
- #11352 coredump: support arm64 coredump
- #11200 Disable ARCH_HAVE_FORK for arm64 as a precaution
- #11429 Fix GICv2 detection
- #10966 Remove unnecessary code in arm64_cpu_idle.S
- #11037 support relocate for aarch64
- #10917 support up_coherent_dcache function
- #10918 target cpuid calculation error in arm64_gic_raise_sgi function
- #11182 the bug of sscanf exception output in arm64 platform
- #11245 vector: no need to save x0 to sp
- #10904 XN should only be set when the attribute MT_EXECUTE_NEVER is set
risc-v
- #10856 addrenv: utils: Determine page table flags by type of vaddr
- #11113 addrenv: Fix static page table mapping (paddr instead of vaddr)
- #10838 addrenv: Fix the user VMA end address
- #10829 addrenv: Fix two SHM related issues
- #11389 arch_elf: Check for _HI20 relocation validity
- #11437 espressif: mcuboot: Fix dependency of the Espressif's port MCUboot.
- #11034 espressif: Update esp-hal-3rdparty version
- #11024 litex/litex_emac: Add support for KSZ8061 ethernet PHY.
- #11029 litex/litex-emac: Add support for phy interrupts.
- #11028 litex/litex_gpio: Fix ISR dispatch when using higher GPIO indexes.
- #11365 mmu: Extend MMU Flags to 64-bit for T-Head C906 and Svpbmt
- #11283 mpfs: corespi: Round up divider to prevent overlock of SPI
- #10822 mpfs: corespi: Several speed optimizations to the FPGA driver
- #10921 mpfs: ethernet: Fix RX/TX buffer and descriptor handling
- #11405 mpfs: ethernet: Remove DMA_ENABLE hack
- #10922 mpfs: entrypoints: Fix potential R_RISCV_JAL linker error
- #11247 mpfs: ihc: cleanup DEBUGASSERTs and irq enabling
- #11355 mpfs: mpfs_head.S: Change j/jal to tail call
- #10923 mpfs: mpfs_head.S: Simplify clearing PMP
- #11233 mpfs: opensbi: update opensbi to version 1.3.1
- #11404 mpfs: usb: Use kernel memory instead of user memory for DMA
- #11403 mpfs: pmpcfg: Move PMPCFG registers to common location
- #10875 pgalloc.h: Return kernel vaddr for kernel RAM paddr
- #11374 riscv_pmp.c: Revert LOG2_CEIL back to run-time log2ceil function
- #11001 Simplify PMP configuration and code
- #11441 Update mode.h to add CSR_TVEC
sim
- #10930 crypto: Use mbedtls default configuration without special check
- #11381 sim_lcd: add open & close
- #11122 sim_netdriver: some sim defconfig have problems when using the network
- #11246 sim support 16bbp
- #11237 simwifi: Connect the wifi whose ssid contains the special charaters.
- #11235 simwifi: Escapes the special characters of ssid in the scan results.
- #11069 simwifi: Fix the error of the need length for scan bssinfo.
- #11112 simwifi: For scan results, parse and translate the Chinese ssid encoded by the wpa_cli.
- #11066 simwifi: host wlan0 obtains ip and set dns for wlan0 in the defwan wlan0
- #11108 simwifi: Transfer the special characters in ssid.
- #11104 simwifi: Support that get the connected Chinese essid.
- #11051 simwifi: Support that simwifi connects to the hidden ssid.
- #11171 Replace [enter|leave]critical_section with up_irq[save|restore]
- #11219 Remove the wrong comment from up_allocate_heap
- #11205 usb_rawgadget: remove halt operation
- #10910 Update Fix more generic for platforms that do not have execinfo.h
- #11030 wifidriver: Fix the scan error.
- #10886 wifidriver: Support the sim wifi.
x86_64
- #10899 Fix idle stack assignment
xtensa
- #11141 esp32: ble: Enable the BLE interrupt during an SPI flash operation
- #10859 esp32: ble: Fix task_create_wrapper CPU core ID passed as argument
- #10851 esp32: irq: Fix erroneous interrupt allocation for each CPU core
- #11139 esp32s2: Add rtc heap support
- #11300 esp32s2: Add RTC support
- #11138 esp32s2: Add SPI slave support
- #10850 esp32s2: add UART RS485 support
- #10823 esp32s2: Add support to TWAI/CANBus controller
- #11431 esp32s2: Add xtwdt and rwdt support
- #10873 esp32s2: ESP32-S3 I2C improvements
- #11259 esp32s3: Add rtc heap support
- #11180 esp32s3: Add RWDT support
- #11287 esp32s3: Add SPIRAM high memory support
- #11179 esp32s3: Add XTWDT support
- #10854 esp32s3: ble: enable the BLE interrupt during a SPI flash operation
- #11331 esp32s3: enable LIBC_ARCH_ATOMIC
- #11299 esp32s3: Fix esp32s3 mcuboot ota crash
- #11136 esp32s3: Fix issue regarding IRAM-enabled ISRs by fixing the linker
- #11285 esp32s3: Fix some ESP32S3 module reboot and QVL issues
- #10882 esp32s3: Fix the os halt issue when esp32s3 wlan has high-speed or long time d…
- #11427 esp32s3: Fixed bbpll not calibrated from bootloader issue
- #11328 esp32s3: GPIO clear pending interrupt status before enable IRQ
- #11329 esp32s3: QSPI disable DMA when sending command to slave
- #11286 esp32s3: Invalidate cache if the flash address used has a cache mapping.
- #11144 esp32s3: Support malloc from external RAM and internal RAM
- #11157 esp32s3: Support multiple PHY init data bin
- #11434 esp32s3: Support reading encrypted partitions
- #11052 esp32s3: Support to read data from flash to PSRAM
- #11340 esp32s3: Tasks use SPIRAM as stack can do SPI flash read/write/erase/map/unmap
- #11428 espressif/rmt: Implement a common RMT (Remote Control) driver for xtensa-based devices.
Driver Support
New Driver Support
- #10770 drivers: add regmap subsystems support.
- #10902 motor: Add stepper interface
- #11253 mtd: Adds support to W25Q20CL memory.
- #11149 mtd: mx25rxx: add support for MX25L25673G chip
- #11422 net: ksz9477: Add simple port-based static VLAN configuration
- #11339 net: lan9250: Add LAN9250 driver(SPI and QSPI mode)
- #11280 sensors: Add support for MS5607
- #10864 sensors: max31865:RTD-to-Digital Converter
- #10914 stepper: add DRV8825
- #11228 tee: add optee client driver module
Drivers Improvements
- #11071 Kconfigs: rename {Rpmsg|rpmsg} to RPMGS
- #11061 can: Add new ioctls
- #10845 foc: foc_dummy.c: update dummy device state only if dev opened
- #11176 foc: return scaling factor for phase currents and BEMF via ioctl
- #10808 ioexpander: Minor fix for ioexpander driver
- #11147 lcd: add stride support for LCD driver
- #11185 lcd: change lcd stride from pixel to bytes
- #10926 math: mpi: add mpi driver in math
- #11240 misc: Rpmsgblk function optimization
- #11220 mmcsd: mmcsd_sdinitialize should save csd register into priv->csd
- #10909 mtd: filemtd:Fix teardown return error number EINVAL
- #11041 mtd: get mtd_geometry_s.model for mtd partition and optimize code
- #11187 mtd: s25fl1: fix compile warnings caused by incorrect variable print format
- #11370 mtd: w25q: add nxsig_usleep to busy waiting in w25qxxxjv_erase_sector()
- #11391 net: qemu/wifi: Add the virtual wifi function on the emulator.
- #11216 net: skeleton.c doesn't compile without this patch if ioctls are enabled
- #10907 note: Change 0/1 to false/true
- #11153 note: delete sched_note_flatten
- #10840 note: optimize note performance
- #10920 note: remove remaining event code
- #11074 power: pm: use pm_staytimeout() in greedy_governor_activity()
- #11132 rptun: check the status before stop remote proc
- #11222 rtc: RTC driver improvement
- #10831 rtt: make RTT console optional
- #11296 segger: rtt: correct macro name to avoid unable to change default mode
- #11419 sensors: mx56xx: Add support for second order compensation
- #11426 sensors: mx56xx: Fix threshold and calculation
- #11178 serial: uart_tcsendbreak: Remove cancel point, as tcsendbreak is not one
- #11402 syslog: ramlog: improve ramlog performance
- #11392 syslog: ramlog: multi readers
- #10890 syslog: ramlog: remove sched_[un]lock and rl_nwaiters
- #11186 timers: Rewrite adjtime() implementation to work for RTC and tickless kernel
- #11356 usbdev: Add callback for CONFIG_USBDEV_SOFINTERRUPT
- #11042 usbdev: config USBDEV_TRACE_INITIALIDSET when disbale USBDEV_TRACE
- #11161 usbdev: Solve some problems of USB hotplug
- #10985 usrsock: Make the field of usrsock_request native alignment
- #11103 usrsock: rpmsg_server: Keep msg order in recursive call
- #11107 usrsock: socket fallback with ENETDOWN
- #10874 video: fb: Add fb_register_device
- #10812 video: goldfish: Remove the vsync residual code
- #11380 video: goldfish: optimize goldfish fb register
- #11249 video: video.c: modify set_buf call seqence in start_capture function.
- #11224 video: wait when the vsync queue is full in FBIO_WAITFORVSYNC
- #11382 virtio: Support for setting MAC addresses of the virtio-net interfaces
- #11385 virtio: virtio-gpu: convert virito-gpu fb_register to virtio_gpu_fb_register
- #11201 virtio: Virtio Qemu 8.1.2 issues fix
- #11013 wireless: bluetooth: Add option to set the HCI TX thread affinity while running with SMP enabled
- #11072 wireless: bluetooth: rpmsg depends on RPTUN
Board Support
New Board Support
arm
- #10987 gd32f4: add gd32f470i board support
- #11094 stm32: add support to LINUM-STM32H753BI board
- #10990 stm32: add support to STM32F401RC-RS485 board
- #11358 stm32h7: linum-stm32h753bi: Add modbus example using usart6
- #11276 seeed-xiao-rp2040: Add initial board support
xtensa
risc-v
Board Improvements
arm
#11101 cxd56xx: Add cxd5610 gnss driver
#11373 gd32f4xx: change gd32f470z board code
#11193 imx6: Fix sabre-6quad:libcxx
#11310 nrf52: nrf52832-dk: add timer example
#10835 nrf52: remove CONFIG_ARMV7M_SYSTICK form tickless configs
#11150 sama5: Add QSPI support SAMA5
#11151 sama5: sama5d2-xult: add support for QSPI flash and nxffs
#11117 stm32: b-g431b-esc1: don't use CONFIG_STM32_USE_LEGACY_PINMAP=y
#11306 stm32h7: fix config conflict
#11214 stm32h7: linum-stm32h753bi: Add support to RTC and alarm
#11167 stm32h7: linum-stm32h753bi: Added suport to userlerds library.
#11265 stm32f4: stm32f401rc-rs485: Add sdcard support
#11217 stm32f4: stm32f401rc-rs485: Add buttons support
#11169 stm32f4: stm32f401rc-rs485: add support to userleds
#11255 stm32f4: stm32f401rc-rs485: Fix f401rc flash size
risc-v
sim
xtensa
- #11142 esp32: Add LVGL defconfig
- #11229 esp32: Add support enconder to ESP32-2432S028
- #10961 esp32: Add wifishare board config and documentation
- #10996 esp32: Rename Shift game to Brickmatch and add an board example to esp32-devkitc
- #11417 esp32<|s2|s3>_board_spiflash: Fix error message about SmartFS init
- #11425 esp32s2: Increase init task stack size to 3072
- #11156 esp32s3: Link stack checking function and data to SRAM when enable flash or PSRAM driver
- #11342 esp32s3: add esp32s3-devkit:toywasm kconfig
- #11295 esp32s3: Add rtc defconfig
- #10885 ESP32S3-EYE: GPIO and button support
- #10884 ESP32-S3-EYE: I2C, SPI and LCD support
- #10883 ESP32-S3-EYE: Wifi
File System
Improvements
- #10995 Change inode_checkflags to static function
- #11445 Fix hostfs after uid/gid changes
- #11433 fat: Fix number of data clusters usable for fat driver
- #11196 fat: fix ubsan warning of shift-out-of-bounds
- #10706 fs_epoll: several epoll problems fix
- #11125 fs_files.c: make sure that fs_getfilep is not interrupted when holding mutex
- #11349 fs_gettype:add zipfs magic
- #11446 hostfs:fix structure layout inconsistency in hostfs
- #11090 inode: Change inode_unlink to static function
- #11188 inode: check file list before memcpy
- #11140 inode: improve the performance of get file pointer
- #11318 proc: Fix groupfd to get fd by group instead of current tcb
- #11449 procfs add poll support
- #11360 procfs/cpuinfo: Zero copylen in cpuinfo_read
- #11039 rename: fix use after free issue about rename
- #11451 smartfs: Add necessary aligned access in smartfs_rename()
- #11248 spiffs: correct mutex lock cycle of spiffs
- #10804 support zipfs,can mount zipfile
- #11232 tmpfs: fix an integer overflow
- #10880 vfs: add munmap logic to pseudofs
Networking
Improvements
- #10813 Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME
- #10893 allow icmpv6 and udp to find the dev by the ifindex with s_boundto.
- #10916 Fix RNDIS compilation error
- #10819 local: Fix the problem that local udp socketpair cannot release fifo files.
- #11443 local: make the call return of each process consistent with linux
- #11015 local: Support SO_SNDBUF option in getsockopt
- #11289 loopback: Fix flags of lo device
- #11324 icmpv6:Optimize the process of obtaining the IPv6 address through RA.
- #11010 icmpv6: Fix net mask logic in icmpv6_setaddresses
- #11197 igmp: call IFF_SET_IPv4 when igmp_send
- #11384 ipv6: Fix source address with many addresses in same network
- #11378 ipv6: Move xxx_ipv6multicast from arch to common code
- #10894 netdb: When set a dns nameserver which already exists, retrun OK
- #11076 netconfig: Enable SOCK_CLOEXEC for ioctl sockets
- #11396 netdev: Modify the logic for setting the IFF_RUNNING status of interfaces.
- #11110 Simplify getting value for different domain
- #11054 Support multiple IPv6 address per netdev
- #11406 tcp: Recover from iob shortage with TCP_WRITE_BUFFERS
- #11126 tcp: Support initial sequence number described in RFC 6528
- #11009 tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
- #10986 tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
- #11372 udp: Add check when sending too big packet without IP frag
- #11210 udp: Add support for SO_TIMESTAMP
- #11120 udp: modify ipv4 multicast to allow different conn to join simultaneously
- #10878 usersock: Return -ENOSUPP directly if domain isn't equal to PF_INET/PF_INET6
Security Issues Fixed In This Release
Compatibility Concerns
- #10605 Implement ticket spinlock
A proposal to slove #1488
Implement ticket spinlock.
- #10861 spinlock: Add spin_lock_init and spin_is_locked macro
align with Linux api naming.
- #11102 sched: explicitly select the cpuload clock source configuration
Different configurations require different dependencies. Explicitly select dependencies to avoid automatically selecting inappropriate configurations.
- #11334 stm32h7_adc: Dynamically set clock prescaler and BOOST
First commit is aligning naming and is a breaking change.
- #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:
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.
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.
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.
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
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.