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

Compare with Current View Page History

« Previous Version 27 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

Changes to Core OS

sched

  • #9084 sched: add adjtime() interface
  • #9132 sched: add the CPU bitset to initialize the non-exclusive CPU
  • #9583 sched: automatically find deadlocks when assert
  • #7464 sched: fix context switching with locked scheduler
  • #8965 sched: Fixed improper access of g_pidhash.
  • #8867 sched: Optimize implementation of strsignal()
  • #9030 sched/addrenv, binfmt: Always allocate address environment from heap
  • #9090 sched/addrenv: Implement re-entrancy for addrenv_select()
  • #9021 sched/addrenv: Miscellaneous clean-up and fixes
  • #8938 sched/assert: Assert if a thread attempts to post a semaphore incorrectly.
  • #9595 sched/assert: Change show_xxx to dump_xxx
  • #9498 sched/assert: disable function/line print if DEBUG_ASSERTIONS_FILENAME disabled
  • #9516 sched/assert: Optimizing assert handling
  • #9183 sched/assert: show stacks with the sp from regs
  • #9184 sched/assert: sig_timewait:remove useless assert
  • #8955 sched/assert: Simplify the fatal detection logic
  • #9528 sched/group: Ensure that the setting of tg_members if safe in SMP
  • #9003 sched/irq: optimizing IRQMONITOR, move up_perf_convert to irq_procfs
  • #9369 sched/misc: add coredump support on assert
  • #8743 sched/nxmutex: mutex priority inheritance optimization
  • #9066 sched/pthread: pthread_barrierwait can not be preemption
  • #9067 sched/pthread: pthread_cond_wait dead lock
  • #9002 sched/pthread: repalce sched_lock to enter_critical_section
  • #9539 sched/pthread: Return ESRCH when the task is in the process of exit.
  • #9202 sched/pthread: sched_lock should replace with enter_critical_secion
  • #9091 sched/sem/sem_init: Change sem_xxx -> nxsem_xxx in kernel modules
  • #8951 sched/semaphore: rework semaphore holder check for priority inheritance
  • #9039 sched/sched: address performance concerns for sched_lock in non-SMP case
  • #8988 sched/sched_note: add function auto-tracing
  • #8786 sched/sig_timewait:changes the macro for waitticks
  • #9203 sched/signal: fix the issue of asynchronous signal processing
  • #9299 sched/signal: Signal must be masked when it is delivered to a signal handler
  • #9100 sched/spawn: remove spawn proxy thread to simplify task/posix_spawn()
  • #9527 sched/tls: remove PTHREAD_CLEANUP from Kconfig
  • #9007 sched/wqueue: fix issue about worker can't wake up thread before work_thread running

mm

  • #9417 mm: add invalid pid dump when malloc failed
  • #9050 mm: circbuf support write or read buffer direct
  • #9561 mm: compute the heap info more accuracy
  • #9564 mm: Compute the heap info more accuracy(2)
  • #9411 mm: Correct the callsite of mm_mallinfo
  • #9435 mm: Dump all memory blocks on allocation failure
  • #9555 mm: mm leak dump build error fix and memory foreach optimization
  • #9601 mm: mm_lock.c: reformat preprocessor
  • #9151 mm: memory allocations return valid pointer when request 0 size
  • #9563 mm: Rename PID_MM_INVALID to PID_MM_LEAK
  • #9560 mm: Rename mm_memdump_s to malltask
  • #9335 mm: Support memdump can show increased memory
  • #9476 mm/kmm_map: add missing FAR qualifiers
  • #9368 mm/kmm_map: add support to dynamically map pages into kernel virtual
  • #9055 mm/mm_map: give the mm_map as parameter to the mm_map functions
  • #9488 mm/mempool: allocate a chunk for multiple mempool avoid memory fragmentation
  • #9051 mm/mempool: fix bug, use incorrect free in mempool init
  • #9418 mm/mempool: fix bug read out of bounds when realloc
  • #9337 mm/mempool: fix bug when calculating mempool delta
  • #9052 mm/mempool: fix memory consumption double counting issue
  • #9433 mm/mempool: fix seqnumber statistics error in memdump
  • #9474 mm/mempool: remove nexpend and totalsize from mempool_s
  • #9336 mm/mempool: support when malloc failed dump mempool info
  • #9416 mm/mempool: Support when malloc failed dump mempool info

libs

  • #9284 libc: add regex implementation
  • #9148 libc: Add setbuffer to stdio.
  • #9062 libc: cleanup per-thread resource in exit/quick_exit
  • #8958 libc: correct config define of arch functions
  • #9480 libc: fix build break on kernel mode
  • #9181 libc: fixed armv7-m strcmp build issue
  • #9580 libc: lib_strftime: Fix %I to avoid printing 00:xx AM/PM
  • #9557 libc: lib_syslograwstream: fix bug when iob alloc failed
  • #9106 libc: memcpy M-profile PACBTI-enablement
  • #9543 libc: netdev/upper: Optimize on quota related operations
  • #8946 libc: print error code for unknown errors in strerror/gai_strerror
  • #9585 libc: Support gcc FORTIFY_SOURCE features
  • #9513 libc: Prefer to implement memfd on top of shm
  • #9193 libc/armv8-m: fix build break if MVE is disabled
  • #9497 libc/fdcheck: add fdcheck module
  • #9536 libc/fdcheck: compatibility enhancement
  • #9547 libc/fdcheck: Fix undefined reference to `getppid'
  • #9405 libc/fdsan: add fdsan protection for all file pointers
  • #9496 libc/fdsan: keep f_tag unchanged
  • #9384 libc/libc.csv: Correct type of return value for strstr
  • #8802 libc/locale: support iconv_open,iconv,iconv_close
  • #9260 libc/misc: add Fdsan module
  • #9076 libc/mm: fix files can not be compiled incrementally
  • #9534 libc/netdb/dns: fix dns wrong response ID error
  • #9238 libc/pthread: fix nxstyle errors
  • #9199 libc/pthread: fixed pthread incorrect return values
  • #9207 libc/qsort: fix invalid-pointer-pair if enable detect_invalid_pointer_pairs=2
  • #9456 libc/regex: provide a separate kconfig for regex
  • #9365 libc/stream/hexdump: add hexdump stream to dump binary to syslog
  • #9138 libc/string: select arch's libc for kernel/userspace optionally
  • #9605 libc/unistd: add getpgrp function
  • #9448 libc/wchar: Implement vswprintf
  • #9487 libdsp: Add average filter
  • #9061 libm/newlib: add newlib/libm support
  • #9083 libm/openlibm: add math library openlibm support.
  • #9125 libm/libmcs: add math library libmcs support
  • #9044 libxx: remove redundant code #9158 libelf: Support prioritized init and fini arrays

Misc

  • #9610 binfmt: Always include arch/elf.h in include/nuttx/elf.h
  • #9395 binfmt/elf: Support loading fully linked executables.
  • #9426 binfmt/elf/coredump: alignment stack buffer to 64 to match gdb request
  • #9376 binfmt/elf/coredump: add sanity checks for stack pointer
  • #9366 binfmt/elf/coredump: add support of dump task stack without memory segments
  • #9318 binfmt/elf/coredump: correct register offset after xcp.regs update
  • #9099 binfmt/execmodule: correct destroy flow
  • #9568 Debug:support python script auto debug nuttx kernel
  • #9600 Fix assertion of free a wrong heap
  • #9307 Fix windows compile errors because of double quotes in config
  • #9147 include/err: Enforce c linkage for err and warn functions.
  • #9459 include/nuttx/spi.h Fix SPIDEVID_TYPE macro definition  
  • #8956 Let BOARDIOC_SOFTRESETCAUSE_ASSERT equals to the default value of BOARD_ASSERT_RESET_VALUE
  • #9274 modify type of numbytes in audio_buf_desc_s from uint16_t to apb_samp_t
  • #9348 openamp: decoupling the transport layer and virtio device layer  
  • #9406 openamp: virtio.h add version field in device id table struct
  • #9553 Openamp/Kconfig: add cache and debug config for openamp
  • #9149 Remove #warning in the unnecessary places
  • #9594 Replace $(INCDIR) and ${DEFINE} with $(INCDIR_PREFIX) and $(DEFINE_PREFIX)
  • #8726 Replace the unsafe function(strcat, sprintf) with the safe one(strlcat, snprintf)  
  • #9509 sdcard: update sdcard detection to avoid 0xff asignment to bool type
  • #9424 semantic/parser: fix compile warning found by sparse
  • #9142 signal: add macro NSIG
  • #9201 system/signal: in interrupting the context, regs modify logic error  

Changes to the Build System

Improvements

  • #9400 tools: Add way to get current defconfig name on runtime
  • #9572 tools: Fix CONFIG_BASE_DEFCONFIG generation
  • #9107 tools: Fix some error in Windows native build
  • #9462 tools: Support string upper/lower case in make
  • #9334 tools/mkallsyms: add exception handle
  • #9069 tools/mksymtab: Fix a compilation warning
  • #9210 tools/nuttx-gdbinit/armv7-a: reorder and synchronization registers of save/restore
  • #9198 tools/nuttx-gdbinit: improve experience of gdb backend scripts
  • #9234 tools/nuttx-gdbinit/armv7-a: add fpu support
  • #9211 tools/Unix: treat kconfig warning as failure
  • #9231 tools/refresh.sh: Add option to refresh all archs or all chips


Architectural Support

New Architecture Support


  • #9465 initial FPU support for ARMv8R AARCH32 
  • #9443 Support for ARMv8R AARCH32

Improvements

  • #9115 arch: Return directly when arch not support interrupt context save

  • #8823 arch: add more dependent header file

  • #9296 arch: Save sigdeliver into xcp in the case of signal self delevery

  • #9131 arch/assert: Distinguish between assert and exception

  • #8948 arch/boards: fix stm32f411-mininum:nsh compilation failure

  • #9343 arch/all: in smp pthread_cancel occasionally deadlock except for arm64

  • #9313 arch/arm: Add a "cc" flag

  • #8814 arch/arm: Add armv7m assembly strcpy.

  • #9019 arch/arm: change up_saveusercontext to assembly code

  • #8863 arch/arm: enable eoimode only select CONFIG_XXX_GIC_EOIMODE

  • #9338 arch/arm: Fix Kconfig style and texts

  • #9072 arch/arm: relax compiler check for workaround with "GCC 12.2"

  • #9085 arch/arm: Resolving warnings for assembly instructions

  • #9310 arch/arm: set arm_testset to weak function

  • #9018 arch/arm: update running task when context switch occurred

  • #9048 arch/arm/{armv7a/armv7r}l2cc: Don't repeat disabling the cache when the cache is already disabled

  • #8930 arch/armv7-r: add armv7-r smp support

  • #9311 arch/armv8-m: add ARMV8M_TRUSTZONE_HYBRID feature

  • #9458 arch/armv8-r: Fix warning when configuring fvp-armv8r:nsh_smp

  • #9478 arch/arm/backtrace: validate PC register before process unwind

  • #9121 arch/arm/unwind: EABI unwind needs frame pointer support

  • #9034 arch/arm/cxd56: Add lowerhalf interface to keep power when cold sleep

  • #9469 arch/arm/gd32f4: add sdio driver for GD32F4

  • #9493 arch/arm/gd32f4/Fixed Kconfig options for obsolete tickless systick options.

  • #9325 arch/arm/imxrt: Base address missing from imxrt_flexio_get_shifter_buffer_address returned address

  • #9607 arch/arm/imxrt: Fix implicit function declaration

  • #9024 arch/arm/imxrt: FlexIO support

  • #9324 arch/arm/imxrt: Wrong dlastsga or slast setting if doff or soff larger than one

  • #9026 arch/arm/imx6: with ar8031

  • #9346 arch/arm/kinetis: s32k1/s32k3:edma {s|d}last needs to be total xfer size

  • #9001 arch/arm/kinetis/s32k3xx: EMAC MCAST support

  • #9402 arch/arm/{nrf52|nrf53}: fix IN endpoint completion logic

  • #9508 arch/arm/{nrf52|nrf53}: various fixes to improve USB stability

  • #9444 arch/arm/{nrf52|nrf53}: validate if EasyDMA transfer is possible

  • #9431 arch/arm/nrf52: add MCUboot support

  • #9008 arch/arm/nrf52: add QSPI support

  • #9387 arch/arm/nrf53: add QSPI support

  • #8795 arch/arm/nrf53: add support for RPMSG HCI

  • #9359 arch/arm/nrf53: add USBD support

  • #8827 arch/arm/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y

  • #9340 arch/arm/nrf53: add I2C support ported from nrf52

  • #9442 arch/arm/nrf53: add MCUboot support

  • #9351 arch/arm/nrf53: add SPI support ported from nrf52

  • #9356 arch/arm/nrf53: correct text config I2C3 Master

  • #9252 arch/arm/sama5: add ATSAMA5D2/D4 Secure Fuse Controller (SFC) driver

  • #9377 arch/arm/sama5: Add touchscreen calibration IOCTLs, structs, and implement for ATSAMA5D2

  • #9215 arch/arm/sama5: Fix OHCI SchedulingOverrun interrupt storm.

  • #9390 arch/arm/sama5: improve LCD support and correct minor errors

  • #9286 arch/arm/sama5: Make EHCI work with slow devices.

  • #9357 arch/arm/samv7: remove alignment check that is not needed

  • #9112 arch/arm/sama5: SAMA5D2 Class D

  • #9341 arch/arm/sama5: SAMA5D2 SPI DMA fix and Performance Enhancements

  • #9157 arch/arm/sama5: Use a recursive mutex to fix OHCI deadlock.

  • #9604 arch/arm/stm: Fix duplicate include guard

  • #8992 arch/arm/stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration

  • #9491 arch/arm/stm32: Removed unused STM32_TICKLESS_SYSTICK Kconfig option.

  • #8976 arch/arm/stm32/otg: rasie an assertion if IN request is not possible to transfer

  • #8943 arch/arm/stm32/stm32_eth: Added error handling for abnormal interrupts.

  • #8975 arch/arm/{stm32f7,stm32h7,stm32l4}/sdmmc: callback support requires HPWORK

  • #9228 arch/arm/stm32h7: sdmmc It is not an error if no wait was needed

  • #8945 arch/arm/stm32h7/otg: support for OTG HS external ULPI

  • #8969 arch/arm/stm32h7/otgdev: FS transceiver must be enabled if OTGFS enabled

  • #9006 arch/arm/stm32h7/rcc: make VOS0 configurable from board.h

  • #9088 arch/arm/stm32_f7/h7_eth: Added error handling for abnormal interrupts.

  • #9218 arch/arm/stm32f0l0g0: Fix stm32f0l0g0 GPIO definitions

  • #9216 arch/arm/tiva: Fix i2c message buffer error

  • #9441 arch/arm/tiva: start FPU before GPIO config

  • #9515 arch/arm64: save FPU context when a context switch occurs in SMP mode

  • #9464 arch/arm64: use adrp instead of adr in bss init code

  • #9333 arch/arm64: support more interfaces for gicv3

  • #9023 arch/arm64: Support tickless mode

  • #9332 arch/arm64: Each core initializes its own idle stack in SMP

  • #9315 arch/arm64: Support unalign cache clean.

  • #9243 arch/arm64: Add support for Multiple UART Ports

  • #9227 arch/arm64: merge serial_pl011.c and qemu_serial.c

  • #8994 arch/arm64: fixed arm64 backtrace issue

  • #8990 arch/Arm64: arm64 pmu supported

  • #8876 arch/arm64: fixed cache issue and add more cache interface

  • #9098 arch/arm64: Updating ARCH_EARLY_PRINT support

  • #9065 arch/arm64: in smp pthread_cancel occasionally deadlock

  • #9330 arch/arm64: .bss initialization using assembly language

  • #9220 arch/arm64: preprocess link script to make configure more flexibly

  • #8799 arch/arm64: Support for FPU profile with procfs

  • #9118 arch/risc-v: Add option for selecting coherent DMA.

  • #9114 arch/risc-v: change up_saveusercontext to assembly code

  • #9123 arch/risc-v: Fix save/load FPU macros

  • #9103 arch/risc-v: Fixed FPU register error

  • #9597 arch/risc-v: litex/gpio: Fix incorrect declaration name.

  • #9279 arch/risc-v: Remove riscv_copystate.c as it is not used a…

  • #9485 arch/risc-v: Store user context into the kernel stack

  • #9248 arch/risc-v/addrenv: Create utility function for dynamic mappings

  • #9481 arch/risc-v/backtrace: correct stack pointer if enable ARCH_KERNEL_STACK

  • #9538 arch/risc-v/barrier: Define more granular memory barriers

  • #8787 arch/risc-v/kernel mode: Add a stripped down, native version of SBI for NuttX

  • #9526 arch/risc-v/vfork: Replace jal with call for long jump

  • #9192 arch/risc-v/litex: Fix emac driver compilation when only IPv6 is used.

  • #9586 arch/risc-v/espressif: Add full GPIO support

  • #8957 arch/risc-v/espressif: Add support for Periodic and Oneshot Timers

  • #8980 arch/risc-v/espressif: Add support for RTC subsystem

  • #8953 arch/risc-v/espressif: Add support for Tickless mode

  • #8954 arch/risc-v/espressif: Panic if CPU interrupt allocation fails

  • #9545 arch/risc-v/espressif: Update esp-hal-3rdparty library

  • #8971 arch/risc-v/espressif: Use spinlock APIs for defining critical sections

  • #8973 arch/risk-v/k210: Fix k210 timer on QEMU 6.1 or later

  • #9548 arch/risc-v/mpfs: add CoreMMC support

  • #9439 arch/risc-v/mpfs: Add CoreSPI driver for Polarfire SoC

  • #9440 arch/risc-v/mpfs: Add mpfs_vbus_detect

  • #9419 arch/risc-v/mpfs: add support for CoreI2C fpga driver

  • #9489 arch/risc-v/mpfs: Enable KMM_MAP for knsh

  • #9212 arch/risc-v/mpfs: Fix some logic errors in the driver

  • #9430 arch/risc-v/mpfs: Modify mpfs_i2c.c to support arbitrary number o…

  • #9461 arch/risc-v/mpfs: Minor fixes / tweaks to the driver

  • #9503 arch/risc-v/mpfs: Remove MMU mappings and flush TLB upon boot

  • #9081 arch/rv-virt/knsh64: increase proxy stack size to avoid overflow

  • #9075 arch/rv-virt/nsh64: enable CONFIG_BCH to support block device access

  • #9312 arch/xtensa: only cmp fpu coprocessor for fpu test

  • #8977 arch/xtensa: Remove FAR qualifier for Xtensa-specific files

  • #9401 arch/xtensa/esp32: Add missing SPI Flash ROM functions

  • #8993 arch/xtensa/esp32: Add support for universal mac addresses

  • #9082 arch/xtensa/esp32: BLE Bugfix

  • #9078 arch/xtensa/esp32: enable LIBC_ARCH_ATOMIC

  • #9020 arch/xtensa/esp32: ESP32 not use IMEM in user heap mode

  • #9408 arch/xtensa/esp32: Fix build issues for SoftAP mode

  • #9236 arch/xtensa/esp32: Fix himem driver crash in SMP mode

  • #8926 arch/xtensa/esp32: fix signal deliver when task is running on ther CPU

  • #8963 arch/xtensa/esp32: Fix Wi-Fi driver parameter settings

  • #8974 arch/xtensa/esp32: Make asprintf and lib_free corresponding

  • #9077 arch/xtensa/esp32: Ssd1306

  • #9475 arch/xtensa/esp32: Support multiple PHY init data bin

  • #9242 arch/xtensa/esp32[s2]: Define syscall table to enable using ROM functions

  • #9542 arch/xtensa/esp32s2: Fix SPI DMA implementation

  • #9361 arch/xtensa/esp32s3: add dedicated interrupt stack for ESP32-S3 by default

  • #9110 arch/xtensa/esp32s3: Add RTC support

  • #9156 arch/xtensa/esp32s3: add support to WPA3 on Station Mode

  • #9525 arch/xtensa/esp32s3: Add USB OTG device driver

  • #8979 arch/xtensa/esp32s3: call softAP callback when Wi-Fi driver TX is done

  • #9367 arch/xtensa/esp32s3: pause other CPU before SPI flash operations

  • #9549 arch/xtensa/esp32s3: SPI support quad I/O mode

  • #9502 arch/xtensa/esp32s3: Support 32MB SPI flash

  • #9380 arch/xtensa/esp32s3: Support 32MB PSRAM

  • #9136 arch/xtensa/esp32s3: Support octal lines mode SPIRAM

  • #9397 arch/xtensa/esp32s3: SPI slave driver

  • #9232 arch/xtensa/esp32s3: use wapis init config to save Wi-Fi data

  • #9255 arch/xtensa/esp32xx: Workaround to avoid printing serial trash character

  • #9190 arch/sim: do not free memory of zero-length reallocation

  • #9070 arch/sim: Implement text heap

  • #9079 arch/sim: Move up_textheap_xxx to common place

  • #9071 arch/sim: multi netdevice forward issue when ll_guardsize not 14

  • #9472 arch/sim: Replace uart_[xmit|recv]chars_dma with uart_dma[txavail|rxfree]

  • #9533 arch/sim: Support more sockopts on native socket

  • #9208 arch/sim/asan: disable detect_invalid_pointer_pairs/detect_stack_use_after_return

  • #8997 arch/sim/hostfs: pass flag O_BINARY to host

  • #9186 arch/sim/lsan: disable fast-unwind by default

  • #9468 arch/sim/ostest: enable priority inheritance testing

  • #9291 arch/sim/posix/backtrace: process host backtrace with critical section

  • #9518 arch/sim/posix/sim_hostusrsock: process host network syscall with critical…

  • #9308 arch/sim/sim_alsa: modify buffer_size in GET_BUFFERINFO when offload capture.

  • #8961 arch/sim/sim_x11eventloop: fix X11 event accumulation

  • #9109 arch/sim/usbdev: fix unpaired critical_section()

  • #8996 arch/sim/win/hostuart: only read key event from console

  • #8995 arch/sim/win/hosttime: calculate sec/ms independently to avoid overflow

Driver Support

New Drivers

  • #9189 drivers/audio: add support for the ES8311 codec
  • #8775 drivers/audio: add audio_dma device driver.
  • #9372 drivers/lcd: add JD9851 driver
  • #8982 drivers/sensors: add support of InvenSense MPU-9250 sensor
  • #9452 drivers/sensors: add BMI270 IMU support
  • #9453 drivers/sensors: add bh1749nuc color sensor support
  • #9258 drivers/virtio: add virtio-mmio-blk driver Audio Support

Improvements

  • #9027 drivers/audio: Add audio underrun notice and support it in cxd56 audio driver
  • #9609 drivers/can/can.c: Fix nested loops with same variable
  • #9450 drivers/can/mcp2515.c add missing spi configuration in mcp2515_r…
  • #9399 drivers/can/mcp2515.c Fix Configure Spi Bus on every bus lock
  • #9393 drivers/can/mcp2515.c Fix Missing Chipselect de-assert before bus unl…
  • #9427 drivers/can/mcp2515.c Use SPIDEV_CANBUS(config->devid) instead of SP…
  • #8773 drivers/dma: support dma driver model
  • #8922 drivers/emmc: eMMC driver support
  • #9529 drivers/ioexpander/pca9555: fix const correctness of pin set parameters
  • #9398 drivers/input/tsc2007: Rename touchscreen ioctls for clarity
  • #8398 drivers/lcd/st7789: Dynamic adjustment of the orientation, switch orientation on the fly
  • #9463 drivers/modem/alt1250: Update alt1250 driver
  • #9119 drivers/misc: fix missing instantiation of return value in rwb_mediaremoved.
  • #9556 drivers/misc/rpmsg: add fdsan support for rpmsg dev/mtd/blk
  • #9436 drivers/mtd: check args for nvs read
  • #9011 drivers/mtd: fix uninit data in mtd_config_fs
  • #9492 drivers/mtd: mtd_config name len max changed to NAME_MAX
  • #9342 drivers/mtd/gd25: Flash memory - performance enhancements
  • #9500 drivers/mtd/is25xp: Enable usage of several chips on the same spi bus
  • #9154 drivers/mtd/nand: Return -EUCLEAN when the bit error happen but fixed by ecc
  • #9281 drivers/mtd/w25qxxxjv: add dual die support for 1 Gbit flash
  • #9272 drivers/mtd/w25qxxxjv: fix STATUS2_QE_ENABLED bitfield write
  • #9396 drivers/net/slip: Switch to poll based design
  • #8987 drivers/note: fix note_drivers error
  • #9130 drivers/pipe: fix blocking file_pipe
  • #8985 drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open)
  • #9505 drivers/ptmx: Fix a potential buffer overflow
  • #9554 drivers/rptun: rptun and rptun_dump bug fix
  • #9592 drivers/segger: Change the default value of SEGGER_RTT_MAX_NUM_DOWN_BUFFERS to SEGGER_RTT_MAX_NUM_UP_BUFFERS
  • #9012 drivers/sensors/APDS9922:
  • #9608 drivers/sensors/apds9960: Fix use after free
  • #9004 drivers/sensors/Kconfig: Fix bmi160 help texts in Kconfig
  • #9013 drivers/sensors/Kconfig: Fix bmp280 texts in Kconfig
  • #9589 drivers/sensors/mpu60x0: add IOCTL support
  • #8999 drivers/sensors/mpu60x0: Fix the error when reset mpu60x0 in SPI case
  • #9305 drivers/serial: Fix coverity issue
  • #9292 drivers/serial: fix race condition in multi-thread write
  • #9219 drivers/serial: fix update local flags for the pty device attribute
  • #9049 drivers/serial: support tty c_cc VMIN & VTIME
  • #9354 drivers/serial/16550: dma support 16550 uart
  • #9473 drivers/serial/16550: Include nuttx/clk/clk.h
  • #9283 drivers/serial/16550: serial output can cause deadlock
  • #9105 drivers/spi/spi_bitbang: Add private data on spi_bitbang
  • #9102 drivers/spi/spi_bitbang: Fix build warnings
  • #9404 drivers/syslog: add mutex to syslog_default_write
  • #9591 drivers/syslog: Add sc_write_force callback
  • #9176 drivers/syslog: add syslog option definition
  • #9364 drivers/syslog: use internal buffer to decoupling syslog with iob
  • #8950 drivers/telnet: Remove TELNET_CHARACTER_MODE
  • #9133 drivers/telnet: Refused to enter character mode
  • #9541 drivers/usbdev/cdcacm.c: register console only for device with minor number 0
  • #9331 drivers/usbhost: Can now handle multiple interface descriptors.
  • #9245 drivers/usbhost: Fix function address generation for multi-port root hubs.
  • #9287 drivers/usbhost: Make unplugging hubs more reliable.
  • #9223 drivers/usbhost/usbhost_cdcacm.c: fix warning
  • #9257 drivers/usbhost/usbhost_hub: Prevent crash when the last hub port is used.
  • #9479 drivers/usrsock/dns: add sanity check before send dns event
  • #9520 drivers/usrsock/rpmsg_server: fix poll recursive when revent POLLHUP or POLLERR
  • #9581 drivers/usrsock/usrsock_server: fix incomplete received data error
  • #9261 drivers/usrsock/usrsock_server: fix issues with usrsock_rpmsg_sendto_handler
  • #8949 drivers/video: passthrough unknown ioctl commands for customized scenarios in fb driver
  • #9045 drivers/video: Support spot position setting
  • #9221 drivers/video/fb: adapt to fbmem dynamic update.
  • #8907 drivers/video/fb: add vsync offset support
  • #9101 drivers/video/fb: fix pollnotify calling crash in advance
  • #9328 drivers/video/fb_driver: add fb_open and fb_close
  • #9388 drivers/video/vnc_server: Fix that vnc_updater thread exited caused by readed a null data
  • #9329 drivers/video/vnc_server: set touch.maxpoint to 1 for circbuf_init
  • #9447 drivers/virtio: Fix virtnet_transmit() in virtio-mmio-net.c
  • #9457 drivers/virtio: Fix virtio-mmio-net
  • #9582 drivers/virtio: Use one dscriptor for RX in virtio-mmio-net.c
  • #9134 drivers/wireless: Fix mtu info for gs2200m

Audio Support

Improvements

  • #9381 audio: add channels range
  • #9152 audio/pcm_decode: fix warnings regarding unused functions and vars

Board Support

New Board Support

  • #9322boards/nrf52: add initial support for Thingy:52 board
  • #9323boards/nrf53: add initial support for Thingy:53 board

Improvements

File System

Improvements 

  • #9063 fs: Add g_ prefix to file_operations and mountpt_operations
  • #8939 fs: Flush the file system cache in BOARDIOC_POWEROFF too
  • #9521 fs: move memset to upper lever for statfs and add f_fsid field
  • #9558 fs: some minor changed about the fs
  • #9060 fs/cromfs: Fix faulty DEBUGASSERT() check
  • #9000 fs/hostfs: align operation flags define with fcntl.h
  • #8868 fs/hostfs: switch working directory
  • #9550 fs/fdcheck: Let FDCHECK depend on SCHED_HAVE_PARENT
  • #9009 fs/inode: Fixes in asprintf usage.
  • #9093 fs/inode: when searching for nextname skip "/" and "./"
  • #9037 fs/littlefs: littlefs shouldn't be used without C99 BOOL
  • #9120 fs/littlefs: Add patch for littlefs to use kmm_malloc/free on kernel with MMU. Upgrade to latest littlefs
  • #9140 fs/mtd: add support for MTDIOC_ERASESECTORS ioctl
  • #9146 fs/mtd: Implement MTDIOC_ERASESTATE and MTDIOC_ERASESECTORS
  • #9144 fs/mtd: minor fix for mtd/nand driver
  • #9145 fs/mtd/nand: Add nand_raw_initialize to skip the probing
  • #9347 fs/partition: register partition device if caller doesn't provide handler
  • #9394 fs/procfs: add cpuinfo
  • #8991 fs/procfs: add total time running time of task
  • #9073 fs/procfs: fix readdir loss last character
  • #9540 fs/vfs: Proper use of sigisemptyset
  • #9205 fs/vfs: Zero file struct field with memset
  • #9385 fs/vfs/fs_poll: Fix wrong return value in CONFIG_BUILD_KERNEL
  • #9576 fs/vfs/sendfile: Fixed behavior of sendfile when count is set to zero.

Networking

Improvements

  • #9423 net: Fix task block when devif_send fails.
  • #9265 net: move ttl field into socket_conn_s struct
  • #9237 net: remove conn-related casts
  • #9254 net: Support to PMTUD
  • #9180 net/can: control msg support multi-attribute return
  • #9111 net/can: fix can mssage corruption if enable NET_TIMESTAMP
  • #9160 net/can: Remove the unnecessary "ret = OK;" in can_getsockopt
  • #9169 net/ethernet: add ETHERTYPE define
  • #9483 net/icmp: Save poll device in icmp_poll_s
  • #9174 net/icmp6: add icmp6-related definition
  • #9222 net/icmp6/in.h: add SOL_IPV6 protocol-level socket options IPV6_RECVHOPLIMIT
  • #9195 net/icmpv6: add SOCK_RAW type support
  • #9177 net/if: add net device type
  • #9178 net/ip: add iphdr definition
  • #9171 net/if_arp: add arphdr definition
  • #9519 net/inet_addr: return INADDR_NONE(-1) when input string is invalid
  • #9179 net/ip6: add ip6-related definition
  • #9266 net/ipv6: support SOL_IPV6 options IPV6_UNICAST_HOPS and IPV6_MULTICAST_HOPS
  • #9269 net/ipv6_setsockopt: Merge similarity logic
  • #9196 net/ipforward: copy iob when broadcast forward
  • #9043 net/ipforward: limit the forwarding range of broadcast packets
  • #9244 net/local: fix blocking local sockets
  • #9295 net/net: Add the check that socket domain is equal to bound address type, when do bind.
  • #9162 net/net: Simplify the tcp/udp existence check
  • #8610 net/netdev: Add upper half of netdev and simplify sim driver
  • #9517 net/netdev: remove ASSERT when ifindex is invalid
  • #9543 net/netdev/upper: Optimize on quota related operations
  • #9293 net/netdev_upper: Protect quota by spin lock to allow netpkt_xxx be called in interrupt context
  • #9522 net/netfilter: add NF_IP_xxx definition
  • #9188 net/netinet/include: header file definition changed to nuttx format
  • #8864 net/netlink: add RTM_NEWADDR, RTM_DELADDR and RTM_GETADDR
  • #9175 net/netlink: convert lltype to device type
  • #9116 net/procfs: Support to show MTU in netdev statistics
  • #9170 net/route: add struct in6_rtmsg definition
  • #9290 net/rpmsg: initialize semaphore count before wait
  • #9042 net/rpmsg: Set family for rpaddr in ns_bind
  • #9374 net/socket: Fix send() / recv() in BUILD_KERNEL
  • #9588 net/socket/recvfrom: Fix buffer copy direction when using BUILD_KERNEL.
  • #9074 net/tcp_input: drop SYN when no free node in the backlog
  • #9187 net/tcp_monitor: start_monitor return OK when connect closed by peer
  • #9414 net/tcp: Add flag for tcp_close to avoid double free
  • #9262 net/tcp: Add NewReno congestion control.
  • #8782 net/tcp: add TCP_MAXSEG support
  • #9041 net/tcp: Fix clear condition in ofoseg input
  • #9172 net/udp: add udphdr definition #9173 if_ether: add ether_arp definition
  • #9214 net/udp: change PKTINFO flag to socket_conn_s struct
  • #9194 net/udp: Remove wrong check in udp_readahead
  • #8947 net/usrsock_server: Improvement on sendto errors
  • #9139 wireless: add IW_AUTH_WPA_VERSION_WPA3 flag to support WPA3
  • #9113 wireless/bluetooth: Initialize private bt_driver_s member.
  • #9068 wireless/bluetooth: Fix the Unexpected ACL flags error
  • #9087 wireless/bluetooth: Fix build error when BT_GATT_CCC is used.
  • #9471 wireless/bluetooth: Add a generic access service.
  • #9166 wireless/bluetooth: Support removable bluetooth modules.

Compatibility Concerns

  • #8827 arch/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y  

Users using nvmc and flash must allow BSD components (CONFIG_ALLOW_BSD_COMPONENTS=y).

  • #8992 stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration  

All boards board.h should be migrated using tools/stm32_pinmap_tool.py `tools/stm32_pinmap_tool.py --pinmap arch/arm/src/stm32h7/hardware/stm32h7x3xx_pinmap_legacy.h --addall --suffix _0 --report /include/board.h it will output 2 sections that should be used to update the board.h.

  • #9527 sched/tls: remove PTHREAD_CLEANUP from Kconfig  

use PTHREAD_CLEANUP_STACKSIZE to enable or disable interfaces pthread_cleanup_push() and pthread_cleanup_pop(). Same as TLS_TASK_NELEM - It is no need to use two variables. Make the reserved entries more explicit

  • #8985 drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open)  

It would be a possible breaking change if any application was written specifically to expect an open for write-only  (and O_NONBLOCK cleared, of course) to be non-blocking even if there are no readers. Being able to port POSIX-compliant applications that expect open to block when opening for write-only with no readers would enhance NuttX's objective of "to achieve a high degree of standards compliance. The primary governing standards  are POSIX and ANSI standards". That is the case for RTP Tools, for instance.


Security Issues Fixed 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