DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
| Table of Contents |
|---|
Work In Progress
| Warning | ||
|---|---|---|
| ||
| NuttX 9.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 here |
What's New In This Release
...
There is detailed information on the implementation and how this impacts errno specifically in the Wiki article: Userspace errno and TLS Thread Local Storage (TLS)
PR-957 PR-947 PR-963 PR-969 Provide nx_ versions of many functions that are used internally to avoid disrupting errno in userspace
PR-965 PR-980 PR-984 ioctl is now always in the variadic form syscalls . Syscalls in KERNEL builds are also more efficent efficient with this as well now.
Previously the ioctl prototype was normally defined as
...
This change adds a flag call TCB_FLAG_CUSTOM_STACK that may be passed in the the pre-allocated TCB to nxtask_init(). This flag is not used internally anywhere in the OS except that if set, it will prevent sched_releasetcb() from attempting to free that custom stack.
Bug Fixes
Many private architecture interfaces were using 'up_' instead of the arch name 'arm_'
This fix is carried over many PRs such as PR-924. Many files also carried this same error in naming convention and were converted as well.
PR-1018 PR-1017 PR-1021 PR-1022 PR-1057 PR-1060 Clean up internal APIs that were not using the properly naming conventions
PR-857 Wrong value for it_interval field in timespec returned by timer_gettime
PR-1164 PR-1173 Implement some missing functions required for latest libc++
- aligned_alloc() posix_memaligned(), timespec_get(), wcsrtombs() wcsnrtombs(), mbsnrtowcs() mblen(), mbstowcs(), wcstombs()
PR-1172 Implement %ju and %jd printf formaters
PR-1179 Implement vscanf()
PR-1182 tmpfile() no longer hardcodes to /tmp path
PR-1186 printf() and vprintf() use buffered IO if available
PR-1174 Add support for mtx_timedlock recursive mutex
PR-1193 Add location directive to compiler.h to support location data in different memory sections
Bug Fixes
Many private architecture interfaces were using 'up_' instead of the arch name 'arm_'
This fix is carried over many PRs such as PR-924. Many files also carried this same error in naming convention and were converted as well.
PR-1018 PR-1017 PR-1021 PR-1022 PR-1057 PR-1060 PR-1194 Clean up internal APIs that were not using the properly naming conventions
PR-857 Wrong value for it_interval field in timespec returned by timer_gettime
PR-PR-902 SMP: On task creation do not clone uninitialized descriptors
...
This function requires traversing the VA_LIST twice. For some architectures like x86 and x86_64 this needs to be cloned first.
Major Changes to the Build System
...
This removes support for the Codesourcery, Atollic, DevKitArm, Raisonance, and CodeRed toolchains. Not only are these tools old and no longer used but they are all equivalent to the standard ARM EABI toolchains. Retaining specific support has was not meaningful (and they are still supported, but now just as generic EABI toolchains).
Bug Fixes
PR-1148 PR-1149 Improve build time especially on non-Linux platforms by providing a C version of incdir.sh
Bug Fixes
Many small changes Many small changes to resolve dependency resolution issues that would sometimes appear during parallel builds. Parallel builds should be much more reliable now and bugs filed against any issues found.
...
PR-1110 STM32H7: Use FDCANSEL to determin FDCAN clock source if possible
PR-905 x86_64: Resolve linking issue when building with gcc 7 and 9.
PR-904 x86_64: Resolve compiler aliasing warnings and RNG pointer cast bug
PR-944 x86_64: Change entrypoint to standard location 1M
1165 STM32H7: SPI transaction appears to be completed before the data has actually been flushed
TX DMA completes before the data has been actually sent out from the SPI fifo. This is expected, but the exchange should actually wait for spi tx to finish instead of dma to the fifo to finish. This replaces the dma completion event with the SPI TXC event for detecting end of transmission.
PR-1203 PR-1204 STM32H7: Enable support for BDMA and enable it for SPI6
PR-905 x86_64: Resolve linking issue when building with gcc 7 and 9.
PR-904 x86_64: Resolve compiler aliasing warnings and RNG pointer cast bug
PR-944 x86_64: Change entrypoint to standard location 1M
PR-971 x86_64: PR-971 x86_64: Fix bug in rng implementation using intrinsics
...
PR-919 sim: Add host mmap and perror to allow use of LIBC_MODLIB and BINFMT_LOADABLE
PR-1198 sim: Use correct errno sign with hostfs interface
PR-932 z16: Updated toolchain to ZDS-II 5.2.2
...
PR-988 K210: Resolve occasional lock in early boot caused by waiting for serial driver to initialize
PR-1205 K210: Add basic GPIOHS support
PR-1112 tiva: Add up_idle support
...
PR-1130 imxrt: Resolve WFI issue by setting the low power mode to remain in run mode
Driver Support
Bug Fixes
PR-1197 cxd56: Fix locking issue in Spresense audio driver causes by using semaphore in DMA buffer handling code
PR-1221 Add INTx_C macro defintion
Driver Support
Bug Fixes
PR-PR-1206 PR-1207 PR-1210 ioctl function should retun ENOTTY when the command is not recognized.
New Driver Support
PR-795 PR-1001 Initial NuttX audio driver supporting the Spresense CXD56
...
PR-1201 Support for the CS4344 stereo audio DAC
PR-1145 Support for the FTDI FT232R USB to Serial converter
...
PR-887 PR-888 rptun: Add control for independent control of rx and tx buffer size1052 gs2200m: Add max payload size to prevent crashing when sending large packets
PR-1090 gs2200m: Fix possible packet queue count overflow seen during streaming
PR-1127 gs2200m: Resolve possible buffer overrun in packet parsing
PR-1167 pty: Return correct number of bytes when CONFIG_SERIAL_TERMIOS and OPOST|ONLCR are enabled
Drivers With Significant Improvements
PR-887 PR-888 rptun: Add control for independent control of rx and tx buffer size
PR-917 gs2200m: Receive performance improvement for 917gs2200m: Receive performance improvement for TCP/UDP
PR-1032 gs2200m: Add SPI-DMA support to spresense
PR-1046 gs2200m: Add getsockname() support
PR-1052 gs2200m: Add max payload size to prevent crashing when sending large packets
PR-1090 gs2200m: Fix possible packet queue count overflow seen durring streaming
PR-10941094 PR-1163 gs2200m: Add flow control support to prevent memory starvation in changing network environments
PR-1101 gs2200m: Add WPA2-PSK AP mode support, this is now the default instead of WEPPR-1127 gs2200m: Resolve possible buffer overrun in packet parsing
PR-1115: SPI slave: Improve interface
Enable enqueue and receive full buffers of data with single call, to avoid call overhead when sending / receiving large amounts of data.
- Enable the slave device to leave received data in the controller receive buffers and retrieve it from there by polling
...
Significant Improvements
PR-1196 Audio: Add support for using ap_buffer_info without CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS and return ENOTTY if provided ioctl is not supported
PR-1222 audio/cxd56: Add audio buffering feature.
Board Support
Significant Improvements
PR-1200 The boards_button_initialize and boards_userled_initialize functions PR-1200 The boards_button_initialize and boards_userled_initialize functions now return the number of buttons and leds, thus their prototypes have changed from
...
PR-1113 lm3s6965ek: Use proper sysclock for QEMU configuration
File System
...
PR-918 tmpfs: Calling statfs could cause files to be removed recursively1229 Add support for the inboard joystick
PR-1232 Architectural re-organization to the initialization of the video stream driver to comply with other NuttX drivers
File System
Bug Fixes
PR-918 tmpfs: Calling statfs could cause files to be removed recursively
PR-1142 PR-1142 NFS: Use of uint64_t causes issues with gaps in data since it must be on a 8 byte boundary
...
#include <nuttx/config.h>
#ifdef CONFIG_NSH_PROC_MOUNTPOINT
mount -t procfs CONFIG_NSH_PROC_MOUNTPOINT
#endif
#ifdef CONFIG_FS_TMPFS
mount -t tmpfs CONFIG_LIBC_TMPDIR
#endif
#ifndef CONFIG_NSH_DISABLE_UNAME
uname -a > /dev/syslog
#endif
PR-851 Upgrade littlefs to v2.2.1
PR-1154 FATFS: Do not rewrite the root directory if it has not been changed.
PR-1120 PR-1118 Fill in file size for mtd and block inode
Networking
PR-807 Netlink: Broadcast link status changes to userspace via RTNLGRP_LINK
PR-892 Netdb: Multiple DNS Servers
PR adds capability to add multiple nameservers on run-time even when not using resolv.conf and reset the list of nameservers back to default setting (no nameserver at all or single predefined nameserver in Kconfig). This is useful for applications that change their cellular network frequently.
PR-1015 tcp/conn: Request ARP before 3-way handshake
Applications
Improvements
- Add the source command.
- Avoid use of sh where it is not needed since it pollutes the parent environment including the working directory and variables.
Bug Fixes
_DISABLE_UNAME
uname -a > /dev/syslog
#endif
PR-851 Upgrade littlefs to v2.2.1
PR-1154 FATFS: Do not rewrite the root directory if it has not been changed.
PR-1120 PR-1118 Fill in file size for mtd and block inode
Networking
PR-807 Netlink: Broadcast link status changes to userspace via RTNLGRP_LINK
PR-892 Netdb: Multiple DNS Servers
PR adds capability to add multiple nameservers on run-time even when not using resolv.conf and reset the list of nameservers back to default setting (no nameserver at all or single predefined nameserver in Kconfig). This is useful for applications that change their cellular network frequently.
PR-1015 tcp/conn: Request ARP before 3-way handshake
Applications
Improvements
- Add the source command.
- Avoid use of sh where it is not needed since it pollutes the parent environment including the working directory and variables.
PR-236 littlevgl: Add additional config mappings to the library
PR-264 nxplayer: Add max host and filename for http url
PR-260 nshlib: Add wget buffer size control with CONFIG_NSH_WGET_BUFF_SIZE
PR-243 dhcpd: Add ability for daemon to be cancelled
PR-238 Remove use the set_errno this is now properly handled by the libc and OS
PR-233 hdc1008: Add example application for this driver
Bug Fixes
PR-282 netlib: Fix pathlen computation for netlib_parseurl and netlib_parsehttpurl
PR-281 webclient: Check return value of netlib_parseurl correctly
PR-278 webclient: Handle http→https redirection correctly
PR-277 webclient: Limit the number of http redirects
PR-198 webclient: Use getaddrinfo() to get IPv4 address on dual stack systems
PR-268 ftpd: Fix EPSV mode for IPv4
PR-258 nsh: Always try FILE_APPS even if the command is builtin, this is a regression introduced in 9.0.0
PR-257 gs2200m: Handle packets over 1500 Bytes, previously would overflow buffer
PR-221 gs2200m: Server sockets were not properly being released by the daemon when close() was called
PR-248 dhcpd: Correct option header check length
PR-176 cu: Handle NULL character correctly
PR-287 PR-290 examples: Update nxflat and thttpd Makefile's to fix a build breakage.
Security Issues Fixed In This Release
...
Changes to Build System
If you have are building NuttX for a custom board, you may need to make some of the following changes in build-related files for your board:
...