Versions Compared

Key

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

Table of Contents

Work In Progress

Warning
titleWork In Progress
NuttX X.Y has not been released yet. These Release Notes are a work-in-progress in preparation for the next release of NuttX.  There is a board tracking the PRs that need to be looked at to add to this doc for the OS TODO ADD LINK and for the Apps TODO ADD LINK

What's New In This Release

...

Markdown
* [#16554](https://github.com/apache/nuttx/pull/16554) sched: assert: Print Stack pointer value when not within the stack
* [#16673](https://github.com/apache/nuttx/pull/16673) sched: Fix smp scheduling
* [#16919](https://github.com/apache/nuttx/pull/16919) sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build
* [#16927](https://github.com/apache/nuttx/pull/16927) sched/signal: Old signal action need save sa_user
* [#16481](https://github.com/apache/nuttx/pull/16481) sched/wdog: Replace periodical timer with the wd_start_next.
* [#16545](https://github.com/apache/nuttx/pull/16545) sched/wqueue: Fix windows compilation errors.
* [#16593](https://github.com/apache/nuttx/pull/16593) sched/wqueue: Fix windows compilation errors.

MM

...

tools

cmake

Markdown
* [#16880#16617](https://github.com/apache/nuttx/pull/1688016617) archmm: add CONFIG_MM_NODE_GUARDSIZE option
* [#16653](https://github.com/apache/nuttx/pull/16653) mm/Kasan: Fixed some bugs

libc

Markdown
* [#16568](https://github.com/apache/nuttx/pull/16568) libc: Change atomic_fetch_cxx to macro
* [#16768](https://github.com/apache/nuttx/pull/16768) libc: fix assert "Free memory from the wrong heap" with flat mode and…
* [#16713](https://github.com/apache/nuttx/pull/16713) libc/idr: Fix Use-After-Free during idr_destroy()
* [#16675](https://github.com/apache/nuttx/pull/16675) libc/mcount: add armv6m mcount implementation
* [#16811](https://github.com/apache/nuttx/pull/16811) libs/libc/netdb: Optimize the DNS timeout calculation logic
* [#16932](https://github.com/apache/nuttx/pull/16932) libs/libc/semaphore:  allow nxsem_init to negative value
* [#16614](https://github.com/apache/nuttx/pull/16614) libbuiltin/gcov: Upgrade gcov function
* [#16786](https://github.com/apache/nuttx/pull/16786) Revert "libs/libc/stdlib/lib_exit.c: fix multiple definition of __dso…

Tools

Markdown
* [#16563](https://github.com/apache/nuttx/pull/16563) tools: Modify refresh.sh to support update all configs from a board
* [#16650](https://github.com/apache/nuttx/pull/16650) tools/checkpatch.sh: add -x option to auto-format Python files.
* [#16912](https://github.com/apache/nuttx/pull/16912) tools/checkpatch.sh: check git commit format
* [#16724](https://github.com/apache/nuttx/pull/16724) tools/espressif: Add risc-v compiler info dump for Espressif devices
* [#16763](https://github.com/apache/nuttx/pull/16763) tools/nix: Add Nix flake for reproducible dev environment
* [#16924](https://github.com/apache/nuttx/pull/16924) tools/nix: move nix flakes to tools/
* [#16831](https://github.com/apache/nuttx/pull/16831) tools/nix: split flake into root and Documentation
* [#16759](https://github.com/apache/nuttx/pull/16759) tools/nxstyle.c: Updating white list to xedge example
* [#16855](https://github.com/apache/nuttx/pull/16855) tools/rp{2040,23xx}: Ensure that picotool is found or built
* [#16667](https://github.com/apache/nuttx/pull/16667) tools/process_config.sh: Fix sed errors
* [#16546](https://github.com/apache/nuttx/pull/16546) tools/testbuild.ps1: Windows fix the redirect error stream
* [#16711](https://github.com/apache/nuttx/pull/16711) toolchain/arm: Fix crash caused by clang compiling with -mfpu=fpv5-d16 and -march=armv8.1-m.main+mve.fp+fp.dp
* [#16709](https://github.com/apache/nuttx/pull/16709) toolchain/arm: Fix link parameter error
* [#16720](https://github.com/apache/nuttx/pull/16720) toolchain/armclang: Fix armclang config

Build System

Improvements

Markdown
* [#16880](https://github.com/apache/nuttx/pull/16880) arch: Add Cmake build support for raspberrypi-4b board & bcm2711 chip
* [#16475](https://github.com/apache/nuttx/pull/16475) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
* [#16579](https://github.com/apache/nuttx/pull/16579) arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
* [#16647](https://github.com/apache/nuttx/pull/16647) arch/arm64/fvp-v8r: support cmake compile
* [#16581](https://github.com/apache/nuttx/pull/16581) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of …
* [#16477](https://github.com/apache/nuttx/pull/16477) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.c
* [#16794](https://github.com/apache/nuttx/pull/16794) arm: CMake build for the i.MX RT series implemented.
* [#16627](https://github.com/apache/nuttx/pull/16627) Arm32 v8m support cmake clang compile
* [#16922](https://github.com/apache/nuttx/pull/16922) boards/arm/imxrt: CMake added imxrt1020-evk imxrt1050-evk boards
* [#16918](https://github.com/apache/nuttx/pull/16918) boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boards
* [#16639](https://github.com/apache/nuttx/pull/16639) cmake/arm64:   support clang compile
* [#16547](https://github.com/apache/nuttx/pull/16547) cmake(bugfix):fix VERSION genarator strip error in CMake build
* [#16594](https://github.com/apache/nuttx/pull/16594) cmake(bugfix):fix VERSION genarator strip error in CMake build
* [#16751](https://github.com/apache/nuttx/pull/16751) cmake(bugfix):add default c++ search path
* [#16897](https://github.com/apache/nuttx/pull/16897) Cmake: add defconfig preprocess capability in Cmake build environment(recursively expand #include)
* [#16721](https://github.com/apache/nuttx/pull/16721) cmake: enhance the function of cmake nuttx_wildcard_sources
* [#16867](https://github.com/apache/nuttx/pull/16867) drivers/analog/CMakeLists.txt: Aligned Cmake with Make
* [#16870](https://github.com/apache/nuttx/pull/16870) drivers/audio/CMakeLists.txt: Aligned Cmake with Make
* [#16873](https://github.com/apache/nuttx/pull/16873) drivers/ioexpander/CMakeLists.txt: Aligned Cmake with Make
* [#16871](https://github.com/apache/nuttx/pull/16871) drivers/leds/CMakeLists.txt: Aligned Cmake with Make
* [#16913](https://github.com/apache/nuttx/pull/16913) drivers/net/CMakeLists.txt: Aligned Cmake with Make
* [#16620](https://github.com/apache/nuttx/pull/16620) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
* [#16633](https://github.com/apache/nuttx/pull/16633) drivers/segger/CMakeLists.txt: Aligned Cmake with Make
* [#16616](https://github.com/apache/nuttx/pull/16616) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
* [#16634](https://github.com/apache/nuttx/pull/16634) drivers/sensors/CMakeLists.txt: Aligned Cmake with Make
* [#16737](https://github.com/apache/nuttx/pull/16737) toolchain/arm64/cmake: Corrected the writing of arm64 cmake search library
* [#16849](https://github.com/apache/nuttx/pull/16849) Make/Toolchain.defs: add the AR_EXTRACT command

Architectural Support

Improvements

ARM

Markdown
* [#16806](https://github.com/apache/nuttx/pull/16806) arch/*/*_sigdeliver.c: Fix a race condition is signal delivery for SMP
* [#16657](https://github.com/apache/nuttx/pull/16657) arch/arm: Add gic lock for GICD_ICFGR RMW operations.
* [#16881](https://github.com/apache/nuttx/pull/16881) arch/arm: Add missing barriers.h
* [#16669](https://github.com/apache/nuttx/pull/16669) arch/arm/*/stm32_fdcan_sock.c: prevent interrupt flood on errors.
* [#16611](https://github.com/apache/nuttx/pull/16611) arch/arm/armv7-a: Support hardware debugpoint to  enhance gdbstub
* [#16752](https://github.com/apache/nuttx/pull/16752) arch/arm/cxd56xx: Fix bug that causes wake-up by unused gpio interrupt
* [#16797](https://github.com/apache/nuttx/pull/16797) arch/arm/imxrt: Initial modification to support two USB Controllers
* [#16478](https://github.com/apache/nuttx/pull/16478) arch/arm/imxrt: Serial add RXDMA support for singlewire mode
* [#16703](https://github.com/apache/nuttx/pull/16703) arch/arm/rp23xx: Fix gpio  for RP2350B
* [#16704](https://github.com/apache/nuttx/pull/16704) arch/arm/rp23xx: spi unset peripheral before  to modify Spi parameters
* [#16837](https://github.com/apache/nuttx/pull/16837) arch/arm/rp2040: Fix typos in ADC and GPIO macro names
* [#16840](https://github.com/apache/nuttx/pull/16840) arch/arm/rp2040: Implement GPIO output override functionality
* [#16886](https://github.com/apache/nuttx/pull/16886) arch/arm/rp2040: Silence "LOAD segment with RWX permissions" linker warnings
* [#16876](https://github.com/apache/nuttx/pull/16876) arch/arm/rp2040: Support pico-sdk 2.2.0
* [#16842](https://github.com/apache/nuttx/pull/16842) arch/arm/rp2040: Support non-sequential ADC channels and standardize internal function names
* [#16783](https://github.com/apache/nuttx/pull/16783) arch/arm/samv7: add support for pin to pin compatible pic32cz ca70 series and its evaluation kit
* [#16901](https://github.com/apache/nuttx/pull/16901) arch/arm/samv7: add support for progmem in PIC32CZ CA70 series
* [#16907](https://github.com/apache/nuttx/pull/16907) arch/arm/samv7: fix compile warning
* [#16522](https://github.com/apache/nuttx/pull/16522) arch/arm/samv7: init perf events if enabled
* [#16572](https://github.com/apache/nuttx/pull/16572) arch/arm/samv7: set correct SPI mode during init
* [#16465](https://github.com/apache/nuttx/pull/16465) arch/arm/samv7: set correct SPI mode during init
* [#16541](https://github.com/apache/nuttx/pull/16541) arch/arm/stm32: add STM32 I2C Slave support f…
* [#16532](https://github.com/apache/nuttx/pull/16532) arch/arm/stm32: add support for ADC trigger from TRGO event
* [#16534](https://github.com/apache/nuttx/pull/16534) arch/arm/stm32: add support for batch DMA transfer
* [#16680](https://github.com/apache/nuttx/pull/16680) arch/arm/stm32{h5|h7|l4}/adc: move ADC_MAX_SAMPLES to Kconfig
* [#16530](https://github.com/apache/nuttx/pull/16530) arch/arm/stm32f0l0g0: add TIMER trigger for ADC
* [#16514](https://github.com/apache/nuttx/pull/16514) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
* [#16589](https://github.com/apache/nuttx/pull/16589) arch/arm/stm32f0l0g0: fix compilation when TIM6/TIM7 is missing
* [#16810](https://github.com/apache/nuttx/pull/16810) arch/arm/stm32f0l0g0: Fix I2C IRQ numbers
* [#16543](https://github.com/apache/nuttx/pull/16543) arch/arm/stm32f0l0g0: Improve STM32G0 peripheral config granularity
* [#16670](https://github.com/apache/nuttx/pull/16670) arch/arm/stm32f0l0g0: move ADC_MAX_SAMPLES to Kconfig
* [#16513](https://github.com/apache/nuttx/pull/16513) arch/arm/stm32f0l0g0: remove references to CONFIG_STM32F0L0G0_FORCEPOWER
* [#16557](https://github.com/apache/nuttx/pull/16557) arch/arm/stm32f0l0g0: STM32G0 DMA and ADC Support
* [#16497](https://github.com/apache/nuttx/pull/16497) arch/arm/stm32f0l0g0: UID support for F0, L0 and C0
* [#16517](https://github.com/apache/nuttx/pull/16517) arch/arm/stm32f7: Add missing RCC include
* [#16909](https://github.com/apache/nuttx/pull/16909) arch/arm/stm32f7: Fix "unused variable" warning
* [#16860](https://github.com/apache/nuttx/pull/16860) arch/arm/stm32f7: Fix I2C4 SDA pin assignment
* [#16827](https://github.com/apache/nuttx/pull/16827) arch/arm/stm32h7: Fix timer capture upper half driver registration
* [#16809](https://github.com/apache/nuttx/pull/16809) arch/arm/stm32h7: Port timer capture driver from stm32
* [#16705](https://github.com/apache/nuttx/pull/16705) arch/arm/stm32h7: support for /dev/random device
* [#16706](https://github.com/apache/nuttx/pull/16706) arch/arm/STM32H5: Add DMA and ADC DMA support
* [#16776](https://github.com/apache/nuttx/pull/16776) arch/arm/stm32h5: Add DMA Support to STM32H5 Serial Driver
* [#16708](https://github.com/apache/nuttx/pull/16708) arch/arm/STM32H5: Add oversampling and resolution support for ADC
* [#16746](https://github.com/apache/nuttx/pull/16746) arch/arm/stm32h5: Initial Driver for STM32H5 Digital Temperature Sensor (DTS)
* [#16818](https://github.com/apache/nuttx/pull/16818) arch/arm/stm32h5: Fix STM32H5 FDCAN Driver and Add Test Files
* [#16803](https://github.com/apache/nuttx/pull/16803) arch/arm/stm32h5: Use double-buffer for ADC DMA in Circular Mode
* [#16923](https://github.com/apache/nuttx/pull/16923) arch/arm/xmc4 : fix serial buffer size for unused channel


ARM64

Markdown
* [#16612](https://github.com/apache/nuttx/pull/16612) arch/arm64: enable arm64 hardware breakpoints
* [#16846](https://github.com/apache/nuttx/pull/16846) arch/arm64: Fix signal delivery in EL1 when MMU is enabled
* [#16826](https://github.com/apache/nuttx/pull/16826) arch/arm64: imx9 add pci dma space and pci outbound space
* [#16884](https://github.com/apache/nuttx/pull/16884) arch/arm64/gicv3: Improve initialization in warm reboot case
* [#16743](https://github.com/apache/nuttx/pull/16743) arch/arm64/imx9: add support for imx95
* [#16727](https://github.com/apache/nuttx/pull/16727) arch/arm64/imx9: eDMA5 Allow sharing with Linux
* [#16844](https://github.com/apache/nuttx/pull/16844) arch/arm64/imx9: Fix first trace
* [#16900](https://github.com/apache/nuttx/pull/16900) arch/arm64/imx9: Fix bus reset
* [#16719](https://github.com/apache/nuttx/pull/16719) arch/arm64/zynq-mpsoc: fix race condition in txint handler


AVR

Markdown
* [#16687](https://github.com/apache/nuttx/pull/16687) arch/avr: do not copy const variables to RAM
* [#16498](https://github.com/apache/nuttx/pull/16498) arch/avr: fix atomic load functions from arch_atomic.c
* [#16586](https://github.com/apache/nuttx/pull/16586) arch/avr: fix atomic load functions from arch_atomic.c


RISC-V

Markdown
* [#16692](https://github.com/apache/nuttx/pull/16692) arch/[risc-v/xtensa]: Add SHA accelerator support for esp32[-s2|-s3|-c3|-c6|-h2]
* [#16694](https://github.com/apache/nuttx/pull/16694) arch/risc-v: Add LP_I2C support for esp32[-c6]
* [#16683](https://github.com/apache/nuttx/pull/16683) arch/risc-v: Add LPUART support for esp32[-c6]
* [#16685](https://github.com/apache/nuttx/pull/16685) arch/risc-v: Change DMA functions with common layer for esp32[-c3|-c6|-h2]
* [#16565](https://github.com/apache/nuttx/pull/16565) arch/risc-v: Fix `rv-virt:nsbi[|64]` defconfigs
* [#16676](https://github.com/apache/nuttx/pull/16676) arch/risc-v: fix I2C timeout and board compilation requirements
* [#16921](https://github.com/apache/nuttx/pull/16921) arch/risc-v: Refactor Wi-Fi driver for ESP32-C3|C6
* [#16485](https://github.com/apache/nuttx/pull/16485) arch/risc-v/mpfs: Add optimized perf timer functions
* [#16850](https://github.com/apache/nuttx/pull/16850) arch/risc-v/mpfs: fixes for coremmc and emmcsd
* [#16851](https://github.com/apache/nuttx/pull/16851) arch/risc-v/mpfs: SMP interrupt handling fixes
* [#16903](https://github.com/apache/nuttx/pull/16903) arch/risc-v/mpfs/mpfs_clockconfig.c: Flag out code only used in b…
* [#16529](https://github.com/apache/nuttx/pull/16529) arch/risc-v/ricv_exception.c: Dump the process name at exception in user space
* [#16424](https://github.com/apache/nuttx/pull/16424) arch/risc-v/rp23xx-riscv: Add rp23xx(rp2350)  (Pico 2 board)  RISC-V support


SIM

Markdown
* [#16742](https://github.com/apache/nuttx/pull/16742) arch/sim: avoid host-call being interrupted before getting errno


TRICORE

Markdown
* [#16885](https://github.com/apache/nuttx/pull/16885) arch/tricore: add up_trigger_irq
* [#16910](https://github.com/apache/nuttx/pull/16910) arch/tricore: fix ld unrecognized option '-g3'
* [#16917](https://github.com/apache/nuttx/pull/16917) arch/tricore/tricore_irq.c: add up_affinity_irq


X86_64

Markdown
* [#16787](https://github.com/apache/nuttx/pull/16787) arch/x86_64: Allow specifying alternative compilers via CROSSDEV environment variable


XTENSA

Markdown
* [#16804](https://github.com/apache/nuttx/pull/16804) arch/xtensa: Fix a race condition in xtensa_sig_deliver for SMP
* [#16750](https://github.com/apache/nuttx/pull/16750) arch/xtensa: fix build break if compiler without ISA - XCHAL_HAVE_THREADPTR support
* [#16686](https://github.com/apache/nuttx/pull/16686) arch/xtensa: Fix dedicated GPIO build error for esp32[-s2|-s3]
* [#16672](https://github.com/apache/nuttx/pull/16672) arch/xtensa: support more than 32 cpu interrupts
* [#16744](https://github.com/apache/nuttx/pull/16744) arch/xtensa/esp32: fix esp32(s3)_async_op() asynchronous operation race issue
* [#16883](https://github.com/apache/nuttx/pull/16883) arch/xtensa/esp32: fix some compilation warnings
* [#16882](https://github.com/apache/nuttx/pull/16882) arch/xtensa/esp32: fix the issue of erasing a wide range of flash sectors
* [#16894](https://github.com/apache/nuttx/pull/16894) arch/xtensa/esp32,esp32s3: Start the "spiflash_op" thread with corret affinity
* [#16878](https://github.com/apache/nuttx/pull/16878) arch/xtensa/esp32s3: Add EXT1 wakeup support in power management
* [#16756](https://github.com/apache/nuttx/pull/16756) arch/xtensa/esp32s3: Fix bug related to the PSRAM-allocated task stack
* [#16566](https://github.com/apache/nuttx/pull/16566) arch/xtensa/esp32s3: Fix Esp32S3 LCD FB resolution.
* [#16603](https://github.com/apache/nuttx/pull/16603) arch/xtensa/esp32s3: Remove LCD Warnings.
* [#16607](https://github.com/apache/nuttx/pull/16607) arch/xtensa/esp32s3: Remove LCD Warnings.
* [#16856](https://github.com/apache/nuttx/pull/16856) arch/xtensa/esp32s2: Remove duplicated lines to fix warning

Driver Support

New Driver Support

Markdown
* [#16836](https://github.com/apache/nuttx/pull/16836) drivers/analog/ads7046: Add support for ADS7046 ADC
* [#16714](https://github.com/apache/nuttx/pull/16714) drivers/input: Create Single Button Multi Actions
* [#16902](https://github.com/apache/nuttx/pull/16902) drivers/ioexpander: Add support for pcal6416
* [#16934](https://github.com/apache/nuttx/pull/16934) drivers/ioexpander/aw9523b: New driver for AW9523B i/o expander
* [#16217](https://github.com/apache/nuttx/pull/16217) drivers/leds: Add support for KTD2052
* [#16660](https://github.com/apache/nuttx/pull/16660) drivers/net: add IGB network card support
* [#16623](https://github.com/apache/nuttx/pull/16623) drivers/net: add support for the NCV7410 10BASE-T1S SPI MAC-PHY
* [#16605](https://github.com/apache/nuttx/pull/16605) drivers/sensors: add Quectel L86-XXX GNSS uORB sensor driver
* [#16838](https://github.com/apache/nuttx/pull/16838) drivers/sensors/tmp112: Add support for TMP112 temperature sensor

Improvements

Markdown
* [#16715](https://github.com/apache/nuttx/pull/16715) drivers/analog/ads1115.h: Add ioctl for conversion trigger
* [#16875](https://github.com/apache/nuttx/pull/16875) drivers/can/kvaser_pci: configure number of passes in interrupt handler
* [#16738](https://github.com/apache/nuttx/pull/16738) drivers/fs:Always use register_mtddriver() to register the MTD device (patch2)
* [#16914](https://github.com/apache/nuttx/pull/16914) drivers/i2s/i2schar: Implement ioctl commands and blocking read/write operations
* [#16745](https://github.com/apache/nuttx/pull/16745) drivers/ioexpander/icjx.c: reconfigure icjx after undervoltage
* [#16729](https://github.com/apache/nuttx/pull/16729) drivers/misc/optee: Cache coherency when MMU is disabled
* [#16734](https://github.com/apache/nuttx/pull/16734) drivers/misc/optee: expand RPC suppport for IMX9
* [#16800](https://github.com/apache/nuttx/pull/16800) drivers/misc/optee_smc: Explicitly yield during NW interrupts
* [#16801](https://github.com/apache/nuttx/pull/16801) drivers/misc/optee_smc: Fix sched_yield() on flat builds
* [#16473](https://github.com/apache/nuttx/pull/16473) drivers/mtd: fix compile warning
* [#16577](https://github.com/apache/nuttx/pull/16577) drivers/mtd: fix compile warning
* [#16789](https://github.com/apache/nuttx/pull/16789) drivers/mtd: introduce nvblk
* [#16642](https://github.com/apache/nuttx/pull/16642) drivers/mtd/ftl/bch: Add direct writing method for FTL
* [#16906](https://github.com/apache/nuttx/pull/16906) drivers/net: ksz9477 fixes
* [#16899](https://github.com/apache/nuttx/pull/16899) drivers/net: Remove NCV7410 driver and corresponding board support
* [#16661](https://github.com/apache/nuttx/pull/16661) drivers/net: various fixes for e1000 and igc
* [#16649](https://github.com/apache/nuttx/pull/16649) drivers/net/Kconfig: Move NET_IGC_TXDESC and NET_IGC_RXDESC to NET_IG…
* [#16526](https://github.com/apache/nuttx/pull/16526) drivers/optee: fix compile break
* [#16767](https://github.com/apache/nuttx/pull/16767) drivers/pci: epc add dma heap
* [#16753](https://github.com/apache/nuttx/pull/16753) drivers/segger: Add a kconfig to override Segger SystemView target sources version
* [#16510](https://github.com/apache/nuttx/pull/16510) drivers/segger: Change SEGGER_RTT_LOCK into rspinlock
* [#16512](https://github.com/apache/nuttx/pull/16512) drivers/segger: define a macro using a configuration variable
* [#16805](https://github.com/apache/nuttx/pull/16805) drivers/sensor: Add flags for GNSS satellite
* [#16764](https://github.com/apache/nuttx/pull/16764) drivers/sensors/l86xxx: Fix driver registration crashes
* [#16701](https://github.com/apache/nuttx/pull/16701) drivers/sensors/l86xxx: Fix Kconfig options and dependencies
* [#16821](https://github.com/apache/nuttx/pull/16821) drivers/sensors/l86xxx: Mutex fixes & performance improvements
* [#16778](https://github.com/apache/nuttx/pull/16778) drivers/sensors/l86xxx: Use uORB GNSS lower-half
* [#16717](https://github.com/apache/nuttx/pull/16717) drivers/sensors/nau7802: Added frequency control
* [#16466](https://github.com/apache/nuttx/pull/16466) drivers/serial: fix race conditions 
* [#16573](https://github.com/apache/nuttx/pull/16573) drivers/serial: fix race conditions
* [#16820](https://github.com/apache/nuttx/pull/16820) drivers/syslog/syslog_channel.c: fix incompatible-pointer-types compile errors
* [#16677](https://github.com/apache/nuttx/pull/16677) drivers/touchscreen: Add support for mirror/swap
* [#16788](https://github.com/apache/nuttx/pull/16788) drivers/video: add sched_note_mark at fb_remove_paninfo and fb_notify_vsync 

Board Support

New Board Support

Markdown
* [#16443](https://github.com/apache/nuttx/pull/16443) boards/avr/atmega: Added Elegoo Mega2560r3 board
* [#16781](https://github.com/apache/nuttx/pull/16781) boards/imxrt: Add support to ARCX Socket Grid board
* [#16558](https://github.com/apache/nuttx/pull/16558) boards/xtensa/esp32s3: add new esp32s3-8048S043 board

Improvements

Markdown
* [#16792](https://github.com/apache/nuttx/pull/16792) boards/arm: Fix Kconfig style
* [#16663](https://github.com/apache/nuttx/pull/16663) boards/arm/lpc17xx_40xx/lincoln60: Correct defconfig for THTTPD_CGIINBUFFERSIZ spelling
* [#16833](https://github.com/apache/nuttx/pull/16833) boards/arm/qemu: Change config name of input tool
* [#16931](https://github.com/apache/nuttx/pull/16931) boards/arm/rp23xx/common: update board reset via BOOTROM functions
* [#16707Add Cmake build support for raspberrypi-4b board & bcm2711 chip
* [#16475](https://github.com/apache/nuttx/pull/1647516707) archboards/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Makestm32f401rc-rs485: Add support to HX711 ADC
* [#16579#16779](https://github.com/apache/nuttx/pull/1657916779) archboards/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Makestm32f401rc-rs485: Add support to MAX31855 and MAX6675
* [#16780](https://github.com/apache/nuttx/pull/16780) boards/arm/stm32f4discovery: Add support to HX711 ADC
* [#16647#16857](https://github.com/apache/nuttx/pull/1664716857) arch/arm64/fvp-v8rboard/esp: supportRevert cmakemtdblock compileregisteration
* [#16581#16866](https://github.com/apache/nuttx/pull/1658116866) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of …boards/esp32s3: Add SPI slave device support
* [#16477#16725](https://github.com/apache/nuttx/pull/1647716725) arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.cboards/espressif: add support for SDMMC over SPI for ESP32-C3|C6|H2
* [#16794#16812](https://github.com/apache/nuttx/pull/1679416812) armboards/imxrt: CMakeFix buildissues forand theadd i.MXUSBHOST RTsupport series implemented.to arcx-socket-grid
* [#16627#16824](https://github.com/apache/nuttx/pull/1662716824) Arm32 v8m support cmake clang compileboards/imxrt/arcx-socket-grid: Remove debug symbols
* [#16922#16535](https://github.com/apache/nuttx/pull/1692216535) boards/arm/imxrtnucleo-f446re: CMakefix added imxrt1020-evk imxrt1050-evk boardsadc example
* [#16918#16592](https://github.com/apache/nuttx/pull/1691816592) boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boardsnucleo-f446re: fix adc example
* [#16639#16665](https://github.com/apache/nuttx/pull/1663916665) cmakeboards/arm64qemu-armv8a:   support clang compileAdd `xedge` example program and documentation
* [#16547#16659](https://github.com/apache/nuttx/pull/1654716659) cmake(bugfix):fix VERSION genarator strip error in CMake buildboards/qemu-intel64/qemu.ld: add .lbss, .ldata and .lrodata 
* [#16594#16848](https://github.com/apache/nuttx/pull/1659416848) cmake(bugfix):fix VERSION genarator strip error in CMake buildboards/risc-v/rp23xx-rv/common: update board reset via BOOTROM functions
* [#16751#16646](https://github.com/apache/nuttx/pull/1675116646) cmake(bugfix):add default c++ search pathboards/riscv-v/esp32c6: Add the NCV7410 10BASE-T1S SPI MAC-PHY support
* [#16897#16898](https://github.com/apache/nuttx/pull/1689716898) Cmakeboards/tricore: add defconfigrename preprocesstc397 capabilitychip in Cmake build environment(recursively expand #include)board name
* [#16721#16505](https://github.com/apache/nuttx/pull/1672116505) cmakeboards/xtensa/esp32: enhanceAdd theBLE functionconfig of cmake nuttx_wildcard_sourcesto esp32-sparrow
* [#16867#16602](https://github.com/apache/nuttx/pull/1686716602) drivers/analog/CMakeLists.txt: Aligned Cmake with Makeboards/xtensa: support SDMMC over SPI on ESP32|S2|S3 
* [#16870#16638](https://github.com/apache/nuttx/pull/1687016638) driversboards/xtensa/audio/CMakeLists.txtesp32s3/esp32s3-box: AlignedFix CmakeILI9342C withcolor Makeinversion
* [#16873#16681](https://github.com/apache/nuttx/pull/1687316681) drivers/ioexpander/CMakeLists.txt: Aligned Cmake with Makeboards/weact-stm32h743 Add sdcard support
* [#16871#16785](https://github.com/apache/nuttx/pull/1687116785) drivers/leds/CMakeLists.txt: Aligned Cmake with Make
* [#16913boards/weact-stm32h743: Add support to ST7735 display

File System

 Improvements

Markdown
* [#16722](https://github.com/apache/nuttx/pull/1691316722) drivers/net/CMakeLists.txt: Aligned Cmake with Makefs/block_proxy: fix the issue of the refs count for filep being zeroed out by utilizing dup2
* [#16620#16938](https://github.com/apache/nuttx/pull/1662016938) drivers/segger/CMakeLists.txt: Aligned Cmake with Makefs/fat: Fix wrong alloc used in fat_zero_cluster()
* [#16633#16536](https://github.com/apache/nuttx/pull/1663316536) drivers/segger/CMakeLists.txtfs/fcntl: Alignedusing ioctl Cmaketo with Makeimplement FIOGCLEX/FIOCLEX/FIONCLEX
* [#16616#16832](https://github.com/apache/nuttx/pull/1661616832) drivers/sensors/CMakeLists.txtfs/lock: AlignedAllow Cmakedriver with Makelock
* [#16634#16598](https://github.com/apache/nuttx/pull/1663416598) drivers/sensors/CMakeLists.txt: Aligned Cmake with Makefs/procfs: fix output format of fd info
* [#16737#16518](https://github.com/apache/nuttx/pull/1673716518) toolchainfs/arm64/cmakesmartfs: Fix Correcteda thefatal writingbug ofabout arm64sector cmakewriting search library

Major Changes to the Build System

New Features

Bug Fixes

Architectural Support

New Architecture Support

Driver Support

New Driver Support

Markdown
after seek
* [#16836#16590](https://github.com/apache/nuttx/pull/1683616590) driversfs/analog/ads7046: Add support for ADS7046 ADCsmartfs: Fix a fatal bug about sector writing after seek
* [#16714#16490](https://github.com/apache/nuttx/pull/1671416490) driversfs/inputvfs: Createcheck if Singleall Button`iov_base` Multiare Actionsaccessible
* [#16902#16584](https://github.com/apache/nuttx/pull/1690216584) driversfs/ioexpandervfs: check Add support for pcal6416if all iov_base are accessible
* [#16934#16609](https://github.com/apache/nuttx/pull/1693416609) driversfs/ioexpander/aw9523b: New driver for AW9523B i/o expandervfs: clear filep when call file_open/file_mq_open to avoid random value[bug fix]
* [#16217#16538](https://github.com/apache/nuttx/pull/1621716538) drivers/leds: Add support for KTD2052fs/vfs/fs_close.c: avoid double free if CONFIG_FS_NOTIFY is set
* [#16660#16455](https://github.com/apache/nuttx/pull/1666016455) drivers/netfs/vfs/fs_rename: addfix IGBdirectory move operation.

Networking

Improvements

Markdown
network card support
* [#16623#16926](https://github.com/apache/nuttx/pull/1662316926) driversinclude/net/if.h: addAdd supportmechanism for theMMD NCV7410access 10BASE-T1Swith SPISIOCxMIIREG MAC-PHYioctls
* [#16605#16628](https://github.com/apache/nuttx/pull/1660516628) drivers/sensorsnet: addEnable Quectel L86-XXX GNSS uORB sensor driverTCP/IP backlog by default
* [#16838#16684](https://github.com/apache/nuttx/pull/1683816684) driversnet/sensors/tmp112arp: Addavoid supportunnecessary for TMP112 temperature sensor

Drivers With Significant Improvements

Markdown
ARP requests
* [#16715#16905](https://github.com/apache/nuttx/pull/1671516905) drivers/analog/ads1115.hnet/can: Addfixes ioctl for conversion triggerand cleanups
* [#16875#16682](https://github.com/apache/nuttx/pull/1687516682) drivers/can/kvaser_pci: configure number of passes in interrupt handlernet/local: correct shutdown state when use UDP mode (To fix issue: https://github.com/apache/nuttx/issues/16555)
* [#16738#16494](https://github.com/apache/nuttx/pull/1673816494) driversnet/fsutils:Always use register_mtddriver() to register the MTD device (patch2)avoid unalign access g_tcp_connections_buffer
* [#16914#16585](https://github.com/apache/nuttx/pull/1691416585) driversnet/i2s/i2scharutils: Implementavoid ioctlunalign commands and blocking read/write operationsaccess g_tcp_connections_buffer
* [#16745#16599](https://github.com/apache/nuttx/pull/1674516599) drivers/ioexpander/icjxnetdb/lib_dnsquery.c: reconfigureprevent icjxfile afterdescriptor undervoltageleakage
* [#16729#16606](https://github.com/apache/nuttx/pull/1672916606) netdb/lib_dnsquery.c: In the IPv6 or IPv4 dns_query_callback() block,…

Unsorted contributions

Markdown
* [#16644drivers/misc/optee: Cache coherency when MMU is disabled
* [#16734](https://github.com/apache/nuttx/pull/1673416644) drivers/misc/opteeespressif: expandupdate RPC suppport for IMX9lower-half drivers
* [#16800#16467](https://github.com/apache/nuttx/pull/1680016467) drivers/misc/optee_smc: Explicitly yield during NW interruptsaudio/comp: fix build warning caused by invalid return value
* [#16801#16469](https://github.com/apache/nuttx/pull/1680116469) drivers/misc/optee_smcmcx-nxxx: Fix sched_yield() on flat buildsAdd LPI2C driver for mcx-nxxx architecture
* [#16473#16474](https://github.com/apache/nuttx/pull/1647316474) driverssyslog/mtd: fix compile warningrpmsg: disable force put char to lower putc
* [#16577#16479](https://github.com/apache/nuttx/pull/1657716479) driverssensors/mtdnau7802: fixFix compileformat warning
* [#16789#16482](https://github.com/apache/nuttx/pull/16789) drivers/mtd: introduce nvblk16482) Fix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
* [#16642#16483](https://github.com/apache/nuttx/pull/1664216483) drivers/mtd/ftl/bch: Add direct writing method for FTLSegger sysview improvements
* [#16906#16486](https://github.com/apache/nuttx/pull/1690616486) drivers/net: ksz9477 fixes add spin_lock_irqsave_nopreempt rspin_lock_irqsave_noprempt implement.
* [#16899#16487](https://github.com/apache/nuttx/pull/1689916487) drivers/net: Remove NCV7410 driver and corresponding board supportFix arch perf events ifdef in alarm
* [#16661#16489](https://github.com/apache/nuttx/pull/1666116489) drivers/net: various fixes Added support obtaining the unique id for e1000the andstm32f0l0g0 igcfamily
* [#16649#16491](https://github.com/apache/nuttx/pull/1664916491) drivers/net/Kconfig: Move NET_IGC_TXDESC and NET_IGC_RXDESC to NET_IG…espressif[risc-v|xtensa]: Check events when reading PCNT counter value
* [#16767#16492](https://github.com/apache/nuttx/pull/1676716492) drivers/pci: epc add dma heapadd FDCAN support for STM32C0
* [#16753#16493](https://github.com/apache/nuttx/pull/1675316493) drivers/segger: Add a kconfig to override Segger SystemView target sources versionRFC 5424 implementation for SYSLOG
* [#16510#16495](https://github.com/apache/nuttx/pull/1651016495) drivers/segger: Change SEGGER_RTT_LOCK into rspinlockminor stream improvement
* [#16805#16496](https://github.com/apache/nuttx/pull/1680516496) drivers/sensor: Add flags for GNSS satelliteimprove libc/stream subsystem
* [#16764#16500](https://github.com/apache/nuttx/pull/1676416500) drivers/sensors/l86xxx: Fix driver registration crashes Add ADC support for STM32G0 (along with oversampling)
* [#16701#16508](https://github.com/apache/nuttx/pull/1670116508) drivers/sensors/l86xxx: Fix Kconfig options and dependenciesriscv qemu-rv: fix kernel mapping by enabling CONFIG_MM_KMAP in knsh
* [#16821#16509](https://github.com/apache/nuttx/pull/1682116509) drivers/sensors/l86xxx: Mutex fixes & performance improvementsUpdate the ELF guides
* [#16778#16511](https://github.com/apache/nuttx/pull/1677816511) driversnuttx/sensors/l86xxxspinlock: Define Useempty uORBmacro GNSS lower-halffor spin_unlock
* [#16717#16519](https://github.com/apache/nuttx/pull/1671716519) driversimx9/sensors/nau7802smp: Added frequency controlAdd SMP support for imx93
* [#16466#16527](https://github.com/apache/nuttx/pull/1646616527) driversnxgdb/serialfs: fix race conditions exception when failed to parse symbol
* [#16573#16533](https://github.com/apache/nuttx/pull/1657316533) drivers/serial: fix race conditionsUpdate MCUBoot build process for Espressif devices
* [#16820#16540](https://github.com/apache/nuttx/pull/1682016540) drivers/syslog/syslog_channel.c: fix incompatible-pointer-types compile errorsqemu/armv8a: fastboot tcp defconfig + documentation.
* [#16788#16549](https://github.com/apache/nuttx/pull/1678816549) drivers/video: add sched_note_mark at fb_remove_paninfo and fb_notify_vsync

Board Support

New Board Support

Markdown
* [#16443Minor improve to stream
* [#16550](https://github.com/apache/nuttx/pull/1644316550) boards/avr/atmegagitignore: Addedadd more Elegoovim Mega2560r3swap boardfiles
* [#16781#16552](https://github.com/apache/nuttx/pull/1678116552) boards/imxrtspinlock: AddBetter supportrecursive to ARCX Socket Grid boardspinlock implementation.
* [#16558#16556](https://github.com/apache/nuttx/pull/1655816556) boards/xtensa/esp32s3: add new esp32s3-8048S043 board

Improvements

Markdown
* [#16792risc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
* [#16562](https://github.com/apache/nuttx/pull/1679216562) boards/arm: Fix Kconfig styleesp32s3: update config and doc for fastboot
* [#16663#16567](https://github.com/apache/nuttx/pull/1666316567) boards/arm/lpc17xx_40xx/lincoln60: Correct defconfig for THTTPD_CGIINBUFFERSIZ spelling Move assemble soure files out off gnu folder
* [#16833#16569](https://github.com/apache/nuttx/pull/16833) boards/arm/qemu: Change config name of input tool/nuttx/pull/16569) Refine vfs source file layout
* [#16931#16571](https://github.com/apache/nuttx/pull/1693116571) boards/arm/rp23xx/common: update board reset via BOOTROM functionsremove warnings
* [#16707#16574](https://github.com/apache/nuttx/pull/1670716574) boards/arm/stm32f401rc-rs485: Add support to HX711 ADCaudio/comp: fix build warning caused by invalid return value
* [#16779#16578](https://github.com/apache/nuttx/pull/1677916578) boards/arm/stm32f401rc-rs485: Add supportsyslog/rpmsg: disable force put char to MAX31855lower and MAX6675putc
* [#16780#16580](https://github.com/apache/nuttx/pull/1678016580) boards/arm/stm32f4discoverymcx-nxxx: Add LPI2C supportdriver tofor HX711mcx-nxxx ADCarchitecture
* [#16857#16582](https://github.com/apache/nuttx/pull/1685716582) boardsensors/espnau7802: RevertFix mtdblockformat registerationwarning
* [#16866#16583](https://github.com/apache/nuttx/pull/1686616583) boards/esp32s3: Add SPI slave device supportFix i.MX93 ENET1 (EMAC) TXC muxing and RGMII-ID setting
* [#16725#16588](https://github.com/apache/nuttx/pull/1672516588) boards/espressifriscv qemu-rv: addfix supportkernel formapping SDMMCby over SPI for ESP32-C3|C6|H2enabling CONFIG_MM_KMAP in knsh …
* [#16812#16591](https://github.com/apache/nuttx/pull/1681216591) boards/imxrt: Fix issues and add USBHOST support to arcx-socket-gridUpdate MCUBoot build process for Espressif devices
* [#16824#16595](https://github.com/apache/nuttx/pull/1682416595) boards/imxrt/arcx-socket-grid: Remove debug symbolsrisc-v/mmu: Fix map_region() for incorrect page table setup when vadd…
* [#16535#16596](https://github.com/apache/nuttx/pull/1653516596) boards/nucleo-f446re: fix adc exampleFix arch perf events ifdef in alarm 
* [#16592#16597](https://github.com/apache/nuttx/pull/16592) boards/nucleo-f446re:/16597) fix adc exampleframebuffer config resolution.
* [#16665#16604](https://github.com/apache/nuttx/pull/1666516604) boards/qemu-armv8a:[ESP32S3] Add `xedge` example program and documentationLCD defconfig
* [#16659#16615](https://github.com/apache/nuttx/pull/1665916615) boards/qemu-intel64/qemu.lddebug/0 address: addAdd .lbss, .ldata and .lrodata 0 address access panic configuration
* [#16848#16618](https://github.com/apache/nuttx/pull/1684816618) boards/risc-v/rp23xx-rv/common: update board reset via BOOTROM functionsEnhanced Kasan
* [#16646#16619](https://github.com/apache/nuttx/pull/1664616619) boards/riscv-v/esp32c6arm64/v8r: Addsupport the NCV7410 10BASE-T1S SPI MAC-PHY supportclang compilation
* [#16898#16629](https://github.com/apache/nuttx/pull/1689816629) boards/tricorebugfix:  rename tc397 chip board nameshare kernel thread group should not dup files from caller group
* [#16505#16635](https://github.com/apache/nuttx/pull/1650516635) boards/xtensa/esp32: Add BLE config to esp32-sparrowAdd a header file as a dependency
* [#16602#16651](https://github.com/apache/nuttx/pull/1660216651) boards/xtensa: support SDMMC over SPI on ESP32|S2|S3 Refactored the btuart_rxwork function to improve data reception stability.
* [#16638#16654](https://github.com/apache/nuttx/pull/1663816654) boards/xtensa/esp32s3/esp32s3-boximx9/lpuart: Fix ILI9342C color inversionrace condition / regression in imx9_txint
* [#16681#16671](https://github.com/apache/nuttx/pull/1668116671) boards/weact-stm32h743 Add sdcard supportsem/trywait/atomic: Fix the try wait abort by interrupted caused false failure report.
* [#16785#16674](https://github.com/apache/nuttx/pull/1678516674) boardsxtensa/weact-stm32h743espressif: AddChange LEDC supportimplementation to ST7735common display

File System

 Improvements

Markdown
one
* [#16722#16690](https://github.com/apache/nuttx/pull/1672216690) fs/block_proxycoredump: fixFix themissing issueloglevel ofto the refs count for filep being zeroed out by utilizing dup2logmask conversion
* [#16938#16700](https://github.com/apache/nuttx/pull/1693816700) fssensors/fatbmi160,270: Fix wronga allocbug usedsensor_time in fat_zero_cluster()is truncated
* [#16536#16718](https://github.com/apache/nuttx/pull/1653616718) fsarm64/fcntlqemu: usingdecouple ioctlqemu toboard implement FIOGCLEX/FIOCLEX/FIONCLEXfrom chip
* [#16832#16735](https://github.com/apache/nuttx/pull/1683216735) fs/lock: Allow driver lockespressif: fix MCUBoot OTA on Espressif devices.
* [#16598#16754](https://github.com/apache/nuttx/pull/1659816754) fs/procfs espressif: PCNT: fixadd high outputand formatlow oflimit fdKconfig infooptions
* [#16518#16765](https://github.com/apache/nuttx/pull/1651816765) fs/smartfsnucleo-h743zi: FixAdd aADC2 fatalsupport bugand aboutexpand sectorADC writingchannel after seeklist
* [#16590#16769](https://github.com/apache/nuttx/pull/1659016769) fs/smartfsesp32s3_extraheaps.c: Fixadd a fatalmissing buginclude about sector writing after seekfor xtensa_imm_initialize
* [#16490#16771](https://github.com/apache/nuttx/pull/1649016771) fscrypto/vfscryptosoft: check iffix allaadlen `iov_base`used areuninitialized accessiblewarning
* [#16584#16773](https://github.com/apache/nuttx/pull/1658416773) fs/vfs: check if all iov_base are accessible add esp32s3-devkit:mbedtls kconfig
* [#16609#16798](https://github.com/apache/nuttx/pull/1660916798) fs/vfsarm64: clearporting filepmu whendrv call file_open/file_mq_open to avoid random value[bug fix]and scmi from arm imx9
* [#16538#16807](https://github.com/apache/nuttx/pull/1653816807) fsbugix/vfs/fs_close.crisc-v/esp32c6: avoid double free if CONFIG_FS_NOTIFY is setFix build error of LP_I2C
* [#16455#16813](https://github.com/apache/nuttx/pull/1645516813) fs/vfs/fs_rename: fix directory move operation.

Networking

Improvements

Markdown
* [#16926Fix compilation errors with c++
* [#16819](https://github.com/apache/nuttx/pull/1692616819) include/net/if.h: Add mechanismIncrease buffer sizes for MMD access with SIOCxMIIREG ioctlsuORB devices
* [#16628#16830](https://github.com/apache/nuttx/pull/1662816830) neth743zi/capture: Enable TCP/IP backlog by default add doc, defconfig & update make pipeline
* [#16684#16839](https://github.com/apache/nuttx/pull/1668416839) netcrypto/arphmac: Fix avoidtypo in unnecessaryfunction ARPimplementation requestsnames
* [#16905#16843](https://github.com/apache/nuttx/pull/1690516843) net/can: fixes and cleanupspci: epf test default a function
* [#16682#16845](https://github.com/apache/nuttx/pull/1668216845) netsys/localsocket.h: wrap correctthe shutdownouter statelayer whenof usestruct UDPsockaddr_storage modewith (To fix issue: https://github.com/apache/nuttx/issues/16555aligned(SS_ALIGNSIZE)
* [#16494#16852](https://github.com/apache/nuttx/pull/16494) net/utils: avoid unalign access g_tcp_connections_buffer16852) risc-v/mpfs: usb: don't try nonexistent ep int flags
* [#16585#16853](https://github.com/apache/nuttx/pull/1658516853) net/utils: avoid unalign access g_tcp_connections_bufferMpfs map mtime in userspace
* [#16599#16874](https://github.com/apache/nuttx/pull/1659916874) netdb/lib_dnsquery.c: prevent file descriptor leakageAdd missing PSE52 interfaces
* [#16606#16879](https://github.com/apache/nuttx/pull/1660616879) netdb/lib_dnsquery.c: In the IPv6 or IPv4 dns_query_callback() block,…include/nuttx/compiler.h:

Compatibility Concerns

Markdown
* [#16499](https://github.com/apache/nuttx/pull/16499) [BREAKING] fs/vfs: Separate file descriptors from file descriptions

This PR is a rework of the NuttX file descriptor implementation. The goal is two-fold:

Improve POSIX compliance. The old implementation tied file description
to inode only, not the file struct. POSIX however dictates otherwise.
Fix a bug with descriptor duplication (dup2() and dup3()). There is
an existing race condition with this POSIX API that currently results
in a kernel side crash.
The crash occurs when a partially open / closed file descriptor is
duplicated. The reason for the crash is that even if the descriptor is
closed, the file might still be in use by the kernel (due to e.g. ongoing
write to file). The open file data is changed by file_dup3() and this
causes a crash in the device / drivers themselves as they lose access to
the inode and private data.

The fix is done by separating struct file into file and file descriptor
structs. The file struct can live on even if the descriptor is closed,
fixing the crash. This also fixes the POSIX issue, as two descriptors
can now point to the same file.

The implementation of this PR is based on the modifications made in #16361.
Thank you @pussuw

DEPENDS ON: apache/nuttx-apps#3091

IMPACT

Remove the FS_REFCOUNT config because reference counting is a very necessary feature 
that is required in many scenarios to ensure stability.
Rename the functions fs_getfilep, fs_putfilep, and fs_reffilep to file_get, file_put, 
and file_ref respectively, to unify the naming convention to file_xxx, such as file_open,
 file_ioctl, etc. 
Introduce a new fd (file descriptor) structure. If multiple file descriptors (fds) are in
 a dup relationship, they can share the same file entity to implement the dup functionality.
Modify the functions nx_close_from_tcb, nx_open_from_tcb, nx_dup2_from_tcb, 
and nx_dup3_from_tcb to fdlist_open, fdlist_close, fdlist_dup2, and fdlist_dup3 respectively,
 to uniformly operate on file descriptors using fdlist.

Known Problems In This Release

...