1254 lines
46 KiB
Plaintext
1254 lines
46 KiB
Plaintext
|
NuttX-10.0.0
|
|||
|
------------
|
|||
|
|
|||
|
## Major Changes to Core OS
|
|||
|
|
|||
|
### New Features
|
|||
|
|
|||
|
Major changes to the internal, OS timer (wdog) interfaces. The change includes:
|
|||
|
|
|||
|
* The wdog timer call backs used to support a variable number of arguments.
|
|||
|
Now they support only a single argument ([PR
|
|||
|
#1565](https://github.com/apache/nuttx/pull/1565)). This eliminates
|
|||
|
(1) the configuration option `CONFIG_MAX_WDOGPARMS` and the OS interfaces
|
|||
|
`wd_create()` and `wd_delete()` * wdog timer data structures are no longer
|
|||
|
pre-allocated. Now they are allocated by the caller of `wd_start()`. This (1)
|
|||
|
eliminates the configuration options `CONFIG_PREALLOC_WDOGS` and
|
|||
|
`CONFIG_WDOG_INTRESERVE`, (2) eliminates the type `WDOG_ID` which was a pointer
|
|||
|
type to `struct wdog_s`, and (3) change the type of the first argument of all
|
|||
|
remaining wdog interfaces functions from `WDOG_ID` to `FAR struct wdog_s *`.
|
|||
|
|
|||
|
Because of these changes, all proprietary drivers maintained by all NuttX users
|
|||
|
will require modification. The following summaries the required modifications:
|
|||
|
|
|||
|
* Most drivers have a field in structure like `WDOG_ID wdog`; That must be
|
|||
|
changed to `struct wdog_s wdog`; That changes the field from a pointer to a
|
|||
|
`struct wdog_s` to the `struct wdog_s` storage itself. * Eliminate all calls
|
|||
|
to `wd_create()`. The `WDOG_ID` is not longer managed by the timing subsystem
|
|||
|
and the `wd_create()` interface has been removed. * The `wd_delete()`
|
|||
|
interface has also been removed, but more care will need to be exercised:
|
|||
|
`wd_delete()` also cancels any running timer so, in many case, calls to
|
|||
|
`wd_delete()` should be replaced with calls to `wd_cancel()`. If you are certain
|
|||
|
that the timer has never been started, then you must remove the call to
|
|||
|
`wd_delete()` altogether. Calling `wd_cancel()` with an un-initialized s`truct
|
|||
|
wdog_s` instance may well cause a fatal crash. * Replace the first parameter
|
|||
|
of all remaining wdog function calls from. For example, replace a call like `ret
|
|||
|
= wd_cancel(priv->wdog)` where `priv->wdog` was type `WDOG_ID` with the call
|
|||
|
`ret = wd_cancel(&priv->wdog)`where `priv->wdog` is now type `struct wdog_s`.
|
|||
|
|
|||
|
* [PR-1877](https://github.com/apache/nuttx/pull/1877) libc:
|
|||
|
Implement "j" modifier for scanf
|
|||
|
|
|||
|
* [PR-1864](https://github.com/apache/nuttx/pull/1864) libc: fs: Add
|
|||
|
relative path support
|
|||
|
|
|||
|
* [PR-1863](https://github.com/apache/nuttx/pull/1863) libc:
|
|||
|
Implement `access()`
|
|||
|
|
|||
|
* [PR-1866](https://github.com/apache/nuttx/pull/1866) libc: uio:
|
|||
|
enable `writev()` for sockets
|
|||
|
|
|||
|
* [PR-1853](https://github.com/apache/nuttx/pull/1853) libc:
|
|||
|
Implement `popcount/popcountl/popcountll`
|
|||
|
|
|||
|
* [PR-1850](https://github.com/apache/nuttx/pull/1850) Add tool for
|
|||
|
parsing the callstack for Trace32
|
|||
|
|
|||
|
* [PR-1840](https://github.com/apache/nuttx/pull/1840) Add POLLPRI
|
|||
|
for exception condition on the file descriptor
|
|||
|
|
|||
|
* [PR-1828](https://github.com/apache/nuttx/pull/1828) Implement
|
|||
|
mkdtemp syscall
|
|||
|
|
|||
|
* [PR-1826](https://github.com/apache/nuttx/pull/1826) libc: Add
|
|||
|
"tm\_zone" member to tm
|
|||
|
|
|||
|
* [PR-1824](https://github.com/apache/nuttx/pull/1824) Implement
|
|||
|
etpriority syscall
|
|||
|
|
|||
|
* [PR-1821](https://github.com/apache/nuttx/pull/1821) Implement
|
|||
|
gettid syscall
|
|||
|
|
|||
|
* [PR-1818](https://github.com/apache/nuttx/pull/1818) Implement
|
|||
|
pipe2 syscall
|
|||
|
|
|||
|
* [PR-1779](https://github.com/apache/nuttx/pull/1779) libc: Minimal
|
|||
|
umask implementation
|
|||
|
|
|||
|
* [PR-1758](https://github.com/apache/nuttx/pull/1758) mm: Add lock
|
|||
|
to protect call to mm\_addregion
|
|||
|
|
|||
|
* [PR-1756](https://github.com/apache/nuttx/pull/1756) libc:
|
|||
|
Implement gethrtime, getrlimit, setrlimit
|
|||
|
|
|||
|
* [PR-1658](https://github.com/apache/nuttx/pull/1658) libc: Add
|
|||
|
stubs for utimes
|
|||
|
|
|||
|
* [PR-1615](https://github.com/apache/nuttx/pull/1615) libc:
|
|||
|
Implement tm::tm\_gmtoff field
|
|||
|
|
|||
|
* [PR-1611](https://github.com/apache/nuttx/pull/1611) libc: Allocate
|
|||
|
file\_struct dynamically
|
|||
|
|
|||
|
* [PR-1684](https://github.com/apache/nuttx/pull/1684) Add gdb script
|
|||
|
for NuttX thread debugging
|
|||
|
|
|||
|
* [PR-1607](https://github.com/apache/nuttx/pull/1607) mm: Implement
|
|||
|
malloc\_usable\_size
|
|||
|
|
|||
|
* [PR-1606](https://github.com/apache/nuttx/pull/1606) sched/pthread:
|
|||
|
Implement pthread\_attr\_detachstate
|
|||
|
|
|||
|
* [PR-1600](https://github.com/apache/nuttx/pull/1600) Implement
|
|||
|
epol\_pwait and EPOLLONESHOT flag
|
|||
|
|
|||
|
* [PR-1597](https://github.com/apache/nuttx/pull/1597) sched: Support
|
|||
|
passing non empty argument to init task
|
|||
|
|
|||
|
* [PR-1596](https://github.com/apache/nuttx/pull/1596) libc: Replace
|
|||
|
all sem\_xxx with \_SEM\_XXX. This insures the correct semaphore interface is
|
|||
|
used by userspace and the kernel.
|
|||
|
|
|||
|
* [PR-1517](https://github.com/apache/nuttx/pull/1517) sched/wdog:
|
|||
|
Change the default value of MAX\_WDOGPARMS from 4 to 2 as wd\_start is two every
|
|||
|
where in the code base. Also bump CONFIG\_MAX\_WDOGPARAMS from 1 to 2 in
|
|||
|
defconfigs to support pthread\_condclockwait()
|
|||
|
|
|||
|
* [PR-1486](https://github.com/apache/nuttx/pull/1486) libc:
|
|||
|
Implement ftw and nftw functions
|
|||
|
|
|||
|
* [PR-1567](https://github.com/apache/nuttx/pull/1567) libc:
|
|||
|
Implement proposed POSIX \_clockwait variants of \_timedwait functions
|
|||
|
|
|||
|
* [PR-1411](https://github.com/apache/nuttx/pull/1411) libxx:
|
|||
|
Integrate latest uclibcxx 0.2.5
|
|||
|
|
|||
|
* [PR-1586](https://github.com/apache/nuttx/pull/1586) libc: Add open
|
|||
|
for text (translated) access support
|
|||
|
|
|||
|
* [PR-1584](https://github.com/apache/nuttx/pull/1584) libc:
|
|||
|
Implement strlcpy function
|
|||
|
|
|||
|
* [PR-1580](https://github.com/apache/nuttx/pull/1580) libc:
|
|||
|
Implement pthread\_conattr\_etclock
|
|||
|
|
|||
|
* [PR-1545](https://github.com/apache/nuttx/pull/1545) sched/wdog: Do
|
|||
|
not dynamically allocate wdog\_s. Reduces overhead and brings it inline with
|
|||
|
work\_s
|
|||
|
|
|||
|
* [PR-1534](https://github.com/apache/nuttx/pull/1534) sched/wdog:
|
|||
|
Replace all callback arguments from uint32\_t to wdparm\_t
|
|||
|
|
|||
|
* [PR-1420](https://github.com/apache/nuttx/pull/1420) libc: Do not
|
|||
|
define localtime\[\_r\] to macro with CONFIG\_LIBC\_LOCALTIME is not defined.
|
|||
|
|
|||
|
* [PR-1375](https://github.com/apache/nuttx/pull/1375) libc: Always
|
|||
|
declare getenv, link/symlink and atexist/on\_exit. Many C++ libraries reference
|
|||
|
these but dont use them
|
|||
|
|
|||
|
* [PR-1371](https://github.com/apache/nuttx/pull/1371) libc: Improve
|
|||
|
stat/readdir to be more POSIX compliant with S\_xxx macro definition as with
|
|||
|
Linux
|
|||
|
|
|||
|
* [PR-1369](https://github.com/apache/nuttx/pull/1369) Initialize the
|
|||
|
idle stack at the arch layer to better support stack coloring and also make it
|
|||
|
compatible with new TLS implementation
|
|||
|
|
|||
|
* [PR-1292](https://github.com/apache/nuttx/pull/1292) pthread/mutex:
|
|||
|
Add PTHREAD\_RECURSIVE\_MUTEX\_INITIALIZER\_NP support
|
|||
|
|
|||
|
* [PR-1280](https://github.com/apache/nuttx/pull/1280) libc:
|
|||
|
Implement fseeko and ftello
|
|||
|
|
|||
|
* [PR-1279](https://github.com/apache/nuttx/pull/1279) libc:
|
|||
|
Implement lstat and realpath
|
|||
|
|
|||
|
* [PR-1278](https://github.com/apache/nuttx/pull/1278) libc:
|
|||
|
Implement pathconf and fpathconf
|
|||
|
|
|||
|
* [PR-1269](https://github.com/apache/nuttx/pull/1269) cstdlib: Add
|
|||
|
missing atox to std namespace
|
|||
|
|
|||
|
* [PR-1264](https://github.com/apache/nuttx/pull/1264) sched/pthread:
|
|||
|
Prohibit the use of pthread\_cleanup API's by kernel threads
|
|||
|
|
|||
|
* [PR-1440](https://github.com/apache/nuttx/pull/1440) libc: Add the
|
|||
|
UUID libc functions
|
|||
|
|
|||
|
* [PR-1308](https://github.com/apache/nuttx/pull/1308) libc: Add
|
|||
|
support for \_SC\_NPROCESSORS\_CONF/\_SC\_NPROCESSORS\_ONLN to sysconf
|
|||
|
|
|||
|
* [PR-1305](https://github.com/apache/nuttx/pull/1305) libc:
|
|||
|
Implement WNOHANG for waitpid and waitid
|
|||
|
|
|||
|
* [PR-1237](https://github.com/apache/nuttx/pull/1237) libc: Add
|
|||
|
minimal support for locale\_t operation: suplocale, freelocale, newlocale,
|
|||
|
userlocale
|
|||
|
|
|||
|
* [PR-1317](https://github.com/apache/nuttx/pull/1317) sched/task:
|
|||
|
Unify task initialization
|
|||
|
|
|||
|
* [PR-1187](https://github.com/apache/nuttx/pull/1187) sched: Unify
|
|||
|
main thread and pthread behavior
|
|||
|
|
|||
|
* [PR-2263](https://github.com/apache/nuttx/pull/2263) libc/stdio:
|
|||
|
Preallocate stdin, stdout, stderr
|
|||
|
|
|||
|
* [PR-2053](https://github.com/apache/nuttx/pull/2053) *
|
|||
|
[PR-2040](https://github.com/apache/nuttx/pull/2040) serial/termios:
|
|||
|
Support custom baudrate setting
|
|||
|
|
|||
|
### Bug Fixes
|
|||
|
|
|||
|
* [PR-1911](https://github.com/apache/nuttx/pull/1911) init\_section
|
|||
|
was not being emitted resulting in C++ static constructors not being called.
|
|||
|
|
|||
|
* [PR-1889](https://github.com/apache/nuttx/pull/1889) Fix build
|
|||
|
error for ::setbuf if CONFIG\_STDIO\_DISABLE\_BUFFERING is set
|
|||
|
|
|||
|
* [PR-1619](https://github.com/apache/nuttx/pull/1619) Fix inverted
|
|||
|
errno in mq\_open
|
|||
|
|
|||
|
* [PR-1595](https://github.com/apache/nuttx/pull/1595) epoll\_wait()
|
|||
|
must loop until "maxevents" to fille output evs array
|
|||
|
|
|||
|
* [PR-1519](https://github.com/apache/nuttx/pull/1519) libc: Replace
|
|||
|
index/rindex from macro to function to protect against side effects with
|
|||
|
conflicting local variables
|
|||
|
|
|||
|
* [PR-1514](https://github.com/apache/nuttx/pull/1514) Remove usage
|
|||
|
for user-space memalign() from kernel/driver code. Instead use the proper
|
|||
|
kernel memory interface.
|
|||
|
|
|||
|
* [PR-1512](https://github.com/apache/nuttx/pull/1512) / *
|
|||
|
[PR-1510](https://github.com/apache/nuttx/pull/1510) / *
|
|||
|
[PR-1507](https://github.com/apache/nuttx/pull/1507) Remove usage for
|
|||
|
user-space malloc()/zalloc()/free() from kernel/driver code. Instead use the
|
|||
|
proper kernel memory interface.
|
|||
|
|
|||
|
* [PR-1496](https://github.com/apache/nuttx/pull/1496) libc: Change
|
|||
|
ctype macro to normal function to resolve macro evaluation side effects
|
|||
|
|
|||
|
* [PR-1463](https://github.com/apache/nuttx/pull/146) libc: Replace
|
|||
|
all malloc/free with lib\_malloc/lib\_free inside libc
|
|||
|
|
|||
|
* [PR-1365](https://github.com/apache/nuttx/pull/1365) up\_assert
|
|||
|
should not call exit() directly because it is only callable from userspace
|
|||
|
|
|||
|
* [PR-1336](https://github.com/apache/nuttx/pull/1336) syscall: Fix
|
|||
|
prctl PR\_SET\_NAME failure if called without pid argument
|
|||
|
|
|||
|
* [PR-1289](https://github.com/apache/nuttx/pull/1289) Clear the
|
|||
|
error indicator with rewind()
|
|||
|
|
|||
|
* [PR-1254](https://github.com/apache/nuttx/pull/1254) libc: mkstemp
|
|||
|
only look at the trailing X's instead of the first X
|
|||
|
|
|||
|
* [PR-1311](https://github.com/apache/nuttx/pull/1311) libc: Move
|
|||
|
double\_t typedef from sys/types.h to math.h
|
|||
|
|
|||
|
* [PR-1328](https://github.com/apache/nuttx/pull/1328) Make sure that
|
|||
|
pthread\_cleanup functions are only called from userspace
|
|||
|
|
|||
|
* [PR-1318](https://github.com/apache/nuttx/pull/1318)
|
|||
|
nxsched\_release\_tcb should release stack in kernel build, fixes memory leak
|
|||
|
|
|||
|
* [PR-2951](https://github.com/apache/nuttx/pull/2951) sched: Fix
|
|||
|
deadlock in nxtask\_exit() for SMP
|
|||
|
|
|||
|
* [PR-2229](https://github.com/apache/nuttx/pulls/2229) *
|
|||
|
[PR-2298](https://github.com/apache/nuttx/pulls/2298) *
|
|||
|
[PR-2279](https://github.com/apache/nuttx/pulls/2279) *
|
|||
|
[PR-2272](https://github.com/apache/nuttx/pulls/2272) *
|
|||
|
[PR-2264](https://github.com/apache/nuttx/pulls/2264) *
|
|||
|
[PR-1992](https://github.com/apache/nuttx/pulls/1992) *
|
|||
|
[PR-2022](https://github.com/apache/nuttx/pulls/2022) sched: SMP
|
|||
|
fixups that caused locking and removal of some no longer required workarounds
|
|||
|
|
|||
|
* [PR-1993](https://github.com/apache/nuttx/pull/1993) libc: Skip
|
|||
|
close stdin/stdout/stderr in fclose
|
|||
|
|
|||
|
* [PR-1997](https://github.com/apache/nuttx/pull/1997) libc: Remove
|
|||
|
all calls to fclose with stdin/stdout/stderr with fclose
|
|||
|
|
|||
|
## Major Changes to Documentation
|
|||
|
|
|||
|
* [PR-1763](https://github.com/apache/nuttx/pulls/1763) Add
|
|||
|
quickstart documentation
|
|||
|
|
|||
|
* [PR-1677](https://github.com/apache/nuttx/pull/1677) Add simulator,
|
|||
|
drivers, and contributing instructions for new users
|
|||
|
|
|||
|
* [PR-1675](https://github.com/apache/nuttx/pull/1675) Add quickstart
|
|||
|
documentation from NuttX Companion
|
|||
|
|
|||
|
* [PR-1673](https://github.com/apache/nuttx/pull/1673) Update all the
|
|||
|
links in the documentation to point to nuttx.apache.org or the Apache NuttX
|
|||
|
wiki instead of old nuttx.org resources
|
|||
|
|
|||
|
* [PR-1501](https://github.com/apache/nuttx/pull/1501) Port all the
|
|||
|
existing documentation from HTML files to Sphinx based documentation along with
|
|||
|
a bunch of updates and improvments
|
|||
|
|
|||
|
* [PR-1433](https://github.com/apache/nuttx/pull/1433) Convert README
|
|||
|
documentation to Markdown
|
|||
|
|
|||
|
## Major Changes to the Build System
|
|||
|
|
|||
|
### New Features
|
|||
|
|
|||
|
* [PR-1786](https://github.com/apache/nuttx/pull/1786) Support
|
|||
|
building external code into the OS
|
|||
|
|
|||
|
* [PR-1396](https://github.com/apache/nuttx/pull/1396) Make C/C++
|
|||
|
search path common so all boards support uClibc++/libc++ automatically
|
|||
|
|
|||
|
* [PR-1682](https://github.com/apache/nuttx/pull/1682) configure.sh
|
|||
|
can now list configurations with "-L" option
|
|||
|
|
|||
|
* [PR-2023](https://github.com/apache/nuttx/pull/2023) tools: Remove
|
|||
|
WSL configuration. This is just Linux now.
|
|||
|
|
|||
|
### Bug Fixes
|
|||
|
|
|||
|
* [PR-1713](https://github.com/apache/nuttx/pull/1713) Fix export
|
|||
|
target: libboard was missing KERNEL flag.
|
|||
|
|
|||
|
* [PR-1470](https://github.com/apache/nuttx/pull/1470) Fix Make.dep
|
|||
|
not updated by .config changes
|
|||
|
|
|||
|
* [PR-1345](https://github.com/apache/nuttx/pull/1786) Enhance export
|
|||
|
target: make BIN directory configurable, export post build script, use LDNAME
|
|||
|
instead of LDSCRIPT
|
|||
|
|
|||
|
* [PR-1332](https://github.com/apache/nuttx/pull/1332) Include
|
|||
|
incdir.c in the export target
|
|||
|
|
|||
|
* [PR-1995](https://github.com/apache/nuttx/pull/1995) Fix issue
|
|||
|
where wrong extension was generated for mkconfig in WSL builds
|
|||
|
|
|||
|
* [PR-1949](https://github.com/apache/nuttx/pull/1949) Fix issue in
|
|||
|
make export where nuttx-names.dat was not being generated
|
|||
|
|
|||
|
* [PR-1682](https://github.com/apache/nuttx/pull/1682): Fix issue
|
|||
|
where windows style paths might not be handled correctly breaking Cygwin builds
|
|||
|
|
|||
|
## Architectural Support
|
|||
|
|
|||
|
### New Architecture Support
|
|||
|
|
|||
|
* [PR-1847](https://github.com/apache/nuttx/pull/1847) ARM: Initial
|
|||
|
support for ARMV6M to support CortexM0+
|
|||
|
|
|||
|
* [PR-1397](https://github.com/apache/nuttx/pull/1379): EOSS3:
|
|||
|
Initial support for the QuickLogic EOS S3 SoC
|
|||
|
|
|||
|
### Architectures With Significant Improvements
|
|||
|
|
|||
|
#### cxd56xx
|
|||
|
|
|||
|
* [PR-1753](https://github.com/apache/nuttx/pull/1753) cxd56xx: Use
|
|||
|
spinlock in gpioint to improve SMP performance
|
|||
|
|
|||
|
* [PR-1650](https://github.com/apache/nuttx/pull/1650) cxd56xx: Use
|
|||
|
spinlock in rtc to improve SMP performance
|
|||
|
|
|||
|
* [PR-1621](https://github.com/apache/nuttx/pull/1621) cxd56xx: Use
|
|||
|
spinlock in serial to improve SMP performance
|
|||
|
|
|||
|
* [PR-1569](https://github.com/apache/nuttx/pull/1569) cxd56xx: Add
|
|||
|
SMP support to cxd56\_farapi.c
|
|||
|
|
|||
|
* [PR-1689](https://github.com/apache/nuttx/pull/1689) cxd56xx: Use
|
|||
|
spinlock in uart to improve SMP performance
|
|||
|
|
|||
|
#### ESP32
|
|||
|
|
|||
|
* [PR-1422](https://github.com/apache/nuttx/pull/1422) ESP32: Add SPI
|
|||
|
driver (Master & Slave)
|
|||
|
|
|||
|
* [PR-1435](https://github.com/apache/nuttx/pull/1435) ESP32: Add I2C
|
|||
|
driver
|
|||
|
|
|||
|
* [PR-1491](https://github.com/apache/nuttx/pull/1491) ESP32: Add SPI
|
|||
|
Flash driver
|
|||
|
|
|||
|
* [PR-1525](https://github.com/apache/nuttx/pull/1525) ESP32: Add
|
|||
|
Ethernet driver
|
|||
|
|
|||
|
* [PR-1610](https://github.com/apache/nuttx/pull/1610) ESP32: Improve
|
|||
|
SPI transmision (DMA, IOMUX, software CS)
|
|||
|
|
|||
|
* [PR-1630](https://github.com/apache/nuttx/pull/1630) ESP32: Add
|
|||
|
support for HW RNG
|
|||
|
|
|||
|
* [PR-1830](https://github.com/apache/nuttx/pull/1830) ESP32: Add
|
|||
|
Power Management of Force-Sleep
|
|||
|
|
|||
|
* [PR-1754](https://github.com/apache/nuttx/pull/1754) ESP32: Add
|
|||
|
support for external SPIFLASH
|
|||
|
|
|||
|
* [PR-1613](https://github.com/apache/nuttx/pull/1613) ESP32: Add
|
|||
|
function for switching CPU from 80MHz to 240MHz
|
|||
|
|
|||
|
PR-1712 ESP32: Add support for external MMCSD card over SPI
|
|||
|
|
|||
|
#### IMXRT
|
|||
|
|
|||
|
* [PR-1868](https://github.com/apache/nuttx/pull/1868) IMXRT: Add ADC
|
|||
|
driver
|
|||
|
|
|||
|
#### Kinetis
|
|||
|
|
|||
|
* [PR-1624](https://github.com/apache/nuttx/pull/1624) Kinetis:
|
|||
|
USBHOST improvements to avoid race condition durring freeing for queue head
|
|||
|
structure by using Async Advance Doorbell.
|
|||
|
|
|||
|
PR-1516 Kinetis K28: Add support for USB High Speed Host
|
|||
|
|
|||
|
PR-1531 Kinetis K28: Add USB state change notifiers in notifier work queue
|
|||
|
|
|||
|
PR-1456 Kinetis K28: Reworked USB driver for setup out data phase
|
|||
|
|
|||
|
#### NRF52
|
|||
|
|
|||
|
* [PR-1418](https://github.com/apache/nuttx/pull/1418) NRF52: Add
|
|||
|
Timer and RTC drivers
|
|||
|
|
|||
|
* [PR-1432](https://github.com/apache/nuttx/pull/1422) NRF52: Add
|
|||
|
timer lowerhalf
|
|||
|
|
|||
|
* [PR-1635](https://github.com/apache/nuttx/pull/1635) NRF52: Add
|
|||
|
support for RTC event handling
|
|||
|
|
|||
|
* [PR-1636](https://github.com/apache/nuttx/pull/1636) NRF52: Add
|
|||
|
support for PPI peripheral
|
|||
|
|
|||
|
* [PR-1681](https://github.com/apache/nuttx/pull/1681) NRF52: Add
|
|||
|
support for GPIOTE task mode
|
|||
|
|
|||
|
* [PR-1726](https://github.com/apache/nuttx/pull/1726) NRF52: Extend
|
|||
|
systimer support
|
|||
|
|
|||
|
* [PR-1773](https://github.com/apache/nuttx/pull/1773) NRF52: Add ADC
|
|||
|
and PWM support
|
|||
|
|
|||
|
* [PR-1915](https://github.com/apache/nuttx/pull/1915) NRF52: Add
|
|||
|
serial termios support (no flow control)
|
|||
|
|
|||
|
* [PR-1907](https://github.com/apache/nuttx/pull/1907) NRF52: Add
|
|||
|
basic error handing for i2c in polling mode to support i2ctool. Still not
|
|||
|
handled in DMA mode.
|
|||
|
|
|||
|
* [PR-1839](https://github.com/apache/nuttx/pull/1839) NRF52: Add
|
|||
|
missing SPI callback register hooks to support drivers like mmcsd
|
|||
|
|
|||
|
* [PR-1646](https://github.com/apache/nuttx/pull/1646) NRF52: Better
|
|||
|
differentiation between NRF52840 and NRF52832
|
|||
|
|
|||
|
PR-1685 NRF52: Add ARM system reset support. Add UID support.
|
|||
|
|
|||
|
PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources.
|
|||
|
|
|||
|
#### RISCV
|
|||
|
|
|||
|
* [PR-1858](https://github.com/apache/nuttx/pull/1858) RISCV: Add
|
|||
|
missing CSR macros listed in RISC-V spec V1.10.
|
|||
|
|
|||
|
PR-1314 rv32im: Add schedulesigaction.c, SYS\_save\_context handling, skip ECALL
|
|||
|
instruction when calling up\_swint()
|
|||
|
|
|||
|
#### RX65N
|
|||
|
|
|||
|
* [PR-1622](https://github.com/apache/nuttx/pull/1622) RX65N: Add
|
|||
|
I2C(RIIC) support
|
|||
|
|
|||
|
* [PR-1894](https://github.com/apache/nuttx/pull/1894) RX65N: Add USB
|
|||
|
device support
|
|||
|
|
|||
|
* [PR-1899](https://github.com/apache/nuttx/pull/1899) RX65N: Add DTC
|
|||
|
driver
|
|||
|
|
|||
|
PR-1910 RX65N: Add SPI driver support
|
|||
|
|
|||
|
#### SAMD5E5
|
|||
|
|
|||
|
* [PR-1515](https://github.com/apache/nuttx/pull/1515) SAMD5E5: Add
|
|||
|
Watchdog timer support
|
|||
|
|
|||
|
* [PR-1574](https://github.com/apache/nuttx/pull/1574) SAMD5E5: Add
|
|||
|
USB host support
|
|||
|
|
|||
|
* [PR-1594](https://github.com/apache/nuttx/pull/1594) SAMD5E5:
|
|||
|
Freerun timer, oneshot timer and tickless support
|
|||
|
|
|||
|
* [PR-1816](https://github.com/apache/nuttx/pull/1816) SAMD5E5: Add
|
|||
|
MTD progmem support and NVM USER PAGE IOTCLs
|
|||
|
|
|||
|
#### SAMA5D2
|
|||
|
|
|||
|
PR-1412 SAMA5D27: Implement system reset to support nsh reboot command
|
|||
|
|
|||
|
PR-1393 SAMA5D2x: Implement SDMMC peripheral support
|
|||
|
|
|||
|
#### S32K
|
|||
|
|
|||
|
PR-1339 S32K: Extend FlexTimer support and add support for PWM
|
|||
|
|
|||
|
PR-1337 S32K: Allow FlexCAN to use to NETDEV\_LATEINIT to handle the case where
|
|||
|
both FlexCAN and ENET are used
|
|||
|
|
|||
|
#### SIM
|
|||
|
* [PR-1914](https://github.com/apache/nuttx/pull/1914) SIM: SIGUSR1
|
|||
|
handling now uses NuttX interrupt logic
|
|||
|
|
|||
|
* [PR-1859](https://github.com/apache/nuttx/pull/1859) ESIM: Add
|
|||
|
host timer and improve the oneshot timer logic
|
|||
|
|
|||
|
* [PR-1767](https://github.com/apache/nuttx/pull/1767) SIM: Allow
|
|||
|
access to tty interfaces for better termios support
|
|||
|
|
|||
|
* [PR-1655](https://github.com/apache/nuttx/pull/1655) SIM: Add
|
|||
|
support for Linux HCI Socket as a NuttX BLE adapter. Full NuttX BLE stack can
|
|||
|
be run against any Linux Bluetooth adapter in sim.
|
|||
|
|
|||
|
* [PR-1558](https://github.com/apache/nuttx/pull/1558) SIM: Add
|
|||
|
support for Stack Smashing Protector.
|
|||
|
|
|||
|
* [PR-1392](https://github.com/apache/nuttx/pull/1392) SIM: Make
|
|||
|
uClibc++ and libcxx work on sim platform
|
|||
|
|
|||
|
* [PR-1460](https://github.com/apache/nuttx/pull/1460) SIM: Call
|
|||
|
sched\_note\_cpu\_\* when scheduler instrumentation is enabled
|
|||
|
|
|||
|
#### STM32
|
|||
|
|
|||
|
* [PR-1865](https://github.com/apache/nuttx/pull/1865) STM32F4: Add
|
|||
|
support for STM32F412CE fixing I2C2/I2C3 and USART1 alt
|
|||
|
|
|||
|
* [PR-1506](https://github.com/apache/nuttx/pull/1506) STM32: Add
|
|||
|
support for single wire UART push/pull mode
|
|||
|
|
|||
|
* [PR-1572](https://github.com/apache/nuttx/pull/1572) STM32F2/F4:
|
|||
|
Add options for I-Cache and D-Cache to be enabled/disable. Previously they were
|
|||
|
always enabled.
|
|||
|
|
|||
|
* [PR-1287](https://github.com/apache/nuttx/pull/1286) STM32F7:
|
|||
|
Refactor the FMC driver to support STM32F7 family and add support to the
|
|||
|
STM32F46G-DISCO board
|
|||
|
|
|||
|
* [PR-1275](https://github.com/apache/nuttx/pull/1275) STM32: Allow
|
|||
|
SysTick to be a tickless clock source option
|
|||
|
|
|||
|
* [PR-1268](https://github.com/apache/nuttx/pull/1268) STM32: Add
|
|||
|
support for STM32F412 with UART / SPI / CAN / I2C / DMA
|
|||
|
|
|||
|
* [PR-1250](https://github.com/apache/nuttx/pull/1250) STM32L4: Add
|
|||
|
support for booting into DFU mode
|
|||
|
|
|||
|
### Bug Fixes
|
|||
|
|
|||
|
#### ARM
|
|||
|
|
|||
|
* [PR-1562](https://github.com/apache/nuttx/pull/1562) ARM: Save
|
|||
|
tcb-adj\_stack\_size should be saved without tls overhead
|
|||
|
|
|||
|
* [PR-1900](https://github.com/apache/nuttx/pull/1900) ARM: Fix false
|
|||
|
reporting for stack usage for unaligned stacks
|
|||
|
|
|||
|
#### AVR
|
|||
|
|
|||
|
* [PR-1410](https://github.com/apache/nuttx/pull/1410) avr: Implement
|
|||
|
missing double\_t type, CONFIG\_STACK\_ALIGNMENT, linker emulation flags
|
|||
|
|
|||
|
#### CXD56xx
|
|||
|
|
|||
|
* [PR-1930](https://github.com/apache/nuttx/pull/1930) cxd56xx: Fix
|
|||
|
handle\_irqreq() in cxd56\_cpupause.c
|
|||
|
|
|||
|
* [PR-1789](https://github.com/apache/nuttx/pull/1789) cxd56xx: Fix
|
|||
|
deadlock issue in up\_txinit() in SMP mode.
|
|||
|
|
|||
|
* [PR-1620](https://github.com/apache/nuttx/pull/1620) cxd56xx: Fix
|
|||
|
IRQ control in cxd56\_dmac.c
|
|||
|
|
|||
|
* [PR-1253](https://github.com/apache/nuttx/pull/1253) cxd56xx: Fix
|
|||
|
audio cxd56\_stop where a deadlock could be hit if the worker thread took too
|
|||
|
long to turn on AMP
|
|||
|
|
|||
|
* [PR-1950](https://github.com/apache/nuttx/pull/1950) cxd56xx: Fix
|
|||
|
deadlock and tcb corruption in SMP mode
|
|||
|
|
|||
|
#### ESP32
|
|||
|
|
|||
|
* [PR-1908](https://github.com/apache/nuttx/pull/1908) ESP32: Fix
|
|||
|
task signal process preemption
|
|||
|
|
|||
|
* [PR-1941](https://github.com/apache/nuttx/pull/1941) ESP32: Fix
|
|||
|
interrupt clearing of edge interrupt due to issuing in masking interrupt state
|
|||
|
|
|||
|
#### IMXRT
|
|||
|
|
|||
|
* [PR-1527](https://github.com/apache/nuttx/pull/1527) IMXRT: Fix
|
|||
|
kconfig so that IMXRT\_ENET\_NRXBUFFERS can be set
|
|||
|
|
|||
|
* [PR-1455](https://github.com/apache/nuttx/pull/1455) IMXRT: Fix
|
|||
|
auto-negotiation for KSZ8081 PHY
|
|||
|
|
|||
|
#### Kinetis
|
|||
|
|
|||
|
* [PR-1273](https://github.com/apache/nuttx/pull/1273) Kinetis: Fix
|
|||
|
issue in ethernet driver where buffers were blindly initialized and could cause
|
|||
|
the TX of the MAC to be in a bad state. Also resolves an issue with interrupts
|
|||
|
being throttled in the NVIC.
|
|||
|
|
|||
|
#### NRF52
|
|||
|
|
|||
|
* [PR-1928](https://github.com/apache/nuttx/pull/1928) NRF52: Fix PPI
|
|||
|
group disable and add group clear
|
|||
|
|
|||
|
* [PR-1885](https://github.com/apache/nuttx/pull/1885) NRF52: Fix SPI
|
|||
|
driver structures when SPI\_EXCHANGE is not set
|
|||
|
|
|||
|
* [PR-1799](https://github.com/apache/nuttx/pull/1799) NRF52: Fix
|
|||
|
SPI\_MASTER entry in kconfig
|
|||
|
|
|||
|
* [PR-1787](https://github.com/apache/nuttx/pull/1787) NRF52: Fix
|
|||
|
base address for SPIM{1,2,3}
|
|||
|
|
|||
|
* [PR-1777](https://github.com/apache/nuttx/pull/1777) NRF52: Handle
|
|||
|
case where rx or tx buffer could be 0 but data would still be transferred. Also
|
|||
|
error if more than max data is requested.
|
|||
|
|
|||
|
* [PR-1770](https://github.com/apache/nuttx/pull/1770) NRF52: Fix bug
|
|||
|
where SPI cmddata was not properly mapped for SPIM 0,2,3
|
|||
|
|
|||
|
#### RISC-V
|
|||
|
|
|||
|
* [PR-1909](https://github.com/apache/nuttx/pull/1909) RISC-V: MIE
|
|||
|
instead of MPIE register was being used in up\_schedule\_sigaction for storing
|
|||
|
interrupt state
|
|||
|
|
|||
|
#### SIM
|
|||
|
|
|||
|
* [PR-1903](https://github.com/apache/nuttx/pull/1903) SIM: Fix
|
|||
|
complication issue for WPCAP in Cygwin build
|
|||
|
|
|||
|
* [PR-1888](https://github.com/apache/nuttx/pull/1888) SIM: Fix
|
|||
|
EOVERFLOW returned when CONFIG\_SIM\_M32 is set
|
|||
|
|
|||
|
* [PR-1709](https://github.com/apache/nuttx/pull/1709) SIM: Fix
|
|||
|
up\_cpu\_start initialization for macOS with SMP enabled
|
|||
|
|
|||
|
#### STM32
|
|||
|
|
|||
|
* [PR-1898](https://github.com/apache/nuttx/pull/1898) STM32F7: Fixes
|
|||
|
data loss bug in UART5 with TX DMA
|
|||
|
|
|||
|
* [PR-1841](https://github.com/apache/nuttx/pull/1841) STM32: Remove
|
|||
|
broken overdriver support
|
|||
|
|
|||
|
* [PR-1719](https://github.com/apache/nuttx/pull/1719) STM32:
|
|||
|
Lowputc: Ensure USART is disabled before attempting to configuring it
|
|||
|
|
|||
|
* [PR-1714](https://github.com/apache/nuttx/pull/1714) STM32H7: Fix
|
|||
|
I2C driver interrupt storm
|
|||
|
|
|||
|
* [PR-1556](https://github.com/apache/nuttx/pull/1556) STM32: Fix IO
|
|||
|
compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0
|
|||
|
|
|||
|
* [PR-1529](https://github.com/apache/nuttx/pull/1529) STM32: Fix
|
|||
|
initialization bug in ADC that prevented adc\_reset() from working correctly
|
|||
|
|
|||
|
* [PR-1561](https://github.com/apache/nuttx/pull/1561) STM32: Make
|
|||
|
sure that core over-drive is enabled for all chips that support it and operating
|
|||
|
at 180MHz. Some were enabled at 180MHz but may have not been stable without
|
|||
|
over-drive not configured.
|
|||
|
|
|||
|
* [PR-1553](https://github.com/apache/nuttx/pull/1553) STM32F7: Fix
|
|||
|
possible interrupt blocking in serial TXDMA ISR
|
|||
|
|
|||
|
* [PR-1544](https://github.com/apache/nuttx/pull/1544) STM32: Make
|
|||
|
sure IO compensation cell is configured prior to call to
|
|||
|
rcc\_enableperipherals() causing syscfg is accessed before it is enabled
|
|||
|
|
|||
|
* [PR-1380](https://github.com/apache/nuttx/pull/1380) STM32F7: Fix
|
|||
|
tickless driver where th compare register could be set to a value that has
|
|||
|
just passed preventing expiration
|
|||
|
|
|||
|
* [PR-1252](https://github.com/apache/nuttx/pull/1252) STM32L4: Fix
|
|||
|
48MHz MSI clock selection that could cause boot to hang
|
|||
|
|
|||
|
* [PR-1310](https://github.com/apache/nuttx/pull/1310) STM32L4:
|
|||
|
Configure flash wait states earlier to prevent corruption of execution state
|
|||
|
|
|||
|
* [PR-1248](https://github.com/apache/nuttx/pull/1248) STM32L4: Fix
|
|||
|
oneshot timer so that a minimum period is set otherwise it will never be
|
|||
|
triggered.
|
|||
|
|
|||
|
* [PR-1247](https://github.com/apache/nuttx/pull/1247) STM32L47x/8x:
|
|||
|
Set additional registers required to place a pin in analog mode
|
|||
|
|
|||
|
* [PR-1246](https://github.com/apache/nuttx/pull/1246) STM32L4: Fix
|
|||
|
issue where clock divider for serial baud rate was not set correctly
|
|||
|
|
|||
|
#### Miscellaneous
|
|||
|
|
|||
|
* [PR-1912](https://github.com/apache/nuttx/pull/1912) Fix
|
|||
|
up\_interrupt\_contex() in case of SMP - Make sure the operation is atomic in
|
|||
|
case of SMP
|
|||
|
|
|||
|
## Driver Support
|
|||
|
|
|||
|
### Bug Fixes
|
|||
|
|
|||
|
* [PR-1896](https://github.com/apache/nuttx/pull/1896) spi\_xx25xx
|
|||
|
EEPROM: return the number of bytes written instead of 0 or error
|
|||
|
|
|||
|
* [PR-1891](https://github.com/apache/nuttx/pull/1891) serial: Don't
|
|||
|
mangle PID when ISIG is changed
|
|||
|
|
|||
|
* [PR-1856](https://github.com/apache/nuttx/pull/1856) pipe: In case
|
|||
|
of empty pipe with no writers, return EOF instead of EAGAIN
|
|||
|
|
|||
|
* [PR-1836](https://github.com/apache/nuttx/pull/1836) stmpe811: Fix
|
|||
|
incorrect GPIO interrupt register logic
|
|||
|
|
|||
|
* [PR-1741](https://github.com/apache/nuttx/pull/1741) mmcsd\_sdio:
|
|||
|
Properly arm the write completion detection
|
|||
|
|
|||
|
* [PR-1370](https://github.com/apache/nuttx/pull/1370) can: Fix
|
|||
|
incorrect usage of nxsem\_getvalue which caused fifo->rx\_sem to increase with
|
|||
|
teach received msg
|
|||
|
|
|||
|
* [PR-1452](https://github.com/apache/nuttx/pull/1452) lcd: Fix
|
|||
|
memory leak when board\_graphics\_setup fail
|
|||
|
|
|||
|
### New Driver Support
|
|||
|
|
|||
|
* [PR-1797](https://github.com/apache/nuttx/pull/1797) leds: WS2812
|
|||
|
LED controller (aka Adafruit NeoPixel)
|
|||
|
|
|||
|
* [PR-1851](https://github.com/apache/nuttx/pull/1851) kbd: Add
|
|||
|
support for SolderParty BlackBerry Q10 Keyboard
|
|||
|
|
|||
|
* [PR-1618](https://github.com/apache/nuttx/pull/1618) BQ27426 fuel
|
|||
|
gauge
|
|||
|
|
|||
|
* [PR-1276](https://github.com/apache/nuttx/pull/1276) Add support
|
|||
|
for the ST7735 TFT Controller
|
|||
|
|
|||
|
* [PR-1233](https://github.com/apache/nuttx/pull/1233) usbhost: Add
|
|||
|
support for CDC-MBIM USB host driver
|
|||
|
|
|||
|
### Drivers With Significant Improvements
|
|||
|
|
|||
|
* [PR-1816](https://github.com/apache/nuttx/pull/1816) stmpe811: Add
|
|||
|
SPI support for touch screen controller
|
|||
|
|
|||
|
* [PR-1800](https://github.com/apache/nuttx/pull/1800) vfs: Add
|
|||
|
`FIOCLEX/FIONCLEX` ioctl support
|
|||
|
|
|||
|
* [PR-1798](https://github.com/apache/nuttx/pull/1798) mmcsd: Allow
|
|||
|
setting `IDMODE_CLOCK` via kconfig
|
|||
|
|
|||
|
* [PR-1587](https://github.com/apache/nuttx/pull/1587) BCH: Delay the
|
|||
|
sector flush to avoid multiple erase/write operations in sequence write
|
|||
|
|
|||
|
* [PR-1577](https://github.com/apache/nuttx/pull/1577) rwbuffer:
|
|||
|
Avoid allocating memory for the temporary erase buffer by the FTL driver
|
|||
|
|
|||
|
* [PR-1466](https://github.com/apache/nuttx/pull/1466) Altair Modem:
|
|||
|
Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec,
|
|||
|
Fix priority of SPI transfer task is too low, Modify timeout value for RX ready
|
|||
|
|
|||
|
* [PR-1471](https://github.com/apache/nuttx/pull/1471) ramlog: Add
|
|||
|
option to overwrite buffer
|
|||
|
|
|||
|
* [PR-1547](https://github.com/apache/nuttx/pull/1547) usbhub: Make
|
|||
|
sure to enumerate hubs that report protocol = 1 (High Speed Hub)
|
|||
|
|
|||
|
* [PR-1374](https://github.com/apache/nuttx/pull/1374) gpio: Extend
|
|||
|
gpio\_pintype\_e for pulldown/up and opendrain
|
|||
|
|
|||
|
* [PR-1249](https://github.com/apache/nuttx/pull/1249) bmp280: Add
|
|||
|
support for reading temperature
|
|||
|
|
|||
|
* [PR-1299](https://github.com/apache/nuttx/pull/1299) mpu60x0: Add
|
|||
|
I2C support for the MPU60x0 sensor driver
|
|||
|
|
|||
|
* [PR-1325](https://github.com/apache/nuttx/pull/1325) can: expose
|
|||
|
NART/ABOM and RTR settings via ioctls
|
|||
|
|
|||
|
* [PR-1520](https://github.com/apache/nuttx/pull/1520) note: Move
|
|||
|
note driver from syslog to drivers/note
|
|||
|
|
|||
|
* [PR-1288](https://github.com/apache/nuttx/pull/1288) / PR-1449
|
|||
|
note: Add sched\_note\_syscall\_enter/leave hooks for syscall instrumentation
|
|||
|
|
|||
|
* [PR-1259](https://github.com/apache/nuttx/pull/1259) note: Add
|
|||
|
buffering support for syscall instrumentation
|
|||
|
|
|||
|
* [PR-1256](https://github.com/apache/nuttx/pull/1256) note: Add
|
|||
|
hooks for note driver for interrupt instrumentation
|
|||
|
|
|||
|
Board Support -------------
|
|||
|
|
|||
|
### **Significant Improvements**
|
|||
|
|
|||
|
* [PR-1618](https://github.com/apache/nuttx/pull/1618) metro-m4: Add
|
|||
|
support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gauge
|
|||
|
initialization
|
|||
|
|
|||
|
* [PR-1727](https://github.com/apache/nuttx/pull/1729) b-g474e-dpow1:
|
|||
|
Add support for FLASH bootloader
|
|||
|
|
|||
|
* [PR-1683](https://github.com/apache/nuttx/pull/1683) cxd56xx: Add
|
|||
|
wifi\_smp configuration
|
|||
|
|
|||
|
* [PR-1668](https://github.com/apache/nuttx/pull/1668) sim: Add new
|
|||
|
configuration for SMP
|
|||
|
|
|||
|
* [PR-1644](https://github.com/apache/nuttx/pull/1644)
|
|||
|
stm32f746g-disco: Move serial console from USART6 to USART1 which is attached
|
|||
|
to the USB virtual COM port.
|
|||
|
|
|||
|
* [PR-1464](https://github.com/apache/nuttx/pull/1464) cxd56xx: Add
|
|||
|
new GNSS functions, support for lower PWM frequency,
|
|||
|
CONFIG\_CPUFREQ\_RELEASE\_LOCK, high speed ADC, HPADC input gain configuration,
|
|||
|
eMMC device, frame buffer support
|
|||
|
|
|||
|
* [PR-1405](https://github.com/apache/nuttx/pull/1405)
|
|||
|
stm32f4discovery: Add ELF support to wifi configuration
|
|||
|
|
|||
|
* [PR-1402](https://github.com/apache/nuttx/pull/1402) imxrt1060: Add
|
|||
|
buttons support to iMXRT1060
|
|||
|
|
|||
|
* [PR-1590](https://github.com/apache/nuttx/pull/1590) sim: Add
|
|||
|
duktape configuration
|
|||
|
|
|||
|
* [PR-1532](https://github.com/apache/nuttx/pull/1532) sim: Add
|
|||
|
cromfs configuration
|
|||
|
|
|||
|
* [PR-1335](https://github.com/apache/nuttx/pull/1335) cxd56xx:
|
|||
|
Enable basic snapshop camera example
|
|||
|
|
|||
|
### New Board Support
|
|||
|
|
|||
|
* [PR-1664](https://github.com/apache/nuttx/pull/1664) NRF52: Add
|
|||
|
support for NRF52832 MakerDiary MDK board
|
|||
|
|
|||
|
* [PR-1633](https://github.com/apache/nuttx/pull/1633) NRF52: Add
|
|||
|
support for Sparkfun NRF52832 Breakout Board
|
|||
|
|
|||
|
* [PR-1728](https://github.com/apache/nuttx/pull/1728) SAMA5D27: Add
|
|||
|
support for Giant Board
|
|||
|
|
|||
|
* [PR-1397](https://github.com/apache/nuttx/pull/1397) EOSS3: Initial
|
|||
|
support for the QuickLogic EOS S3 SoC QuickFeather board
|
|||
|
|
|||
|
* [PR-1268](https://github.com/apache/nuttx/pull/1268) STM32: Add
|
|||
|
support for nucleo-f412zg board
|
|||
|
|
|||
|
File System -----------
|
|||
|
|
|||
|
### **Bug Fixes**
|
|||
|
|
|||
|
* [PR-1796](https://github.com/apache/nuttx/pull/1796) vfs: Fix
|
|||
|
memory leak calling `pseudorename`
|
|||
|
|
|||
|
* [PR-1794](https://github.com/apache/nuttx/pull/1794) vfs: Fix issue
|
|||
|
where opendir would remove the trailing whitespace or /
|
|||
|
|
|||
|
* [PR-1793](https://github.com/apache/nuttx/pull/1793) vfs: Make sure
|
|||
|
that rename of mount point uses pseudorename. Previously mv on a mountpoint
|
|||
|
would return err 88.
|
|||
|
|
|||
|
* [PR-1737](https://github.com/apache/nuttx/pull/1737) vfs: reuse
|
|||
|
file\_dup2 direction in file\_dup to prevent segfault issue
|
|||
|
|
|||
|
* [PR-1490](https://github.com/apache/nuttx/pull/1490) Ensure that
|
|||
|
filesystems can all support paths that end with '/'
|
|||
|
|
|||
|
* [PR-1546](https://github.com/apache/nuttx/pull/1546) ROMFS: Fix
|
|||
|
issue with how hard links are followed for ROMFS
|
|||
|
|
|||
|
* [PR-1442](https://github.com/apache/nuttx/pull/1442) SmartFS: Fix
|
|||
|
file size corruption when opening with overwriting mode
|
|||
|
|
|||
|
* [PR-1431](https://github.com/apache/nuttx/pull/1431) nxffs: Fix
|
|||
|
scan good block slowly and scan an invalid block
|
|||
|
|
|||
|
PR-1295 fs: for setfd correct the return value
|
|||
|
|
|||
|
### **Significant Improvements**
|
|||
|
|
|||
|
* [PR-1554](https://github.com/apache/nuttx/pull/1554) CROMFS: Add
|
|||
|
support for hard links
|
|||
|
|
|||
|
* [PR-1499](https://github.com/apache/nuttx/pull/1499) FAT: Add
|
|||
|
support for UTF8 long filename
|
|||
|
|
|||
|
* [PR-1479](https://github.com/apache/nuttx/pull/1479) vfs: Add file
|
|||
|
descriptor based events support eventfd()
|
|||
|
|
|||
|
* [PR-1582](https://github.com/apache/nuttx/pull/1482) vfs: Add
|
|||
|
epoll\_create1() support
|
|||
|
|
|||
|
* [PR-1579](https://github.com/apache/nuttx/pull/1579) vfs: Do not
|
|||
|
check CONFIG\_NFILE\_STREAMS for mkdir/rename/rmdir/fs\_unlink
|
|||
|
|
|||
|
* [PR-1355](https://github.com/apache/nuttx/pull/1355) vfs: Implement
|
|||
|
statvfs and fstatvfs
|
|||
|
|
|||
|
* [PR-1323](https://github.com/apache/nuttx/pull/1323) vfs: Add
|
|||
|
chmod/fchmod/utimes function prototypes
|
|||
|
|
|||
|
Networking ----------
|
|||
|
|
|||
|
### **Bug Fixes**
|
|||
|
|
|||
|
* [PR-1267](https://github.com/apache/nuttx/pull/1267) SocketCAN:
|
|||
|
When timestamped frame was received while in CAN2.0B mode the frame got dropped.
|
|||
|
|
|||
|
* [PR-1446](https://github.com/apache/nuttx/pull/1446) usrsock: Fix
|
|||
|
recv() cannot peek data
|
|||
|
|
|||
|
### **Significant Improvements**
|
|||
|
|
|||
|
* [PR-1666](https://github.com/apache/nuttx/pull/1666) Bluetooth:
|
|||
|
Bluetooth sockets now use Linux sockaddr types of sockaddr\_l2 sockaddr\_hci
|
|||
|
sockaddr\_rc. There are slight breaking changes here that may require
|
|||
|
applications to be updated, but this brings the interface inline with Linux.
|
|||
|
|
|||
|
* [PR-1581](https://github.com/apache/nuttx/pull/1581) Socket: Add
|
|||
|
SOCK\_CLOEXEC/SOCK\_NONBLOCK support
|
|||
|
|
|||
|
* [PR-1443](https://github.com/apache/nuttx/pull/1443) usrsock: Add
|
|||
|
flag argument to sendto/recvfrom interface in usrsock
|
|||
|
|
|||
|
* [PR-1238](https://github.com/apache/nuttx/pull/1238) SocketCAN: Add
|
|||
|
support for SocketCAN interface API
|
|||
|
|
|||
|
Applications ------------
|
|||
|
|
|||
|
### **Significant Improvements**
|
|||
|
|
|||
|
* [PR-409](https://github.com/apache/nuttx-apps/pull/409) wamr:
|
|||
|
Update version to 09-29-2020 that supports NuttX directly and remove patches
|
|||
|
|
|||
|
* [PR-407](https://github.com/apache/nuttx-apps/pull/407) ipcfg: Add
|
|||
|
IPv4 configuration file access helper
|
|||
|
|
|||
|
* [PR-406](https://github.com/apache/nuttx-apps/pull/406) wamr: Add
|
|||
|
configs for heap pool and custom name sections
|
|||
|
|
|||
|
* [PR-404](https://github.com/apache/nuttx-apps/pull/404) timer: Add
|
|||
|
supplying timer dev path to example
|
|||
|
|
|||
|
* [PR-403](https://github.com/apache/nuttx-apps/pull/402)
|
|||
|
nxplayer/nxrecorder: Add channel map support
|
|||
|
|
|||
|
* [PR-396](https://github.com/apache/nuttx-apps/pull/396) wamr: Add
|
|||
|
missing options to kconfig
|
|||
|
|
|||
|
* [PR-395](https://github.com/apache/nuttx-apps/pull/395) dhcpc: Try
|
|||
|
to get hostname via syscall first
|
|||
|
|
|||
|
* [PR-391](https://github.com/apache/nuttx-apps/pull/391) wapi: Add
|
|||
|
option to assocated directly via bssid
|
|||
|
|
|||
|
* [PR-390](https://github.com/apache/nuttx-apps/pull/390) wapi: App
|
|||
|
option to scan partial channel
|
|||
|
|
|||
|
* [PR-387](https://github.com/apache/nuttx-apps/pull/387) wamr: Add
|
|||
|
support for WAMR web assembly interpreter
|
|||
|
|
|||
|
* [PR-337](https://github.com/apache/nuttx-apps/pull/337) docs:
|
|||
|
Convert all README files to markdown
|
|||
|
|
|||
|
* [PR-333](https://github.com/apache/nuttx-apps/pull/333) webclient:
|
|||
|
Add hooks for TLS, extra request headers, PUT method, report status code,
|
|||
|
improved error handling
|
|||
|
|
|||
|
* [PR-329](https://github.com/apache/nuttx-apps/pull/329) gpio: Add
|
|||
|
support for new GPIO pin types
|
|||
|
|
|||
|
* [PR-317](https://github.com/apache/nuttx-apps/pull/317) nshlib:
|
|||
|
Call symlink if user pass -s for ln command
|
|||
|
|
|||
|
* [PR-315](https://github.com/apache/nuttx-apps/pull/315) c++:
|
|||
|
Support uClibc++ and libcxx in examples/testing
|
|||
|
|
|||
|
* [PR-314](https://github.com/apache/nuttx-apps/pull/314) camera: Add
|
|||
|
a simple camera snapshot example
|
|||
|
|
|||
|
* [PR-378](https://github.com/apache/nuttx-apps/pull/378) wasm3:
|
|||
|
Initial WebAssembly runtime support
|
|||
|
|
|||
|
* [PR-374](https://github.com/apache/nuttx-apps/pull/374) bluetooth:
|
|||
|
Use the new l2cap socket address type
|
|||
|
|
|||
|
* [PR-373](https://github.com/apache/nuttx-apps/pull/373) duktape:
|
|||
|
Add duktape to global search path so it can be used as a library
|
|||
|
|
|||
|
* [PR-372](https://github.com/apache/nuttx-apps/pull/372) quickjs:
|
|||
|
Add support for QuickJS interpreter
|
|||
|
|
|||
|
* [PR-367](https://github.com/apache/nuttx-apps/pull/367) nsh: Accept
|
|||
|
the command line arguments like sh
|
|||
|
|
|||
|
* [PR-365](https://github.com/apache/nuttx-apps/pull/365) duktape:
|
|||
|
Add console, print, alert support
|
|||
|
|
|||
|
* [PR-364](https://github.com/apache/nuttx-apps/pull/364) cu:
|
|||
|
Refactor cu and add support for "-c" to disable \\n to \\r\\n conversion
|
|||
|
|
|||
|
* [PR-362](https://github.com/apache/nuttx-apps/pull/362) libuv: Add
|
|||
|
support for libuv library
|
|||
|
|
|||
|
* [PR-352](https://github.com/apache/nuttx-apps/pull/352) duktape:
|
|||
|
Add initial support for duktape
|
|||
|
|
|||
|
* [PR-346](https://github.com/apache/nuttx-apps/pull/364) wget:
|
|||
|
Enable URL from command line, can be used with ifup, hooks for HTTPS
|
|||
|
|
|||
|
* [PR-302](https://github.com/apache/nuttx-apps/pull/302) lvgl: Use
|
|||
|
the latest version 7.0.2
|
|||
|
|
|||
|
* [PR-300](https://github.com/apache/nuttx-apps/pull/300) note: Add
|
|||
|
support for decoding interrupt and syscall instrumentation
|
|||
|
|
|||
|
* [PR-299](https://github.com/apache/nuttx-apps/pull/299) nxrecorder:
|
|||
|
Add O\_TRUNC when creating a file
|
|||
|
|
|||
|
* [PR-296](https://github.com/apache/nuttx-apps/pull/296) bmp280: Add
|
|||
|
support for BMP180 to BMP280 application
|
|||
|
|
|||
|
* [PR-294](https://github.com/apache/nuttx-apps/pull/294) can: Add
|
|||
|
cansend and candump utilities for interacting with SocketCAN
|
|||
|
|
|||
|
### Bug Fixes
|
|||
|
|
|||
|
* [PR-411](https://github.com/apache/nuttx-apps/pull/411) wgetjson:
|
|||
|
Fix build breakage
|
|||
|
|
|||
|
* [PR-405](https://github.com/apache/nuttx-apps/pull/405) nxplayer:
|
|||
|
Fix missing "%d" in a sscanf call
|
|||
|
|
|||
|
* [PR-400](https://github.com/apache/nuttx-apps/pull/400) dhcpc:
|
|||
|
Handle case where gethostname() might be empty
|
|||
|
|
|||
|
* [PR-399](https://github.com/apache/nuttx-apps/pull/399) build: Fix
|
|||
|
build system issue where compiler would only compile first assembly file
|
|||
|
|
|||
|
* [PR-393](https://github.com/apache/nuttx-apps/pull/393) build: Fix
|
|||
|
build system issue where ARCHCPUFLAGS in cxx command was lost
|
|||
|
|
|||
|
* [PR-392](https://github.com/apache/nuttx-apps/pull/392) wapi: Make
|
|||
|
wapi more robust in failure cases
|
|||
|
|
|||
|
* [PR-383](https://github.com/apache/nuttx-apps/pull/383) ntpclient:
|
|||
|
Fix NTP daemon state in case of DNS failure
|
|||
|
|
|||
|
* [PR-344](https://github.com/apache/nuttx-apps/pull/344) gs2200m:
|
|||
|
Fix freeing of uninitialized memory
|
|||
|
|
|||
|
* [PR-335](https://github.com/apache/nuttx-apps/pull/335) ntp: Fix
|
|||
|
malformated authentication headers in NTP packet
|
|||
|
|
|||
|
* [PR-331](https://github.com/apache/nuttx-apps/pull/331) telnetd:
|
|||
|
Fix buffer overflow issue clearing socket address
|
|||
|
|
|||
|
* [PR-312](https://github.com/apache/nuttx-apps/pull/312) build: Make
|
|||
|
sure to include incdir when running make export
|
|||
|
|
|||
|
* [PR-377](https://github.com/apache/nuttx-apps/pull/377) readline:
|
|||
|
Fix stack overflow when application name is too long
|
|||
|
|
|||
|
* [PR-359](https://github.com/apache/nuttx-apps/pull/259) nshlib: Fix
|
|||
|
memory corrupt in nsh\_parse if pthread\_create() failed
|
|||
|
|
|||
|
* [PR-354](https://github.com/apache/nuttx-apps/pull/354) dhcpd: Fix
|
|||
|
member name for "ds\_pid"
|
|||
|
|
|||
|
## Security Issues Fixed In This Release
|
|||
|
|
|||
|
## Compatibility Concerns
|
|||
|
|
|||
|
## Changes to Build System
|
|||
|
|
|||
|
### In Apps, Change `$(TOPDIR)` to `$(APPDIR)`
|
|||
|
|
|||
|
In the 'apps' repo, Makefiles are now using `$(APPDIR)` instead of `$(TOPDIR)`.
|
|||
|
|
|||
|
In your custom app's Makefile, it is recommended to change `$(TOPDIR)` to
|
|||
|
`$(APPDIR)`.
|
|||
|
|
|||
|
Replace this line:
|
|||
|
|
|||
|
include $(TOPDIR)/Make.defs
|
|||
|
|
|||
|
With this:
|
|||
|
|
|||
|
include $(APPDIR)/Make.defs
|
|||
|
|
|||
|
See * [PR-326](https://github.com/apache/nuttx-apps/pull/326), git
|
|||
|
commit #
|
|||
|
`[deaa6c5b7bf8445b4a300691525f60aa506be0d7](https://github.com/apache/nuttx-apps/commit/deaa6c5b7bf8445b4a300691525f60aa506be0d7)`
|
|||
|
in the NuttX 'apps' repository.
|
|||
|
|
|||
|
### Custom Boards Don't Need `ARCHINCLUDES` and `ARCHXXINCLUDES` Definitions
|
|||
|
|
|||
|
As part of an effort to unify support for uClibc++ and libc++, the C/C++ include
|
|||
|
search path definitions `ARCHINCLUDES` and `ARCHXXINCLUDES` are now defined in
|
|||
|
one central place in `tools/Config.mk`. It is no longer necessary to define
|
|||
|
these in every board's `scripts/Make.defs`. Boards included in the NuttX
|
|||
|
repository have been updated, but if you are building NuttX for a custom board
|
|||
|
and are using C++, you may want to make the following changes:
|
|||
|
|
|||
|
In your board's configuration, ensure that you have enabled either
|
|||
|
`CONFIG_UCLIBCXX` or `CONFIG_LIBCXX` as appropriate.
|
|||
|
|
|||
|
In your custom board's `scripts/Make.defs` file, remove lines like these:
|
|||
|
|
|||
|
CINCPATH := ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} CXXINCPATH :=
|
|||
|
${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} ARCHINCLUDES
|
|||
|
+= $(CINCPATH) ARCHXXINCLUDES += $(CINCPATH) $(CXXINCPATH)
|
|||
|
|
|||
|
In case your `scripts/Make.defs` uses different names, such as `ARCHINCLUDESXX`
|
|||
|
instead of `ARCHXXINCLUDES`, you'll need to find all uses of that variable and
|
|||
|
update them to use `ARCHXXINCLUDES`.
|
|||
|
|
|||
|
See * [PR-1396](https://github.com/apache/nuttx/pull/1396), git
|
|||
|
commit
|
|||
|
#[d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6](https://github.com/apache/nuttx/commit/d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6)
|
|||
|
in the main NuttX repository.
|
|||
|
|
|||
|
See also * [PR-1399](https://github.com/apache/nuttx/pull/1399), git
|
|||
|
commit
|
|||
|
#[6abd03d53ff9164fb17ea4aca701a49fbbf751c0](https://github.com/apache/nuttx/commit/6abd03d53ff9164fb17ea4aca701a49fbbf751c0).
|
|||
|
|
|||
|
### Custom Boards Don't Need `HOSTCC` and `HOSTCFLAGS` Definitions
|
|||
|
|
|||
|
The NuttX build system uses several binary utilities that it compiles and runs
|
|||
|
on the host computer. To build these binaries, it needs to know the host C
|
|||
|
compiler and C flags. Previously, every board's `scripts/Make.defs` file had to
|
|||
|
provide this information via `HOSTCC` and `HOSTCFLAGS` Definitions. As part of
|
|||
|
an effort to simplify the build system, these definitions are now automatically
|
|||
|
provided by logic in `tools/Config.mk`. Boards included in the NuttX repository
|
|||
|
have been updated, but if you are building NuttX for a custom board, you may
|
|||
|
want to make the following changes:
|
|||
|
|
|||
|
In your custom board's `scripts/Make.defs` file, remove lines like these:
|
|||
|
|
|||
|
HOSTCC = gcc HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
|
|||
|
|
|||
|
Sometimes they may look like this:
|
|||
|
|
|||
|
ifeq ($(CONFIG\_WINDOWS\_NATIVE),y)
|
|||
|
HOSTCC = mingw32-gcc.exe
|
|||
|
else
|
|||
|
HOSTCC = gcc
|
|||
|
endif
|
|||
|
|
|||
|
Note: These changes are OPTIONAL.
|
|||
|
|
|||
|
You may still set these definitions in your board's scripts/Make.defs, and your
|
|||
|
definitions will override the ones in tools/Config.mk.
|
|||
|
|
|||
|
Also, you may override these definitions for a single run by providing them on
|
|||
|
the make command line. This is useful if, for example, you wish to build debug
|
|||
|
versions of these host binaries: define HOSTCFLAGS with -g on the command line.
|
|||
|
|
|||
|
See * [PR-1398](https://github.com/apache/nuttx/pull/1398), git
|
|||
|
commit
|
|||
|
#[ee875b2a260cb4cc532b8ca303c2515e24c39b4e](https://github.com/apache/nuttx/commit/ee875b2a260cb4cc532b8ca303c2515e24c39b4e)
|
|||
|
in the main NuttX repository.
|
|||
|
|
|||
|
### Removal of Unused `ARCHCCVERSION` and `ARCHCCMAJOR`
|
|||
|
|
|||
|
The ARCHCCVERSION and ARCHCCMAJOR variables are unused. Historically they were
|
|||
|
defined in many boards' scripts/Make.defs. These were removed from all boards in
|
|||
|
the NuttX repository, but if you are building NuttX for a custom board, you may
|
|||
|
want to remove this unnecessary boilerplate.
|
|||
|
|
|||
|
In your custom board's `scripts/Make.defs` file, remove lines like these:
|
|||
|
|
|||
|
ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e
|
|||
|
's/^gcc version \\(\[0-9\\.\]\\)/\\1/g' -e 's/\[-\\ \].\*//g' -e '1q'}
|
|||
|
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
|
|||
|
|
|||
|
See * [PR-1344](https://github.com/apache/nuttx/pull/1344), git
|
|||
|
commit
|
|||
|
#[f5311de6b42466ab5c6ef299dab0ecc417131bbe](https://github.com/apache/nuttx/commit/f5311de6b42466ab5c6ef299dab0ecc417131bbe)
|
|||
|
in the main NuttX repository.
|
|||
|
|
|||
|
### Custom Boards May Not Need `EXTRA_LIBS` and `EXTRA_LIBPATHS` Definitions
|
|||
|
|
|||
|
The `EXTRA_LIBS` and `EXTRA_LIBPATHS` make variables were previously defined in
|
|||
|
many boards' `scripts/Make.defs` files. These are now defined in a more central
|
|||
|
location: `arch/*/src/*/Toolchain.defs`. Your board's `scripts/Make.defs`
|
|||
|
usually includes this file. Boards included in NuttX have been updated, but if
|
|||
|
you are building NuttX for a custom board, you may need to update your board's
|
|||
|
`scripts/Make.defs` file to ensure you build with the correct definitions.
|
|||
|
|
|||
|
If you have lines like these:
|
|||
|
|
|||
|
EXTRA\_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}" EXTRA\_LIBS = -lsupc++
|
|||
|
|
|||
|
You may want to do one of the following:
|
|||
|
|
|||
|
* If they are redundant to the definitions provided in the included
|
|||
|
`arch/*/src/*/Toolchain.defs`, remove these lines, or * If they contain
|
|||
|
additional needed libraries and paths not present in
|
|||
|
`arch/*/src/*/Toolchain.defs`, remove any redundant definitions and change the
|
|||
|
assignment '`=`' to '`+=`'.
|
|||
|
|
|||
|
See * [PR-1404](https://github.com/apache/nuttx/pull/1404), git
|
|||
|
commit
|
|||
|
#[4910d43ab0fc360dbddb1f8a31db2a3ee383b46d](https://github.com/apache/nuttx/commit/4910d43ab0fc360dbddb1f8a31db2a3ee383b46d)
|
|||
|
in the main NuttX repository.
|
|||
|
|
|||
|
### Custom Boards May Not Need CC, CXX, CPP, LD, STRIP, AR, NM, OBJCOPY, and
|
|||
|
OBJDUMP Definitions
|
|||
|
|
|||
|
These `make` variables were previously defined in many boards' scripts/Make.defs
|
|||
|
files with copy-paste duplication spanning many hundreds of files. These are now
|
|||
|
defined in a more central location: `arch/*/src/*/Toolchain.defs`. Your board's
|
|||
|
`scripts/Make.defs` usually includes this file. Boards included in NuttX have
|
|||
|
been updated, but if you are building NuttX for a custom board, you may need to
|
|||
|
update your board's `scripts/Make.defs` file to ensure you build with the
|
|||
|
correct definitions.
|
|||
|
|
|||
|
If you have lines that define `CC`, `CXX`, `CPP`, `LD`, `STRIP`, `AR`, `NM`,
|
|||
|
`OBJCOPY`, and `OBJDUMP`, such as these:
|
|||
|
|
|||
|
CC = $(CROSSDEV)gcc CXX = $(CROSSDEV)g++ CPP = $(CROSSDEV)gcc -E -P -x c LD =
|
|||
|
$(CROSSDEV)ld STRIP = $(CROSSDEV)strip --strip-unneeded AR = $(ARCROSSDEV)ar rcs
|
|||
|
NM = $(ARCROSSDEV)nm OBJCOPY = $(CROSSDEV)objcopy OBJDUMP = $(CROSSDEV)objdump
|
|||
|
|
|||
|
You may want to do one of the following:
|
|||
|
|
|||
|
* If they are redundant to the definitions provided in the included
|
|||
|
`arch/*/src/*/Toolchain.defs`, remove these lines, or * If they are different
|
|||
|
from the definitions in `arch/*/src/*/Toolchain.defs`, leave them as-is and they
|
|||
|
will take precedence.
|
|||
|
|
|||
|
See * [PR-1426](https://github.com/apache/nuttx/pull/1426), git
|
|||
|
commit
|
|||
|
#[b329e2377dd8816f37ad0408279926829efdf85d](https://github.com/apache/nuttx/commit/b329e2377dd8816f37ad0408279926829efdf85d)
|
|||
|
in the main NuttX repository.
|
|||
|
|
|||
|
### Consolidated ARCROSSDEV and CROSSDEV
|
|||
|
|
|||
|
The `ARCROSSDEV` and `CROSSDEV` variables always had identical values. Therefore
|
|||
|
`ARCROSSDEV` has been removed and `CROSSDEV` is used instead. Boards included in
|
|||
|
NuttX have been updated, but if you are building NuttX for a custom board, you
|
|||
|
may need to update your board's build scripts to use the `CROSSDEV` variable.
|
|||
|
|
|||
|
See * [PR-1439](https://github.com/apache/nuttx/pull/1439), git
|
|||
|
commit
|
|||
|
#[5efa93ec26fd8a3fd85b24a2008bb743f96027fb](https://github.com/apache/nuttx/commit/5efa93ec26fd8a3fd85b24a2008bb743f96027fb)
|
|||
|
in the main NuttX repository.
|