Versions Compared

Key

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

...

What's New In This Release

Major Changes to Core OS

New Features

#2820 arch, boards, drivers, include, sched, wireless: Change spinlock APIs.

Highlights

Better separation between kernel and userspace.

Heap and stack management improvements.

More closely follow POSIX and Linux interfaces.

Symmetric Multi-Processing (SMP) performance improvements and bug fixes.

Networking improvements and bug fixes.

Added support for many microcontrollers and boards, and improved support for many existing ones.

Many added and improved drivers.

Build system improvements to deliver faster builds.

Thousands of NuttX files converted to Apache 2.0 License with permission of their authors.

Improved listing of 3rd party licenses used in NuttX (see LICENSE, NOTICE, and DISCLAIMER-WIP files).

Major Changes to Core OS

New Features

#2820 arch, boards, drivers, include, sched, wireless: Change spinlock APIs.

#2885 #2885 Ensure the kernel component don't call userspace API

...

#2161 Added Support for more TI Tiva Microcontrollers: TM4C123GH6PZ, TM4C123GH6PGE, TM4C129ENCPDT, and TM4C129ENCZAD.


Architectures with significant improvements

...

#1942 Implement BASIC reset logic

#1893 xtensa/esp32: Add ESP32 WiFi adapter and driver


Simulator

New Features

#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

...

#2864 Add wapi_smp to test Wi-Fi in SMP mode

#2971 esp32: Add board config to support MCP2515

#3071 ESP32: Mount TMPFS on board bring up

#2888 This commit enables BMP180 suport for ESP32

#2753 esp32: Enable renew for "wapi" configs

#3270 xtensa/esp32: Refactor register access functions on SPI driver

#3303 esp32-devkitc: Add BMP180 sensor support

#3192 esp32-devkitc: Make nsh the entry-point of the ostest config to support MCP2515

#3071 ESP32: Mount TMPFS on board bring up

#2888 This commit enables BMP180 suport for ESP32

#2753 esp32: Enable renew for "wapi" configs

#3270 xtensa/esp32: Refactor register access functions on SPI driver

#3303 esp32-devkitc: Add BMP180 sensor support

#3192 esp32-devkitc: Make nsh the entry-point of the ostest config

#3211 esp32-devkitc: Add GPIO board support

#3190 risc-v/esp32c3: Support ESP32-C3 wireless ioctl cmd

#3164 xtensa/esp32: Adds oneshot timer driver.

#3117 xtensa/esp32: Use Polling instead of DMA for transfers below threshold

#3154 ESP32: Add Button support via BOOT button on GPIO0

#1893 xtensa/esp32: Add ESP32 WiFi adapter and driver

#3139 xtensa/esp32: Support esp32 wireless ioctl cmd

#3095 ESP32: Allow a BSS section to reside in external memory

#2507 boards/arm/stm32: add common and stm32f103-minimum support for WS2812

TIVA

#2684 boards: lm3s6965-ek: Add iperf to discover/defconfig

File System

Bug Fixes

#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

#2260 fs: eventfd: remove the unique minor limit

Significant Improvements

#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

Networking

Applications

Improvements

#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

Bug Fixes

#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

#3211 esp32-devkitc: Add GPIO board support

#3190 risc-v/esp32c3: Support ESP32-C3 wireless ioctl cmd

#3164 xtensa/esp32: Adds oneshot timer driver.

#3117 xtensa/esp32: Use Polling instead of DMA for transfers below threshold

#3154 ESP32: Add Button support via BOOT button on GPIO0

#3139 xtensa/esp32: Support esp32 wireless ioctl cmd

#3095 ESP32: Allow a BSS section to reside in external memory

#2507 boards/arm/stm32: add common and stm32f103-minimum support for WS2812


TIVA

#2684 boards: lm3s6965-ek: Add iperf to discover/defconfig


Minor Board Cahanges

ARM

#2079 Stm32 oled fixes pr

#2360 stm32/stm32ldiscovery: modernize board init little bit


CXD56

#2193 cxd56xx: Remove HOSTCC and HOSTCFLAGS from Make.defs


#2356 Fix lc823450



#2353 Fix of the OTG FS HOST for nucleo-h743zi


#2030 freedom-k64f: Fix k64_buttons.c

#1969 freedom-k64f: Init PWM only if enabled


#3074 esp32c3-devkit: Use nx_mount to avoid overriding errno


Xtensa

#2802 ESP32: Refactor of POSTBUILD action

#2127 esp32: Added Userled support


File System

Bug Fixes

#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

#2260 fs: eventfd: remove the unique minor limit

#2073 fs: epoll_create: modify return value for epoll_create1

#2913 fs/lfs: lfs_file_sync() when littlefs_open

#2810 fs: eventfd: Convert the indent under EVENT_FD_VFS_PATH option to tab

#2854 fs: Don't call _NX_SETERRNO in fopen and fdopen

#2339 Revert "fs/nxffs: Fix scan good block slowly and scan an invalid block"

#2572 fs: spiffs fixes

#3491 fs: vfs: adjust the error code of write to be consistent with read

#3444 fs/romfs: fix open zero-byte file fail issue

#2532 fs/unionfs: remove excessive protection to avoid deadlock

#2618 fs: remove INODE_IS_SPECIAL() use INODE_IS_PSEUDODIR instead

#2606 fs: Fix inode lock at umount2

#2638 fs: fs_dupfd2 should return OK if fd1 equals fd2

#2639 fs: Let files_allocate return -EMFILE instead ERROR

#2640 fs: Remove _files_close and reuse file_close

#2643 fs: Fix the race condition in file_dup

#2648 fs: Remove the special hack for pty in nx_vopen

#2660 fs: Reimplement file_open to not depend on nx_open

#2662 fs/inode/fs_files.c: fix DEBUGASSERT in romfs

#2667 fs: Make nx_vxxx and file_vxxx as internal functions

#2661 fs: file_dup2 shouldn't hold the file list lock

#2739 fs/readdir: Must reserve a byte for the NUL terminator

Significant Improvements

#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

Networking

Applications

Improvements

#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

Bug Fixes

#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()"

#2075 net: TCP-stack fix for stalled tcp sockets due to broken keepalive

#2121 net: devif: devif_callback.c: remove harmful debug check

#1589 net: tcp: fix tcp socket close timeout if loss wireless connection

#2332 net/tcp: Rectified keepalive fix

#2811 net/local: Add an option to specify the prefix of named pipe

#3062 net: tcp_sendfile.c: Remove an unused copy of CONFIG_NET_TCP_SPLIT_SIZE

#3044 net: fix local_sendmsg return length

#2774 net/ip: do not drop the udp packet from IP layer

#2466 net/igmp: add sanity check to handle allocate fail

#2467 net/sockopt: Try usrsock further if the protocol not available

#2465 net/procfs: handle opendir("/proc/net/") correctly

#2421 net/neighbor/neighbor_ethernet_out.c: fix build error without ICMPv6

#2416 net/tcp: fallback to unthrottle pool to avoid deadlock

#2413 net/tcp: correct the available iobs count if throttle is enabled

#2412 net/icmp: add sanity check to avoid wild data length

#3319 tcp_netpoll.c: Fix a performance issue with CONFIG_NET_TCP_WRITE_BUFFERS#3037 Revert "net: tcp: Add DEBUGASSERT() in psock_tcp_send()"


Security Issues Fixed In This Release

...