You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

Work In Progress

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

Core OS

Sched

  • #13395 Critmon optimize, make possible open cpuload based on critmon and disable critical section & sched_lock to save cost.
  • #12691 sched.h: add SCHED_BATCH and SCHED_IDLE definition
  • #12584 sched.h: CPU_XXX macros can also be used without CONFIG_SMP
  • #12703 sched.h: Update doc link for tcbinfo_s
  • #13274 sched: add DEBUGASSERT to assure that affinity not zero
  • #13341 sched: adjust the scheduling strategy
  • #13105 sched: change pthread_mutex implementation from sem to mutex
  • #12742 sched: Improve Kconfig help of INIT_ENTRYPOINT
  • #13525 sched: move DUMP_ON_EXIT to sched
  • #13211 sched: replace up_cpu_index with this_cpu
  • #13271 sched: use this_task replace nxsched_self
  • #13263 sched/event: clear pending events before enable the scheduler
  • #13329 sched/group/setuptask_file: duplicate idle task fd for kernel thread
  • #13083 sched/irq: correct critical section to spin lock
  • #12802 sched/nxevent: add support of kernel event group
  • #13264 sched/policy: move g_policy from data to rodata
  • #13017 sched/sched: simplify the implementation of the function nxsched_readytorun_setpriority
  • #13134 sched/signal: fix pthread_kill use after free
  • #13530 sched/signal: Simplified Implementation for SIGEV_THREAD_TID
  • #12283 sched/signal: There is no need to use sched_[un]lock
  • #12553 sched/tcb: amend pull/12320  

MM

  • #12550 mm: add mm_initialize_pool, make pool more flexible
  • #12556 mm: mm_threshold perfer from init
  • #12501 mm/iob: Simplify IOB alloc/free logic
  • #12923 mm/map/vm_region.c: Fix usage of void* arithmetics
  • #12946 mm/mempool: rename the mempool_alloc and mempool_free function
  • #12659 mm_ubsan: add dummy to bypass runtime actions
  • #12646 mm_ubsan: add implement for dynamic_type_cache_miss

libc

  • #12672 add rint and expm1 function to cmath from libm
  • #13420 Add dummy implementations for shm_open pthread_setaffinity_np and RLIMIT_RTPRIO
  • #13429 arm64_task/pthread_start: Convert the C / inline ASM code to assembly
  • #13366 arm64/task/pthread_start: Fix rare issue with context register location
  • #13011 lib_getcwd:Fix the Name in the function description.
  • #12966 lib_remove:Repair the logical judgment
  • #12890 libc: Add macro restrictions to code that uses floating point numbers
  • #13111 libc: compile stackchk function by default
  • #12953 libs: fix the default value of process-shared attribute
  • #12975 libs: fix the default value of process-shared attribute
  • #12605 libc: scanf, printf %z change switch const to if
  • #12585 libc/execinfo: extract a common backtrace format function
  • #13013 libc/msic: Implement get_nprocs API
  • #13381 libc/misc/crc32: crc32 add slow mode, optional decrease size
  • #13441 libc/netdb: Remove unnecessary CONFIG_LIBC_NETDB checks
  • #13025 libc/netdb: Separate IPv4 and IPv6 cache size limit
  • #13220 libc/sysconf: add _SC_GETPW_R_SIZE_MAX
  • #13479 libc/time: add g_lcl_lock to protect local context in localsub
  • #13080 libc/time: remove lib_strptime
  • #12693 libc/unistd: added an implementation of the lib_flock function
  • #12609 libc/x86_64: port string functions from bionic
  • #13110 libcxxabi: libcxxabi enables exceptions by default
  • #13079 libs/libc/obstack: correctly append null byte at the end of string
  • #13482 libs/libc/obstack: implement ptr and int growing functions
  • #13495 libs/libc/obstack: revert invalid null byte append to obstack_vprintf
  • #13185 libs/libc/stdio/*printf *scanf:Add string serialization and deserialization functions
  • #13294 libs/libm: fix epsilon relaxation in log and logf
  • #13307 libs/libm/libm: apply epsilon relax factor only if epsilon is small
  • #12568 libm{libm|newlib}: fix broken sincos optimization for GCC
  • #12811 libm/copysign: respect signed zero/NaN handling in copysign
  • #13174 syscall: delete getrandom in syscall because it have moved to lib
  • #13428 gdb plugin: Encapsulate the gdb native command gcore as nxgcore
  • #12557 gdbstub: fix typo
  • #12549 gdbstub: support gdbstub_debugpoint_add/remove smp call
  • #13339 nuttx/pthread: export priority protect in pthread with ceiling priority in semaphore
  • #12561 pthread: add pthread_self/pthread_gettid_np function
  • #13462 pthread_mutx: remove unused critical_secton lock
  • #13456 pthread_mutex: add deadlock assert

tools

  • #12701 Feature/mcuboot toolchain support
  • #13021 tools: add improved pre-commit tool
  • #12794 tools: nxstyle if statement check
  • #12651 tools/imx9: prepare bootable bootloader image
  • #12838 tools/[Rust|D]: Fix build break for RISC-V
  • #12854 tools/[Rust|D]: Fix the Rust and D Builds for QEMU RISC-V
  • #12983 tools/parsetrace.py:fix parsetrace script error
  • #13321 greenhills support: add ghs linker script for mps2-an500 platform
  • #12884 greenhills support: add Kconfig, makefile, make.defs support for ghs compiler
  • #12887 greenhills support: add new platform of qemu cortex-m7
  • #13146 greenhills support: add the "__sync_synchronize" func impl
  • #12877 greenhills support: add up_getsp() implementation to adapting greenhills compiler
  • #12883 greenhills support: fix the asm build error for adapting to greenhills compiler
  • #12885 greenhills support: fix the build and link error specific to ghs platform
  • #13144 greenhills support: fix the build options warning
  • #13207 greenhills support: fix the build option warning
  • #13145 greenhills support: fix the build warning while support greenhills build
  • #12886 greenhills support: fix the build warning for ghs platform
  • #13533 greenhills support: fix the enumerated type mixed using warning
  • #13322 greenhills support: fix the ghs build warning
  • #13502 greenhills support: fix the greenhills compile warning on sizeof operand
  • #13195 greenhills support: fix the pointless comparison build warning

various

  • #12552 compiler.h: rename CMSE extension attribute macros
  • #12874 fix stm32wl5_rcc.h: Add the missing argument to RCC_PLLCFG_PLLP define.
  • #13148 include/fcntl.h: add O_LARGEFILE flags
  • #13324 include/sensors: import public definitions types and to uorb.h
  • #12690 ioctl.h: add SIOCATMARK definition to resolve compilation errors
  • #13314 ip6_tables.h: fix gcc 14 errors
  • #13257 socketlin : add lin.h and lin bus-type
  • #12692 sysinfo.h: add get_nprocs_conf/get_nprocs definition
  • #13149 sys/shm.h: add macro define for posix
  • #12594 x86_64/irq.h: use 32bit operations in up_cpu_index(

Build System

New Features

  • #12904 [Cross-Platform] Remove Unix-specific code in savedefconfig and replace it with cmake script
  • #12910 [cmake] add_application supports only registration but not compilation
  • #12964 [cmake] split the archive process to avoid parameter too long problems
  • #13019 [cmake] add nuttx_post and app_context inter targets for timing control
  • #12908 [Win32 sim] enable win32 native platfrom sim compilation by CMake fix compilation error
  • #12900 arch/sim/src/cmake/Toolchain.cmake: macOS fix unknown options: --gc-sections
  • #12856 build: Fix libc/pwd CMakeLists.txt
  • #13347 build: fix memory manager compile options for CMake
  • #12859 build: Fix Toolchain.cmake for CONFIG_SIM_ASAN enabled
  • #12880 build: set CMake policy to allow FetchContent_Populate
  • #12784 build/cmake: add user_ldscript preprocessing
  • #12866 build/cmake: fix system include dir for PROTECTED mode
  • #13143 board/maix-bit: initial cmake support
  • #13090 board/qemu-armv7a: add CMake support
  • #12868 boards/rv-virt: cmake for pnsh and nsbi
  • #13175 Cmake: [arch arm] added initial support for MSYS2
  • #13389 cmake: add support for PCI
  • #12516 cmake: reuse OpenAMP own CMake script for CMake build
  • #12592 cmake: refine sim cmake redefine symbols
  • #13449 cmake: Refactor extra_lib tagert,build include_arch path,refine sim link script target
  • #12667 cmake: strip file full path to save the code size
  • #13451 cmake: support openlibm,dhara,libmcs,lic regex CMake build scripts
  • #12608 cmake/add_library: enable library install by default
  • #12714 cmake/boards: fix build break on custom board
  • #13085 CMakeLists.txt: warning D9002 on Windows + msvc
  • #13253 cmake/nuttx_kconfig.cmake: fixed the correct .config path in the buid folder
  • #13276 cmake/tricore: filter out nostdlib in linker phase to avoid build break
  • #13499 libc: add missing preadv/pwritev in CMakeLists.txt
  • #12700 riscv/cmake: fix Toolchain.cmake
  • #12694 riscv/k230: fix apps ROMFS cmake
  • #12996 riscv/qemu-rv: add RPTUN cmake
  • #12634 sim/cmake: enable garbage collection of unused input sections
  • #12721 tools/testbuild.sh: add option -N use CMake with Ninja
  • #12805 tools/testbuild.sh: added store compilation artifacts for cmake
  • #12724 tricore/cmake: add support of cmake build for tricore

Bug Fixes

  • #12558 [bugfix] cmake:fix a few issues during CMake build
  • #12915 [bugfix] fix CMake build block when enable LTO
  • #12582 Fix cmake for cxd56xx
  • #12581 cmake: Fix build failure when -DNUTTX_APPS_DIR is specified
  • #13171 CMake: fix CMake compile errors during the protected build mode
  • #13081 cmake: fix invalid syntax when generating version.h from tags

Architectural Support

unsorted

Architecture Improvements

arm

  • #12626 arch/arm/stm32: Fix EXTI lines definitions for STM32G47XX.
  • #12664 arch/armv8-r: new config to set SPIs Configuration to edge-triggered
  • #12666 arch/armv8-r: update g_running_tasks before context switch
  • #13472 arch/arm-m: Clear lr before jump to __start
  • #13284 arch/arm: support kernel heap in BUILD_FLAT mode
  • #13416 arm generate busfault & recursive bug fix
  • #13268 arm: armv7-a/r and armv8-r up_cpu_index inline
  • #13024 arm: Fix DS1307 initialization for common STM32 logic
  • #12888 arm: Select ram vector on armv6m
  • #13505 arm_addrenv:fix app crash when enable shm in kernel mode
  • #12787 arm_backtrace_unwind:Make the backtrace search the entire stack as much as possible
  • #12954 arm/armv[7|8]-m: add syn barrier for MPU ops
  • #12925 arm/armv8-r: invalidate d-cache on boot
  • #12928 arm/armv8-r: add cp15 ops for mpu
  • #13529 arm/cortex-a,r: replace cp15 instruct to macros to align operation
  • #13239 arm/giv3: add g_ prefix to some global variables
  • #13262 arm/gicv3: set routing affinity before enable IRQ
  • #13240 arm/linum-stm32h753bi: Add support to RFID MFRC522
  • #12873 arm/lm3s6965-ek: Disable NTPC for lm3s6965 to fix maximum flash space…
  • #13557 arm/qemu: Add mounting of tmpfs
  • #13117 arm/qemu: enable WFI in up_idle
  • #13131 arm/spinlock: up_testset() sould not depends on SMP
  • #12879 arm/stm32f401rc-rs485: Add support to BMP280 sensor
  • #13565 arm/stm32f401rc-rs485: Add support to LCD 16x2 with I2C Backpack
  • #12839 arm/stm32f401rc-rs485: Add support to RFID MFRC522
  • #12860 arm/stm32h7/stm32h745i-disco: Add STM32H745I-DISCO Per Core Support
  • #12902 arm/stm32h7x3x_rcc.c: Add External Power Supply option to stm32h7x3x …
  • #12679 arm/xmc4: pwm driver
  • #13466 armv7-a gic related update
  • #13176 armv7-a timer:fix timer overflow.
  • #12956 armv7a/irq: enable fiq in tee, enable irq in ap
  • #13453 armv8-m:arch libc function need save ip register use pacbti
  • #13237 armv8-r/gicv3: correct cpu index of irouter
  • #13275 armv8-r/r52: add neon support into compiler lin

arm64

  • #12633 arch/arm64/src/imx9/imx9_lowputc.c: Fix an arithmetic sign error in d…
  • #12648 arch/arm64: allow to use custom up_idle
  • #13397 arch/arm64/src/imx9/imx9_lpi2c.c: Cleanups and error fixes
  • #13402 arch/arm64/imx9: Change Kconfig logic
  • #13403 arch/arm64/imx9: Add system reset controller
  • #13427 arch/arm64/src/imx9/imx9_lpi2c.c: Ignore spurious RX interrupts
  • #13218 arch/arm64: Move ELF_64BIT selection to arch/Kconfig
  • #12681 arm64: add initial support for ZYNQ MPSOC and ZCU111 Evaluation Kit
  • #12580 arm64: inline up_cpu_index
  • #13560 arm64_addrenv: Add support for 4 level MMU translations
  • #13363 arm64_addrenv_pgmap.c: Revoke user execution access to kernel mmap'd pages
  • #13364 arm64_addrenv.c: Flush kernel page table copy to user mappings
  • #13204 arm64_checkstack.c: Fix traversing of user stack when ARCH_ADDRENV=Y
  • #13361 arm64_syscall.c: Don't need to set register context during syscall
  • #13365 arm64_vector_table.S: Remove unnecessary instruction
  • #12695 arm64/arm64_boot.c: Fix exception caused by accesses to ICC_SRE_EL3 when GICv3 was not implemented
  • #13373 arm64/crt0.c: Fix stack alignment when executing signal trampoline
  • #12649 arm64/imx9: ccm: add default clk init
  • #13205 arm64/imx9: Force 64-bit ELF format
  • #13360 arm64/mmu: Fixes for MMU driver
  • #13362 arm64/syscall: (Re-)enable interrupts only if they were previously enable

tricore

  • #12682 arch/tricore: add support of tricore gcc toolchain
  • #12706 arch/tricore: synchronize instruction/data following MTCR/MFC

risc-v

  • #12961 arch: inline up_testset in arm arm64 riscv xtensa
  • #12579 arch/riscv: add all region in NAPOT
  • #12881 arch/riscv: add cluster local hartid
  • #12906 arch/riscv: fix IRQ_SOFT for non-SMP
  • #12546 arch/riscv: fix NuttSBI PMP config
  • #12717 arch/riscv: fix trap sp restore logic
  • #13430 arch/riscv: Fixed hardware timer warps-around issue
  • #13278 arch/riscv: revert pull#12864
  • #12864 arch/riscv: unify in-kernel syscall
  • #12619 arch/risc-v: add support for capture driver on ESP32C6 and ESP32H2.
  • #12726 arch/risc-v: make common up_allocate_heap weak symbol
  • #12732 arch/risc-v: does not clear IPI address in S mode
  • #12460 arch/risc-v/common: provide architecture specific perfmon bindings.
  • #13353 arch/risc-v/litex: Fix the litex arty_a7 build
  • #13382 arch/risc-v/src/litex: Claim all pending PLIC interrupts.
  • #13547 arch/risc-v/src/litex_ticked: Set initial tick count to known value.
  • #12804 arch/risc-v: introduce AIA support
  • #12843 arch/risc-v: add support for DC motor control on ESP32|C6|H2|
  • #12586 riscv_exception.c: Add missing comma in exception reasons array
  • #13408 riscv_mtimer: modify riscv_mtimer_current to reduce precision lost
  • #12643 riscv_tcbinfo: Fix register ordering for PC
  • #13564 riscv: add a return value to riscv_swint
  • #13561 riscv: g_current_regs is only used to determine if we are in irq
  • #12812 riscv: Fix fork() system call
  • #13354 riscv: Unify the extended context save/restore
  • #12554 riscv: Initial support for debug trigger module
  • #12559 riscv: Improve exception and irq mapping
  • #12809 riscv/debug: Add support for steppoint
  • #12819 riscv/espressif: Mark private data as static in esp_spi.c
  • #12861 riscv/fork: fix fp/gp handling
  • #12589 riscv/k230: revise canmv230:nsbi
  • #12677 riscv/k230: updates for nsh and pnsh
  • #12744 riscv/nsbi: fix k230 AMP confs
  • #12799 riscv/qemu-rv: skip reloading mhartid
  • #12807 riscv/qemu-rv: Add BUILD_PROTECTED target for rv-virt
  • #12944 riscv/qemu-rv: add RPTUN support
  • #12772 riscv/rv-virt: use RAM_START in ld.script
  • #12816 riscv/qemu-rv: add NuttSBI target for rv-virt
  • #12831 riscv/qemu-rv: revise PROTECTED mode
  • #12840 riscv/nsbi: fix up_udelay for rv32
  • #13510 risc-v: Add a new option to control exception reason
  • #12722 risc-v/bl808, sg2000: Configure MMU to cache Kernel Text, Data and Heap (T-Head C906)
  • #12571 risc-v/bl808: Add GPIO Driver
  • #12621 risc-v/bl808: Add GPADC character driver
  • #12663 risc-v/bl808: Add SPI driver
  • #12771 risc-v/bl808: Add watchdog driver
  • #12752 risc-v/bl808: Add timer driver
  • #12614 risc-v/ox64: Add LED Driver
  • #12762 risc-v/qemu-rv: Add LED Driver for QEMU RISC-V 32-bit and 64-bit

xtensa

  • #13223 Add spi slave dev to esp32 xtensa
  • #13225 espressif: Fix build with RTC
  • #13255 espressif: Fix deadlock in RT timer caused by critical section
  • #12560 espressif: Fix error while evaluating Wi-Fi task ID
  • #13368 espressif: Update external libraries to fix GPIO interrupt bug
  • #13236 espressif: Update HAL library reference to include debug assert
  • #13022 espressif: Update internal libraries reference
  • #12551 xtensa: add support for capture driver on ESP32 and ESP32|S3|
  • #12781 xtensa: add support for motor control driver
  • #12967 xtensa_cache:add up_get_cachesize api
  • #12865 xtensa/esp32: replace nxsig_usleep() with up_udelay()
  • #12750 xtensa/esp32s3: Add peripheral DMA request return value and optimize DMA initialization
  • #13277 xtensa/esp32s3: Add timing delay set interface for QSPI
  • #13291 xtensa/esp32s2: add WiFi support
  • #13454 xtensa/esp32s3: Adjust I2C clock timing
  • #12720 xtensa/esp32s3: Deinitialize ESP32-S3 QSPI GDMA engine.
  • #12871 xtensa/esp32s3: Update the rtc code to fix system blocking issue
  • #12919 xtensa/esp32s3: partition name duplicate and free
  • #12918 xtensa/esp32s3: reserve memory for a mutex struct depending on the OS
  • #12932 xtensa/esp32s3: Separate address and command flag for QSPI DMA transfer
  • #13165 xtensa/esp32s3/esp32s3_sdmmc.c: wait for command done event also on error response

x86_64

  • #13391 Add MSI/MSI-X support for intel64
  • #12583 arch/intel64: add cpu specific data and per-cpu interrupt stacks
  • #12803 arch/intel64: add support for HPET as system clock
  • #12588 arch/intel64: add support for inter-processor signaling
  • #12570 arch/intel64: get TSC frequency only when not provided from Kconfig
  • #12801 arch/intel64/irq.h: rename rdtsc macros
  • #13392 intel64: Improvements for HPET
  • #12567 arch/x86_64: addrenv should add offset only for RAM region
  • #12577 arch/x86_64/intel64/intel64_rtc.c: fix compilation
  • #12591 arch/x86_64: add SMP support
  • #13417 arch/x86_64: Add ARCH_INTEL64_DISABLE_CET
  • #13409 arch/x86_64: Add ARCH_X86_64_IDLE_NOP and ARCH_X86_64_IDLE_MWAIT
  • #13436 arch/x86_64: add basic support for R_X86_64_REX_GOTPCRELX relocation
  • #13422 arch/x86_64: Add elf32 multiboot1 wrapper for NuttX binary
  • #13313 arch/x86_64: convert all asm() to asm
  • #13317 arch/x86_64: Fix wrong RDTSCP implementation
  • #13316 arch/x86_64: Support QEMU PVH ELF loader
  • #13426 arch/x86_64/intel64: fix compilation errors in intel64_oneshot_lower.c
  • #12800 arch/x86_64/intel64/intel64_cpu.c: remove workaround for spin_lock
  • #13390 qemu-intel64: restore functionality of PCI test configs
  • #13315 qemu-intel64: simplify linker script
  • #12597 x86_64: add AVX support
  • #12613 x86_64: addrenv support
  • #12569 x86_64: hide --whole-archive behind Kconfig option

Driver Support

New Driver Support

  • #12829 Add amg88xx driver
  • #11605 Coresight: add init coresight driver framework
  • #13082 driver/mem: add Mem Driver.
  • #12834 driver/ssd1680: Add support for 1.54 inch e-paper display
  • #12938 drivers/video: add goldfish gpu fb
  • #13470 drivers/pinctl: add pinctrl framework
  • #13471 drivers/goldfish-pipe: implement goldfish pipe

Drivers Improvements

  • #12998 [driver][bcm43xxx] reset tx_seq of sido-bus when ifdown wlan-if
  • #13154 can/sja1000: drop driver dependency on __builtin functions
  • #13524 can: Add g_ prefix to can_dlc_to_len and len_to_can_dlc.
  • #13141 can: Merge netpacket/can.h into nuttx/can.h
  • #12676 driver/net/lan9250: Add lan9250_ioctl and lan9250_uninitialize APIs
  • #13464 driver/ftl: Read the consecutive eraseblocks
  • #13320 driver/usbdev: support userspace to access ep0
  • #12641 drivers: add API for drivers early initialization
  • #13492 drivers: fix gcc14 errors for virtio
  • #13107 drivers/audio: fix samp rate conversion issue
  • #13323 drivers/bch: fix uint32 overflow issue
  • #12564 drivers/net/ksz9477: Add port mirroring support
  • #12765 drivers/drivers_initialize.c: check if only one console is selected
  • #13411 drivers/fb: add panbuffer clear ioctl
  • #13468 drivers/gpio: support poll gpio device and optimize code to save memory
  • #12976 drivers/input: enable touch/kbd/mouse for virtio input
  • #13060 drivers/modem/alt1250: Disable the PIN feature in ALT1250
  • #13327 drivers/mtd/bch: fix size_t overflow when offset > 4GB
  • #13480 drivers/pty: support pty write to kill signal, like serial driver
  • #12830 drivers/serial: Make the 16550 rx trigger level configurable
  • #13202 drivers/regmap: add exit function interface.
  • #13469 drivers/reset: support rpmsg reset
  • #13328 drivers/rwbuffer: Bug fix: Set nblocks 0 after direct using wrflush
  • #13434 drivers/serial
  • #13576 drivers/syslog: compile syslog_device.c if console/char/file channel enabled
  • #12857 drivers/touchscreen: add grab for touchscreen
  • #13481 drivers/usbdev: minor update for cdcacm
  • #12930 drivers/virtio-net: Support VIRTIO_F_ANY_LAYOUT
  • #13170 drivers: Fix goldfish events x64 unresponsive interrupt issue
  • #13531 Fix build error of drivers/sensors/usensor.c
  • #13325 Input/ff: new driver frameworks for vibrator(haptic)
  • #13078 video: fix warning & update sim camera
  • #12760 virtio/serial: initial CONSOLE support
  • #12971 mmcsd_sdio:Fix performing read and write in irq
  • #12949 mmcsd: add support of getting ext_csd reg data
  • #13157 mmcsd: add write ext csd reg support
  • #13528 mmcsd: fix a logic error
  • #13215 mmcsd: make a compatibility change for cmd12 and cmd23
  • #13380 mtd:ramtron MB85RS256B address length is 2
  • #13136 mtd:use part->name as partition name when CONFIG_MTD_PARTITION_NAMES set
  • #12796 mtd/Kconfig: fix W25_SLOWREAD menu item.
  • #13252 mtd/nvs: fix align size
  • #13219 nuttx/drivers:Modify errcode returned by relay_ioctl
  • #12848 Optimize iic and spi parts and add iic slave drivers
  • #13344 pci ivshmem related driveres support
  • #13337 Revert "Fix unwanted flush in the SPI slave driver"
  • #13251 rndis: correct usb descriptor
  • #13538 sensor:Fixed the problem of user information lag in cross-core communication "stublist".
  • #13539 sensor_rpmsg.c:Fix that "stub" will be created when local core only has subscribers.
  • #12927 serial/uart_16550: include stdint.h in uart_16550.h
  • #13383 serial/uart_16550: remove up_putc spinlock
  • #13384 serial/uart_pl011: default syslog needs to check flow control in up_putc
  • #13509 serial/pci_16550: make sure that interrupts are disabled during init
  • #13102 syslog_rpmsg: Ensure the syslog ept is ready when rpmsg_send
  • #13184 timer driver:support poll.
  • #13075 usb_cdcmbim: add mbim device driver
  • #13367 usbdev: Add fastboot boardctl
  • #12914 usbdev: add USB cdcncm device driver
  • #12745 usbdev: delete unsigned comparison with 0
  • #13216 usbdev: extend the usb req len to unit32_t
  • #13190 USB 3.0 device side suppor

Board Support

New Boards

  • #13248 arm: Add support for CSK6011A SOC and CSK6011A-NANO board
  • #11709 at32uc3a0: Initial work for SimpleMachines' Mizar32-A
  • #12813 boards/esp32s3: Add initial support to the ESP32-S3-Korvo-2 board
  • #13467 boards/esp32s3: add support to esp32s3-lhcbit board

Boards Improvements

  • #12878 arm/stm32f103-minimum: Use common board MFRC522
  • #12973 board/arm/rp2040/seeed-xiao-studio-rp2040 GPIO configuration
  • #12738 board/linum-stm32h753bi: Add support to external sdram
  • #12882 board/lm3s6965-ek: restore 128K kflash
  • #12699 board/stm32f401rc-rs485: Add support to Device Configuration over Telnet
  • #12737 board/stm32f401rc-rs485: Add support to MAX7219 8x8 LED Matrix
  • #13516 boards: Update EXAMPLES_SOTEST_DEVMINOR to EXAMPLES_SOTEST_DEVMINOR_MAX
  • #12743 boards/arm/rp2040: Userled configuration to Seeed-Stdio RP2040
  • #13142 boards/arm/stm32/stm32f4discovery: Add support to RFID MFRC522
  • #13440 boards/arm/stm32h7/stm32h745i-disco: Add RPTUN support
  • #12825 boards/armv5: Make ARMv5 boards work again
  • #12593 boards/stm32: DRV8825 driver
  • #12673 boards/esp32[c3|c6|h2|s2|s3]: Ignore etctmp in common board
  • #13124 boards/esp32s3_lan9250: deinitialize the ethernet device lan9250
  • #12716 boards/esp32s3: Increse the default stack size for usbnsh
  • #12763 boards/imx93-evk: add sdimage cleanup
  • #12876 boards/lm3s6965-ek: fix memory.ld for PROTECTED
  • #12598 boards/MIMXRT1020-EVK: Fix board I2C code to adapt to last IMXRT I2C/pi…
  • #13137 boards/risc-v/esp32c6/esp32c6-devkitm: Add support to RFID MFRC522
  • #12869 boards/rv-virt: unify RV32 config names
  • #13226 boards/sim: Defconfigs for nand and mnemofs
  • #12898 boards/xtensa/esp32s3: ESP32S3 Emmc Support
  • #13478 boardctl: add board control api to start slave core
  • #13273 boardcrtl: change BOARDCTL_TESTSET to BOARDIOC_SPINLOCK
  • #12867 LTDC for Linum board
  • #12987 nuttx/boards:Uniform initialization format for init_array.
  • #12544 riscv/nuttsbi: add MTVAL argument
  • #12637 Usbnsh to seed-xiao-rp2040 board
  • #12713 zynq_mpsoc/zcu111: add support for gpio and board auto led
  • #13532 [Bugfix]Kconfig:ensure compatibility between kconfig-frontend and kconfiglib in kernel build
  • #12698 Add defconfig to use the ws2812 driver
  • #12922 arm64: Initial implementation of CONFIG_BUILD_KERNEL
  • #13376 arm64/Kconfig: Make the ARM64_PA/VA_BITS a true Kconfig variable
  • #12747 Change nucleof429zi nsh defconfig
  • #13059 defconfig: add SYSTEM_TELNETD related config
  • #13334 esp32: fix a way to test a config
  • #13234 imx9_usdhc.c: Fix build error when CONFIG_ARM64_DCACHE_DISABLE=y
  • #13069 nucleo-l432kc: Revert the USART2 config to be use by virtual COM port
  • #12780 nrf9160-dk: disable FPU for modem example
  • #13208 risc-v/bl808: Configure MMU to cache User Text, Data and Heap
  • #13199 risc-v/mmu: Configure T-Head MMU to cache User Text, Data and Heap
  • #12862 risc-v/qemu-rv: Add Build Config for leds64_rust
  • #13186 risc-v/qemu-rv: Add Build Config for leds64_zig
  • #12896 risc-v/qemu-rv: add cluster PLIC/CLINT configs
  • #12797 w25c: add W25_DEBUG sub-menu config option and update debug traces.
  • #12806 zynq-mpsoc/zcu111: independent JTAG configs from normal nsh configs

File System

New FS

FS Improvements

  • #13514 add sched note for littlefs/romfs/rpmsgfs
  • #12863 Fix the location of tmpfs pwrite write and Fixed some code check warnings
  • #13500 fs.h: fix a comment in file_operations
  • #12532 fs: add backtrace to where file opens
  • #13150 fs: add fs_heap, support shm/tmpfs/pseudofile with indepent heap
  • #12587 Fs: backtrace tweak
  • #13512 fs: Dump the list of files when the file description runs out
  • #13194 fs: nfs: Fix nfsmount error
  • #12978 fs: Rename node with inode.
  • #12969 Fslock optimize
  • #12937 fs/mnemofs: Fix journal log rw issue, rw size issue
  • #12945 fs/hostfs: Replace strcpy with memcpy
  • #13443 fs_inode:Change the type of i_crefs to atomic_int
  • #13458 fs_dup2 bug fix, memleak
  • #13573 fs/chmod/fchmod/lchmod: only set permissions by mode_t and ignore othjer bits
  • #12931 fs/epoll: Optimize implementation details
  • #12615 fs/fat: Fix Fseek Bug When File Size Is Multiple of Cluster Size
  • #12548 fs/fat/fs_fat32.c Return EOF when reading past the end of the file.
  • #13521 fs/dump: correct SCHED_DUMP_ON_EXIT to DUMP_ON_EXIT
  • #12990 fs/mmap: Fix build warning with [-Wmaybe-uninitialized].
  • #13132 fs/procfs: Supports any number of thread displays
  • #13123 fs/shmfs:Avoid an integer overflow
  • #12790 fs/spiffs: Return OK on spiffs_fstat success
  • #13407 fs/mmap: Add MADV_HUGEPAGE definitions
  • #13406 fs/mmap: Ensure anonymous pages are initialized to zero
  • #12661 fs/mnemofs: Adds Block Allocator
  • #12668 fs/mnemofs: Add parent iterator and path methods.
  • #12680 fs/mnemofs: Add LRU and CTZ methods
  • #12683 fs/mnemofs: Add journal methods.
  • #12702 fs/mnemofs: Add master node and r/w methods
  • #12943 fs/mnemofs: Autoformat
  • #12808 fs/mnemofs: Refactoring path logic, direntry size bug fix, open free bug fix
  • #12658 fs/mnemofs: Setup and VFS methods
  • #13475 fs/mount: add ftl proxy to mount block filesystem on mtd device
  • #13258 fs/mq_open: revise comments
  • #13326 fs/files_extend: Bug Fix
  • #13331 fs/inode: using inode reference to indicate unlink and simply code
  • #13077 Fsnotify
  • #12942 Hostfs support get filepath by ioctl
  • #12817 procfs/meminfo: free delaylist before reporting
  • #13058 procfs/mempool: fix did not remove when pool not enabled
  • #13092 rpmsgfs: fix out of bounds access caused by data transmission farmat
  • #13063 rpmsgfs: set fs type to rpmsgfs when mount through rpmsgfs
  • #13348 smartfs procfs: fix double declare g_smartfs_operations
  • #12939 rpmsgfs_client:Fix error return exception
  • #12941 rpmsgfs: support filelock
  • #13098 tmpfs: old data was loaded when SEEK_SET beyond end of the file
  • #13490 vfs:fix a type mismatch issue and a typo

Networking

Improvements

  • #13385 Fix the bug that netlink receive wait does not hang up
  • #13053 icmp:add net_lock to protect icmp connection
  • #13336 local_socket: add SO_SNDBUF & SO_RCVBUF support
  • #13045 localsocket improvment
  • #12639 net: Enable ICMP by default if IPv4 is enabled
  • #13028 net_chksum.c:mod process of generating sum to solve checksum error
  • #12991 net/icmpv6/icmpv6_input.c: fix undefined build error
  • #13093 net/netdev: Add periodic log for netdev statistics
  • #12689 net/netfilter: fix windows compile error
  • #12688 net/pkt: correct PF_PACKET family sending errors
  • #12995 net/pkt: fix issue that set nonblock by fcntl does not take effect
  • #13010 net/pkt: fix raw socket send data length is insufficient
  • #13120 net/tcp_timer: fix tcp_timer idle loop and retransmission bug
  • #13051 net/tcp: reset the dupack counter.
  • #12899 net/tun: Remove unused variables in read & write
  • #13191 net/tun: Support changing carrier state of TUN/TAP
  • #13350 net/udp: Fixed the issue of sending ICMP error when the destination address is broadcast/multicast.
  • #13037 netdev_upperhalf: add polling mode support for tx/rx
  • #13046 netdev/ioctl: Setting log level to warning on SIOCGIFHWADDR failure
  • #13007 netdev/lower: Add reclaim callback and use it in virtio-net
  • #13343 netdev/statistics: Add bytes for netdev statistics
  • #13008 netdev/upper: Delay replied packets to prevent TX quota become negated
  • #12992 netinet/in.h: add macro definitions to resolve compilation errors
  • #12994 netlib/route: add length for add/del route-func to reduce caller stack usage
  • #13335 netdb: Make NETDB_DNSSERVER_NAMESERVERS effective for NETDB_RESOLVCONF
  • #13038 netdb: netdb code support ffmpeg rtsp(getaddrinfo & getnameinfo)
  • #13049 Modify the IPV6 address acquisition method and the gateway settings.
  • #13125 modify for offload checksum and add macro with tcp/icmp/icmpv6/igmp checksum
  • #13026 modify the type of the ipv6 parameters to solve runtime error
  • #13029 solve Problem of tcp parameter calculation exceeding the boundary
  • #13156 sys/socket: implement compiler agnostic sockaddr_storage alignment
  • #13158 tcp_close.c:when tcp socket stays in TCP_FIN_WAIT_1 or TCP_FIN_WAIT_2,calling tcp_close_eventhandler releases received packets
  • #12999 tcp_input: if tcp->req > recvreq, send ack only when state is TCP_ESTABLISHED


Bug Fixes



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.orgFor 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.


  • No labels