| NuttX 10.1 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 |
#2820 arch, boards, drivers, include, sched, wireless: Change spinlock APIs.
#2885 Ensure the kernel component don't call userspace API
#2324 audio: libsamplerate: add initial audio Sample Rate Converter
#2627 OS internal function should indicate the error by return negative value
#2980 include: Add iso646.h for alternative spellings
#3115 libc: time: localtime: fix race condition
#3253 libc pthread: Fix pthread_rwlock_init return error
#2938 libs: misc: Remove critical section in lib_filesem.c for SMP
#2865 libc: :machine:risc-v:unifying elf relocation code
#2675 libc: Add placement new and new[] function
#2451 libc: pthread_mutexattr_getprotocol: modify prototype
#2326 libc: Enhance getopt function
#2407 libc: machine: arch: Support armv8-m relocation
#2509 libc: net: implement ether_aton/ether_aton_r
#2530 libc: Implement posix_fallocate
#2604 libc: Add b64_ntop and b64_pton implementation
#2534 libc: Implement getppid
#2574 libc: dumpbuffer: dump buffer enhancement
#2585 libc: netdb: Move hostbuffer out of the stack
#2630 libc: net: implement socketpair
#2741 libc: unistd/fpathconf: enhance fpathconf
#2742 libc: pthread/cond: enhance pthread_cond_destroy
#2881 libc: Move stack check stuff from libc/stdlib/ to libc/assert/
#3170 libc: Move getopt() variables into TLS
#3272 libc: Implement getopt_long() and getopt_long_only()
#2076 libc: math: Make this friendly with libcxx
#2855 libs: Remove the duplicated _NX_ and _MQ_ macro
#2693 libxx: use built-in __aeabi_atexit() if LIBSUPCXX is enabled
#3268 libdsp/fixed16: add open-loop handler
#3244 libdsp: Improvements for libdsp and support for fixed16 libdsp implementation
#3121 mm/heap: Move semaphore related declaration to private header
#3086 mm: improve the memory manager modularity and reduce the information explosion
#2906 mm: umm_heap: valloc: support valloc (LEGACY)
#3159 mm: mm_heap: Remove critical section in mm_sem.c
#2942 mtd: progmem: Add up_progmem_read callback guarded by ARCH_HAVE_PROGMEM_READ
#2849 mqueue: Add _MQ_OPEN, _MQ_CLOSE and _MQ_UNLINK macro
#2071 pollnotify: we should send poll events before semaphore incrementes.
#2492 procfs: make array const to reduce memory use
#3123 sched: pthread: Remove a redundant critical section in pthread_condclockwait.c
#3080 sched: semaphore: Remove a redundant critical section in nxsem
#2960 sched: signal: sigdeliver: fix system block when kill signal to idle in SMP
#1922 sched: nxtask_start should call entry point directly for kernel thread
#2229 sched/sched/sched_waitid.c: Allow WNOHANG
#3111 sched: Sporadic scheduler: Fix time calculation and compile errors when assertions are enabled:
#2261 sched/timer: add support of CLOCK_MONOTONIC
#2455 sched/sched/sched_waitpid.c: Discard the correct child entry
#2487 sched: clock/time: add CLOCK_BOOTTIME definition
#2517 sched: spinlock: Introduce SP_WFE() and SP_SEV()
#2518 sched: Don't forward gettid to getpid directly
#2602 sched: Add include/sys/poll.h
#2719 sched/task: setup the scheduling policy to task
#2872 sched: pthread: Fix pthread cmdline issue
#2043 sched: Add SCHED_INSTRUMENTATION_HIRES support
#2044 sched: Add note_syscall args support
#2631 sched: mqueue: simplify the mqueue reailize
#2981 sched: Remove all group id related stuff
#2204 sched: irq: Fix enter_critical_section() in an irq handler for SMP
#3196 sched/signal: Implement SA_NODEFER
#2176 syscall/syscall.csv: Increase number of arguments for prctl()
#3033 unistd: Fix getpriority not handling invalid input value
#2824 build/esp32: Create Flash size configuration and a new DOWNLOAD make target
#2107 build: Makefile should reference CONFIG_HOST_xxx
#3017 tools: esp32: Config.mk: Revert part of "Don't abort make when QEMU script fails"
#2882 tools: esp32: refine the QEMU image generation.
#2729 tools: esp32: backtrace.gdbscript: Add comments
#2673 tools: esp32: add a gdb script to show backtrace
#2679 tools: esp32: btdecode.sh: Script to decode the Xtensa backtrace.
#2895 tools: esp32: fix warnings from ShellCheck
#3012 tools: esp32xx: Few fixes/improvements to the post build scripts
#2803 tools: esp32: Remove some duplicated output
#2701 tools: gdbinit: add support for reporting total and used stack size
#3094 tools: version.sh: Fix PATCH including extra version
#2982 tools: nxstyle: Verify relative path in the file header
#3004 tools: esp32XX: Delete the Makefile that downloads IDF.
#2930 tools: version.sh: If the version is not available, use 0.0.0
ARM
#2042 Fix interrupt stack handlings for ARM SMP
STM32
#2177 FLASH waiting cycles are configured based on HCLK.
#2985 stm32 Ethernet hardening
S32K1XX
#2900 s32k1xx: Support ramfunc
RP2040
#3002 arm/rp2040: SPI driver DMA transfer support
#2952 arm/rp2040: Add I2C driver support
#2916a rm/rp2040: Raspberry Pi Pico SMP support
NRF52
#2189 nrf52_spi: support unconnected MISO/MOSI pins
STM32H7
#3207 usbhost: Add usb host tracing strings to stm32h7
#2994 stm32h7: Allow custom clock configuration to use stdclockconfig
#2955 stm32h7:Add DBGMCU missing from master
Risc-V
#3006 esp32-c3: Adds timer driver
#2991 risc-v/bl602: Add wifi and ble support
#2901 esp32c3: Add system reset.
#2870 Support for ESP32-C3 GPIO Driver
#2965 ESP32XX: Add more flash options to esptool
Xtensa
#3003 ESP32: Re-organise the different heap regions
#2999 esp32: Add WPA2 Enterprise and WPA3 support
#3015 xtensa hostfs: Make host_stat populate st_size
#2939 xtensa/esp32: Refactor ESP32 WiFi driver to support station and softAP coexistence
#2947 esp32_ummap: write back spiram cache before calling Cache_Flush
#2965 ESP32XX: Add more flash options to esptool
#2983 esp32: Extract memory layout definitions to a separate header
#2979 xtensa/esp32: Add support for I2C tracing
IMXRT
#2929 iMXRT: changes to FlexCAN driver support
#2129 add "nimble" config, to test nimBLE on top of bthcisock
#3152 add dlsym to nuttx-names.in
#2164 add LVGL configuration which uses the X11 framebuffer and mouse
#3093 add heap policy and asan logic to support mm debug on sim platform
#2619 hci: reuse the reserved fields of hci buffer
#2696 hcitty: add hcitty adapter
#2158 linux I2C bus support in sim
#2579 make it conditional with FS_FAT
#2599 names: add writev/readv into name list
#3478 refactor signal handling
#2130 rpproxy/rpserver: force use 'CONFIG_SIM_M32' for 64bit system.
#2198 support LCD emulation over X11; correctly decouple LCD/FB from X11/NX
#2690 support sim vfork
#2850 audio: Introduce a driver-specific spinlock to cxd56.c
#2950 audio: pcm_decode: add RAW format support
#2070 bluetooth: support HCI/L2CAP sockets, support HCI RAW channel
#3110 can: Add CAN FD flags to CAN header
#2490 leds: ws2812: make frequency selection more flexible
#2208 lcd: add optional putarea()/getarea() operations
#2142 note: Add task name record for task trace
#2146 pipes: nx_pipe syscall takes three params, also use nx_close
#2315 sensors: add common circular buffer management
#2215 sensors: add new feature about sensor driver model
#2039 sensors: add unified management for sensor
#2715 sensors: bmp280: convert to sensor interface (and minor sensor change)
#2907 sensors: driver model update
#3000 sensors: fakesensor support batch
#2369 sensors: support custom types of sensor
#2318 sensors: update l3gd20 sensor driver with new sensor driver model
#2698 syslog: Added color output to syslog.
#2621 syslog: Added formatted timestamps in syslog.
#3050 syslog: Added support for multiple syslog channels.
#3020 syslog: add option to prefix process name
#2697 syslog: Added printing of log priority in syslog
#2692 syslog: Prepend Process ID to syslog message
#2710 syslog: Re-arranged syslog fields.
#3226 syslog: Added multi device support in syslog_device.
#2961 syslog_rpmsg: fix system crash when open CONFIG_SCHED_HAVE_PARENT
#3201 timers: rtc/rpmsg: support server and client to set time each other
#2691 wireless: bluetooth: add more hci event definitions
#2201 wireless: gs2200m: Add function to get IWNWID / IWFREQ / IWSENS information
#2175 wireless: gs2200m: Check disassociation from AP and enable rejoin
#2429 audio: add simple wm8994 codec driver
#2282 audio: cxd56: add initial audio SRC implementation
#2301analog: support for MAX1161X family of I2C 12 bit ADC chips
#2736 console: Add generic support to LWL Console
#2628 efuse: Add generic efuse driver for NuttX
#2166 lcd: Add LCD character driver: allows interacting with LCD directly from userspace
#3230 motor: add generic upper-half driver for Field Oriented Control (FOC)
#1936 note: Add task trace support
#2216 rc: support infrared remote control
#2829 sensor: add fakesensor driver
#3474 sensors: Adds driver for hyt271 sensore module
#1989 sensors: Support fxos8700cq motion I2C sensor
#2091 usbdev: add Android Debug Bridge driver
#3105 fs/epoll: correct the return value of epoll_ctl(2)
#2956 fs/mount: fix mount cmd break out when meet stat error
#3042 fs: vfs : Do some adjustments for epoll
#2317 fs: flashback to release all file descriptors in group to increase debugging time.
#2540 fs: Skip call fs_checkfd if fd < 3 in fs_fdopen
#3137 fs/littlefs: Suppport the duplication function
#2724 fs/tmpfs: Iterate the entry reversely in readdir
#2852 fs: Merge fs_poll into poll_fdsetup
#3060 fs: find_blockdriver: Don't ferr() on MTDs
#3070 fs/mmap: Return EACCES for incompatible file descriptors
#3069 fs/mmap: Clarify MAP_PRIVATE dependency on CONFIG_FS_RAMMAP
#2861 fs: change geometry sizes from size_t to uint32_t
#2598 fs/epoll: add asynchronous epoll control support
#3045 fs: Allocate file/socket dynamically
#2841 fs: procfs meminfo improvements
#2957 fs: mqueue: add poll support
#3212 fs/lfs: Update version to 2.4.0
#2414 net: tcp: implement the fast retransmit
#3257 net: tcp: support bind the same port with different domain
#2548 net: tcp: optimize TCP handshake performance
#3113 net: usrsock: add send multi-elements support
#2899 net: socket: Unify socket into file system to avoid the code duplication
#2695 netpacket: if_addr: add interface address header
#3081 tcp_send_buffered.c: improve tcp write buffering
#3025 net: Add sendmsg and recvmsg to syscall list
#2417 net: wireless: add country code control support
#2964 net: socket_rpmsg: add socket rpmsg support
#2415 net: gmp: add MULTICAST_TTL support
#2257 net: callback: remove the assert check of conn instance
#3043 net: local: Remove local_send.c since nobody use it now
#3221 net: tcp: tcp_send_buffered.c: Fix non-blocking I/O
#3100 net: tcp: correct the port byte order
#3106 net: if: remove the macro expansion of the public structure
#3104 net: dev: check the available address further
#3101 net: arp: add timeout to avoid infinite send wait
#2489 net: tcp: send the ACK in time after obtain ahead buffer from iobs
#3099 net: tcp: dup: do not start the tcp monitor if unestablished
#3103 net: tcp: reset the connection ref count before tcp_free()
#2688 net: Remove duplicate forward references
#2911 net: fix a few DP83848C and DP83825I constants
#2978 telnet: fix crash about telnet client connect
#3254 net: arp: Fix arp
#2959 net: socket: move si_send/recv into sendmsg/recvmsg
#2869 netdb.h: Add NI_MAXHOST and NI_MAXSERV
#3037 Revert "net: tcp: Add DEBUGASSERT() in psock_tcp_send()"
PR-1890 (commit 2caf3a69e3d60ec550980f7ba897c732e7a39df7) attempts to speed up compilation time for concurrent builds by changing assignment to makefile variables CFLAGS, CPPFLAGS, CXXFLAGS, and AFLAGS from recursive (=) to simple (:=). This causes these compile options to be expanded only once during the build.
If you are using NuttX on a custom board not in the NuttX repository, you may want to make a similar change to your Make.defs files. Change these recursive assignments:
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) AFLAGS = $(CFLAGS) -D__ASSEMBLY__ |
to simple assignments:
CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) AFLAGS := $(CFLAGS) -D__ASSEMBLY__ |
PR-2192 (commit 9208176f600d0d04446531909bf05710716a5ee4) refactors definition of the __NuttX__ preprocessor symbol to tools/Config.mk, so it is no longer necessary to define it in each board's Make.defs file.
If you are using NuttX on a custom board not in the NuttX repository, you may want to make a similar change to your Make.defs files.
Remove lines like this:
ARCHDEFINES = -D__NuttX__ |
Or remove -D__NuttX__ from lines like this:
CXXFLAGS += $(ARCHDEFINES) $(EXTRAFLAGS) -pipe -std=c++11 -D__NuttX__ |
Release artifacts for all current and past NuttX releases can be downloaded at:
The Apache NuttX project uses Git SCM as its version control system.
There are two primary repositories:
The main "Single Source of Truth" repositories are hosted by the ASF:
These are synchronized with repositories hosted at GitHub:
The main forum for project communication, to ask a question, get involved, or contribute to NuttX, is our mailing list, dev@nuttx.apache.org. The list is publicly archived and searchable at https://lists.apache.org/list.html?dev@nuttx.apache.org. For more information, see NuttX Community.
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.