nuttx/Documentation/ReleaseNotes/NuttX-7.29

1096 lines
48 KiB
Plaintext
Raw Normal View History

NuttX-7.29
----------
The 129th release of NuttX, Version 7.29, was made on March 25, 2019,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.29.tar.gz and
apps-7.29.tar.gz. These are available from:
https://bitbucket.org/nuttx/nuttx/downloads
https://bitbucket.org/nuttx/apps/downloads
Both may be needed (see the top-level nuttx/README.txt file for build
information).
Additional new features and extended functionality:
* Core OS:
- Configuration: CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to
disable the file system. NuttX with no file system does not make
sense and is no longer supported. From Gregory Nutt.
- Rename most internal OS functions from sched_* to nxsched_* to
indicate that they are NuttX internal functions (some renaming is
still needed). From Gregory Nutt.
- Rename all internal OS functions from task_* to nxtask_* to indicate
that they are NuttX internal functions. From Gregory Nutt.
- Rename sched_process_timer to nxsched_process_timer. Rename
sched_timer_expiration to nxsched_timer_expiration. Rename
sched_alarm_expiration to nxsched_alarm_expiration. Those are the
appropriate names for an internal sched/ function (still many named
incorrectly). From Gregory Nutt.
- Standardize naming: Rename os_start() to nx_start(), rename os_smp*
to nx_smp*, rename os_bringup to nx_bringup, rename all internal
static functions to begin with nx_ vs os_. From Gregory Nutt.
- Initialization: Remove the option CONFIG_BOARD_INITTHREAD. Now, if
CONFIG_BOARD_INITIALIZE is selected, then the board_initialize()
logic will ALWAYS run on an internal kernel thread. This will
prevent the problems people have had doing inappropriate
board_initialization on the IDLE thread. From Gregory Nutt.
- Initialization: Add support for CONFIG_BOARD_EARLY_INITIALIZE. If
this option is selected then nx_start() will call a board-provided
function board_early_initialize() immediately after calling
up_initialize(). Rename board_initialize() to
board_late_initialize(). From Gregory Nutt.
- Signal Delivery: Add a flag to the TCB to indicate that we are in a
signal handler. Use this flag to assure that a there is never
attempts to nest signal handling operations on a thread. This was
guaranteed before but when locking of pre-emption during signal
delivering was eliminated in a previous commit, there was a remote
possibility of an attempt to do nested signal handling. This flag
assures that there is only one signal handled at a time. From
Gregory Nutt.
- Signal Handler Security: The architecture-specific signal handler
return register state is saved and available on the user stack.
This commit reorders some logic so that certain, critical registers
are preserved in the TCB. This eliminates most malicious exploits
which more the return address, for example, but does not make the
logic 100% secure. From Gregory Nutt.
- Timer Interrupt Procssing: Add a configurable call out to a
user-provided function, 'timer hook', on each timer interrupt. From
Gregory Nutt.
- PM Activity: Add pm_staycount() API for get stay numbers. This
function is currently not used and a waste of FLASH space. From ligd.
- Pthreads: Add support for pthread_mutex_timedlock From Leif Jakob.
- Pthread Spinlocks: Add a very preliminary implementation of the new
POSIX pthread_spinlock_* interfaces. From Gregory Nutt.
- Critical Section Monitor: Remove SCHED_IRQMONITOR_GETTIME to
simplify the clock source selection: (1) Use up_critmon_gettime if
SCHED_IRQMONITOR, (2) Call clock_systimespec if SCHED_TICKLESS, (3)
Don't collect timing info for all other cases. From Xiang Xiao.
- Work Queue Notification: Notifier can now work with either lpwork
or hpwork. From Xiang Xiao.
- Protected Build: Add add a new field (us_heapend) to struct
userspace_s that labels the end of the heap. From Xiang Xiao.
* Binary Loader/Kernel Modules/Shared Libraries
- Shared Libraries: Implement dlerror() using strerror(). From Xiang
Xiao.
- Shared Libraries: Add LD_LIBRARY_PATH environment variable
support. From anchao.
- ELF Loaders: Optimize elf load speed: (1) Don't zero out memory,
(2) Reduce the initial buffer size to 32 bytes. From Xiang Xiao.
- ARM ELF Relocation: Add support for the R_ARM_THM_JUMP11 relocation
type. This relocation type may be generated when LTO optimization
is enabled. From anchao.
- ELF Modules: Add relocation buffer table to reduce filesystem
access. From anchao.
- ELF Modules: Add symbol buffer table to reduce filesystem access.
From anchao.
* File Systems/Block and MTD Drivers
- Filesystem Mount: Move the union inode_ops_u i_mtd field into the
mount section of inode_ops_u and remove the guard to simplify fs
which support both block and mtd. From Xiang Xiao.
- ROMFS: Add support to mount a ROMFS volume using an MTD driver
interface using the standard mount() operation. From Xiang Xiao.
- LittleFS: VFS wrapper improvement: (1) Support block device
interface, (2) support ioctl, stat and sync file operation, (3)
support forceformat and autoformat option, (4) update file->f_pos
and dir->fd_position, (5) remove the internal struct from dir, and
(6) remove mtd byte read/write requirement. From Xiang Xiao.
- UnionFS: Support mount of UnionFS from the NSH command line. From
Xiang Xiao.
* Networking/Network Drivers:
- UsrSock: Add mutual exclusion so that only user can perform a
socket request From zhangyuan7.
- UDP: Initialize callback address structure to avoid random values
in padding. From anchao.
* Wireless/Wireless Drivers:
- SX127x: Initial support for SX127x LoRA radio From Mateusz Szafoni.
* Graphics/Display Drivers:
- Graphics: Fix a naming collision: Ye olde nx_start that started
the NX graphics is now nxmu_start(). nxmu_start() is now
prototyped in nxmu.h (instead of nx.h). From Gregory Nutt.
- NX Server Startup: Extend nxmu_start() so that receives a display
number as an argument. This makes it possible to have multiple
instances of the NX server running on boards that support multiple
displays. Also includes updates to boardctl() to accept display
number parameters. From Gregory Nutt.
- Graphics: nx_openwindow() and nxtk_openwindow() now accept an
additional 'flag' parameter. This argument is current used only to
select a RAM backed, per-window framebuffer. From Gregory Nutt.
- Per-Window Framebuffers: Windows may now be optionally created
with a RAM framebuffer backing up the window content. Rending into
the window will result in rending into the backup framebuffer, then
updating the physical display from the framebuffer. The advantage
of this option is that the application that manages window will no
longer receive redraw() callbacks. Those calls normally occur when
a window "above" moves exposing a portion of the window below. If
this option is selected, then the system will redraw the exposed
portion of the window from the backup framebuffer without
intervention of the window applications. This greatly reduces the
complexity of the application and performance of the window at the
expense of increased memory usage. Redraw requests in other cases
are also suppressed: Changes to window position, size, etc. As a
consequence, some manual updates will be required when certain
events occur (like removing a toolbar from a window). NOTE: A
significant amount of RAM, usually external SDRAM, may be required
to use per-window framebuffers.
* Other Common Device Drivers:
- Driver Notifications: Support signal notification through
SIGEV_THREAD in all drivers that provide signal notifications:
RTC, Joysticsks, buttons, Zero-Crossing, wireless, FT80x, Timer,
PHY. From Xiang Xiao.
- Watchdog Driver: Support auto-monitor service From Gregory Nutt.
- Timer and Alarm Drivers: Implement up_critmon_gettime and
up_critmon_convert and remove the critical section from
current_usec to infinite recursion. From Xiang Xiao.
- RTC Driver: Protect the RTC state with a semaphore. From Xiang
Xiao.
- Serial Upper Half: Call pm_activity() when characters are received
on a console device. From Gregory Nutt.
- MPU60x0: Initial support for TDK InvenSense MPU6000 and MPU6050
6-axis gyroscope and accelerometers. This commit supports SPI
media only. From Bill Gatliff.
- EEPROM Driver: Add configurable SPI eeprom frequency. From
Valmantas Paliksa.
- GPIO Driver: Support reading and writing gpio pins using cat and
echo. From Valmantas Paliksa.
- MCP2515: Add MCP2515 clock input config to KConfig. From
Valmantas Paliksa.
- MAX7456: Support for the Maxim MAX7456 on-screen-display chip.
From Bill Gatliff.
* Common Board Logic:
- boardctl(): up_testset() can now be accessed by applications via
the boardctl() interface rather than attempting to call it
directly. pthread Spinlocks are not available unless the
architecture supports the up_testset() operation. From Gregory
Nutt.
- boardctl(): Add support for BOARDIOC_NXTERM which can be used to
create an NxTerm terminal. From Gregory Nutt.
- boardctl(): Add boardctl() commands to replace direct calls to
nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt.
* Microchip PIC32MZ Drivers:
- PIC32MZ Timers: Add support for the PIC32MZ timers (driver,
lowerhalf, freerun and oneshot) From Abdelatif Guettouche.
* Common ARM Options:
- arch/arm: Move FPU options to a common place and unify the usage
by removing ARCH_CORTEXRxF. From Xiang Xiao.
- arch/: Unify the cache interface for all architectures that
support a data cache. From Xiang Xiao.
- ARMv7-M/A/R: Add a architecture-specific new barriers.h header
file that provides the memory barrier definitions that were
previously in the (now unified) cache.h header files. From Gregory
Nutt.
* ARMv7-A
- ARMv7-A: Support thumb mode and fix interworking issue. From
zhangyuan7.
- ARMv7-A: Add weak attribute to arm_data_initialize so platform
could provide the new implementation as needed. From zhangyuan7.
- ARMv7-A: Add SCR bit definitions. From Xiang Xiao.
- ARMv7-A: Add mmu_l1_map_regions() to remove the code duplication.
From Xiang Xiao.
- ARMv7-A: Add the initial cortex-a7 architecture support From
zhangyuan7.
* ARMv7-M
- ARMv7-M: stackcheck allow faulting stack calculation to make it to
the up_assert reg dump From David Sidrane.
* Microchip/Atmel SAMD21/L21 Drivers:
- SAMD2/L2: Add RS485 support to SAMD2L2 serial. From Alan Carvalho
de Assis.
* Misoc:
- Minerva: Add support for the Minerva architecture. From Ramtin
Amin.
* Misoc Boards:
- misoc: Add support for an NSH configuration using the Verilator
board. From Ramtin Amin.
* Nordic NRF52:
- NRF52: 1. Added 52840 family support 2. Use common IRQ and memory
layout header file for 52832 & 52840. From Levin Li.
* Nordic NRF52 Drivers:
- NRF52 RNG: 1. added RNG device driver 2. added errdata to correct
temp which will be used by RNG module 3. use general task_trigger /
event_clear inline api for all driver. From Levin Li.
* NXP i.MX RT Drivers:
- i.MXRT XBAR: Add XBAR Support. From David Sidrane.
- i.MXRT USB: Add USB analog header file. From David Sidrane.
- i.MXRT OCOTP: Added OCOTP Support. From David Sidrane.
- i.MXRT LCD: Adds framebuffer support for the i.MXRT 1050.
Includes DCD initialization for SDRAM to provide space for the
framebuffer. External code I used/ported is from NXP and is BSD
3-clause license. From Johannes.
* NXP i.MX RT Boards:
- IMXRT1050-EVK: Adds framebuffer support for the i.MXRT 1050.
From Johannes.
* NXP LPC17xx
- LPC17xx: Add a configuration option to skip over the framebuffer
when adding DRAM to the heap. From Gregory Nutt.
* NXP LPC17xx Boards
- Open1788: Add a configuration to test NxTerms in the PROTECTED
mode. From Gregory Nutt.
- Open1788: Re-arrange PROTECTED mode link map to make more space
for large kernels with debug enabled. From Gregory Nutt.
- Open1788: Add a configuration for testing per-window frame buffers
using apps/examples/pwfb. From Gregory Nutt.
* NXP LPC54xx Boards
- LPCXpresso-LPC54628/pwfb: Add per-window framebuffer configuration
using apps/examples/pwfb. From Gregory Nutt.
- LPCXpresso-LPC54628: Add a configuration for addition per-window
framebuffer using apps/examples/pwlines. From Gregory Nutt.
* STMicro STM32 Drivers:
- STM32F0/L0 SPI: Add SPI support for F0. From Mateusz Szafoni.
- STM32 ADC, PWM and TIM: (1) configure injected channels external
trigger when ADC enabled, (2) update injected conversion queue of
context after configuration, (3) support for offset configuration,
and (6) support for advanced timers channel 5 and 6. From Mateusz
Szafoni.
- STM32 DFU Mode: Add logic to reboot the STM32 in DFU mode.
Current implementation only works for STM32F2 and F4. From Bill
Gatliff.
- STM32F7 LSE: Add configuration of LSE oscillator drive capability
From Jussi Kivilinna.
- STM32F7 I2C: Fix another memory access issue on a bus error. From
David Sidrane.
- STM32F7 TIM: Add OUTTOGGLE mode for STM32f7 timer From Valmantas
Paliksa.
- STM32F7 Timer Lower Half: Add timer lowerhalf driver for stm32f7.
From Valmantas Paliksa.
- STM32F7 ITM: Add ITM syslog support. From Valmantas Paliksa.
- STM32F7 CAN: Add CAN driver with support for three bxCAN
interfaces. From Valmantas Paliksa.
- STM32F7 QSPI: Add stm32f7 Quad SPI support. From Valmantas Paliksa.
- STM32L4 LSE: Ports Jussi Kivilinna's recent STM32F7 LSE change to
STM32L4. From Juha Niskanen (Haltian).
- STM32H7 I2C: Apply David Sidrane's fix for the STM32F7 to the
STM32H7. From Gregory Nutt.
- STM32H7 DMA: Rename DMA1/2 IRQ names to match those from other
STM32. Add auxiliary definitions. Add DMAMAP definitions for
MDMA, DMA1, DMA2 and BDMA. Add some address blocks. Change RCC
definitions to match other STM32 ports. Enable clock for MDMA and
BDMA. Rename DMA channel definitions. Separated files for MDMA,
DMA, BDMA and DMAMUX. Add missing definitions for MDMA, BDMA and
DMAMUX. SPI DMA mode. Add base addresses for D1, D2 and D3
domain; use 2 bytes to specify memory region. Add D1 domain core
prescaler configuration. From Mateusz Szafoni.
- STM32H7 OTG: Initial OTG support for STM32H7 and some minor
improvements. Add support for HSI48 clock. From Mateusz Szafoni.
- STM32H7 Build: Initial support for protected build mode. From
Mateusz Szafoni.
- STM32L4 I2C: Apply David Sidrane's fix for the STM32F7 to the
STM32L4. From Gregory Nutt.
* STMicro STM32 Boards:
- B-L072Z-LRWAN1: Add SX127x configuration. From Mateusz Szafoni.
- Nucleo-F091RC: Add support for SX127x radio. From Mateusz Szafoni.
- Nucleo-F091RC: Add SX127x configuration. From Mateusz Szafoni.
- Nucleo-F207ZG: Add support for USB and initialize CDCACM if
configured. From Mateusz Szafoni.
- STM32F429I-DISCO: Add an apps/examples/examples/nxhello
configuration. From Gregory Nutt.
- Nucleo-F446RE: Add support for the Nucleo F446RE. From Sebastien
Lorquet.
- B-L072Z-LRWAN1: Use HSI as default clock source. From Mateusz
Szafoni.
- Nucleo-L073RZ: Add SX127x configuration. From Mateusz Szafoni.
- Nucleo-L073RZ: Port button logic from nucleo-f072 which appears to
be the same. From Gregory Nutt.
- Nucleo-L432KC: Add support for I2C driver initialization. From
Nikolay Semenov.
- Nucleo-H743ZI: Add support for USB and initialize CDCACM if
configured. From Mateusz Szafoni.
- OmnibusF4: Initial support for the OmnibusF4 family of flight
management units. "OmnibusF4" is not a product name per se, but
rather a design spec that many product vendors adhere to. The spec
defines the major components, and how those components are wired
into the microcontroller. Airbot is one such vendor, and they
publish a schematic here: http://bit.ly/obf4pro. Other software
that supports the OmnibusF4 family include Betaflight, iNAV, and
many others. PX4 recently added support as well, using their own,
non-upstreamed, bespoke port of NuttX. No code from those resources
is included in this port. From Bill Gatliff.
- OmnibusF4: Add MAX7546 support. From Bill Gatliff.
* TI CCxx:
- CC1312R1: Code complete and builds successfully. Stalled on
further radio development. I planned to integrate the IEEE 802.15.4
radio interface, but the Cortex-M0 interface is not available with
an open license.
* TI CCxx Boards:
- LaunchXL-CC1312R1: Add support for on-board LEDs and buttons. The
LauchXL-CC1312R1 NSH Configuration is now fully functional. From
Gregory Nutt.
- LaunchXL-CC1310: Clone LED and button support from the
LaunchXL-CC1312R1. The number of LEDs and buttons as well as DIO
usage is identical (Still not functional). From Gregory Nutt.
* Tools:
- tools/rmcr.c: Add a tool to remove carriage returns and dangline
whitespace at the end of lines. From Gregory Nutt.
- tools/nxstyle.c: Can now detect if the C comment closing is not on
a separate line. From Gregory Nutt.
- tools/nxstyle.c: Make sure that all files begin with a comment on
line 1 (which should be the file header). From Gregory Nutt.
- tools/nxstyle.c: Add check for multiple definitions of local
variables on a line. From Gregory Nutt.
- tools/nxstyle.c: Beef up logic that detects multiple variable
definitions per line. From Gregory Nutt.
- tools/nxstyle.c: Add capability to detect CamelCase identifiers.
From Gregory Nutt.
- tools/nxstyle.c: Add logic to detect a blank line following a left
brace or a blank line preceding a right brace. From Gregory Nutt.
- tools/nxstyle.c: Don't complain about certain lowercase characters
in otherwise uppercase pre-processor identifiers: IPv6, IPv4,
ICMPv6, IGMPv2, p as a decimal point, d signifying a divisor. It
was a bad idea to let the door open a crack for there. While they
improve readability, the inconsistently also causes other
problems. From Gregory Nutt.
* Build System:
- Makefiles: Modify tools/Makefiles to add a "Do not Edit" warning
on defconfig files From Alan Carvalho de Assis.
* Libraries/Header Files:
- lib_vsprintf() (Nano): Add newlib-nano lib_vsfprintf has been
added and is now the default support for the printf family. This
fprintf code was originally adapted from AVR libc and provides
improved floating point output support, including 'g' mode and
making 'f' mode include digits past the decimal by default. The
newlib version can be found here:
https://salsa.debian.org/electronics-team/toolchains/newlib-nano.
That project is GPL overall, but the newlib-nano printf portions
are BSD licensed as described in the COPYING.NEWLIB file. From
Keith Packard.
- lib_vsprintf() (Nano): Added support for long lont types. From
Johannes.
- lib_vsprintf() (Nano): Added hh type modifier (without extending
the flag variable). From Johannes.
- lib_vsprintf() (Nano): Adds configurable support for numbered
arguments. From Johannes.
- lib_vsprintf() (Nano): Cleaned naming and allow for leading zeros
in argument number (which doesn't make sense but should be). From Johannes.
- lib_vsprintf() (Legacy): Add support for %g format which, for
these purpose, is equivalent to %f except that trailing zeroes are
suppressed. From Gregory Nutt.
- vscanf(): Moved vscanf logic to lib_sscanf.c Switched to stream
interface (tricky, because the old implementation used massive read
ahead, which isn't suitable for streams, chars already read are
gone). Added hh, h, and ll modifiers. From Johannes.
- scanf() and fscanf(): Added scanf and fscanf based on enhanced
vscanf(). From Johannes.
- uname(): Add build date and time to uname output (like Linux).
From Gregory Nutt.
- strsep(): Add strsep BSD/Linux function. From Xiang Xiao.
- netdb: Hostname support no longer depends on CONFIG_NET since the
host name is also useful in the non-network environment.
CONFIG_NET_HOSTNAME changed to CONFIG_LIBC_HOSTNAME. From Xiang Xiao.
- netdb: Support the nameserver change notification then we can pass
DNS info from server to client in usrsock case. From Xiang Xiao.
- include/fixedmath.h: Add macros for conversion between types
b16_t and type double From Gregory Nutt.
- include/limits.h: Define NL_ARGMAX (as well as some of the other
'invariant values' per
http://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html).
From Johannes.
- linclude/limits.h: Add 'range 9 999999' to CONFIG_LIBC_NL_ARGMAX
to Kconfig. Per OpenGroup.org, the minimum value for NL_ARGMAX is
9. From Gregory Nutt.
- include/nuttx/lcd/edid.h: Add extended EDID block IDs From
Gregory Nutt.
* apps/ General:
- apps/: Follow up the kernel signal-related change in various files
under examples/ and graphics/. From Xiang Xiao.
- apps/: Update for corrected name of standard header file. Should
be dlfcn.h, not dllfcn.h. From Gregory Nutt.
- apps/: The file system can no longer be disabled. Remove all
conditional logic based on CONFIG_NFILE_DESCRIPTORS==0 From
Gregory Nutt.
- apps/: Remove/replace all conditional logic based on
CONFIG_NSOCKET_DESCRIPTORS == 0. That value is always greater than
zero now. In places just replace with #ifdef CONFIG_NET. From
Gregory Nutt.
- apps/: Some updates due to NuttX renaming:
CONFIG_BOARD_INITIALIZE is now CONFIG_BOARD_LATE_INITIALIZE;
board_initialize() is now board_late_initialize(). From Gregory
Nutt.
- apps/: Graphics interfaces nx_openwindow() and nxtk_openwindow()
now accept an additional 'flag' parameter. From Gregory Nutt.
* NSH: apps/nshlib:
- apps/nshlib/nsh_netinit.c: Update for changes to signal
notification structures. From Gregory Nutt.
* Examples/Tests: apps/examples:
- apps/examples/ini_dumper: New example program. ini_dumper is
example program that dumps content of ini file in pretty ascii table.
It is using inih ini library in fsutils/inih. From Michal Lyszczek.
- apps/examples/modbusmaster: Add Simple Modbus master example.
This example only supports Read/Write HoldingRegisters, but it is
easy to extend it to support Read/Write Input/Coils/etc.
Originally creatd by Vytautas in 2016 and updated with minor fixes
for this commit. From Alan Carvalho de Assis.
- apps/examples/pwfb: Added a test/example at apps/examples/pwfb
that was used for initial testing of the per-window framebuffer
feature. From Gregory Nutt.
- apps/examples/pwlines: Added another a test/example at
apps/examples/pwlines that was used for further testing of the
per-window framebuffer feature. From Gregory Nutt.
- apps/examples/sx127x: Add sx127x demo From Mateusz Szafoni.
* File System Utilities: apps/system
- apps/fsutils/inih: New package. inih (INI Not Invented Here) is a
simple .INI file parser written in C.
https://github.com/benhoyt/inih. From Michal Lyszczek.
* Network Utilities: apps/netutils:
- apps/netutils/codecs/: Remove the big Base64 stack array. From
Xiang Xiao.
- apps/netutils/codecs/: Add base64_[de|en]code_length() API From
ligd.
* System Utilities: apps/system
- apps/system/cfgdata: Make builtin task stack size and priority
configurable. Set default to 2048 (from 1024) per recommendation
of Ken Pettit. From Gregory Nutt.
- apps/system/embedlog: Update to version 0.4.0. From Michal Lyszczek.
- apps/system/nxplayer and nxrecorder: Change 'int prio' to
'unsigned int prio'. Required by changes to MQ function
prototypes. From Michal Lyszczek.
- apps/system/psmq: New package. psmq is publish subscribe message
queue. It's a set of programs and libraries to implement
publish/subscribe way of inter-process communication on top of
POSIX message queue. From Michal Lyszczek.
- apps/system/zmodem: Switch to the raw mode before transfer and
restore to the original setting after finishing the transfer. From
Xiang Xiao.
* Testing: apps/testing:
- apps/testing/: Move all file system tests from examples/ to
testing/ (cxxtest, fstest, nxffs, smart, smart_test, smp). From
Gregory Nutt.
- apps/testing/cxxtest: Add a README file. From Gregory Nutt.
- apps/testing/ostest: Add test of pthread_mutex_timedlock() From
Gregory Nutt.
- apps/testing/ostest: Fix several errors in the setvbuf() test.
From Gregory Nutt.
- apps/testing/scanftest: Port of Greg King's scanf test
(https://github.com/cc65). From Johannes.
* Tools: apps/tools:
- apps/tools/check-hash.sh: Add a tool check hash on downloaded
packages. From Michal Lyszczek.
Bugfixes. Only the most critical bugfixes are listed here (see the
ChangeLog for the complete list of bugfixes and for additional, more
detailed bugfix information):
* Core OS:
- Signals: Restructure nxsig_deliver() so that the signal handler is
not called with the pre-emption disabled (or, at least no with
pre-emption disabled by nxsig_deliver() itself). From Gregory Nutt.
- Critical Section Monitor: Move up_critmon_* to arch.h avoid the
duplicated declaration. From Xiang Xiao.
- Assertions: Architecture-specific assertion logic should dump CPU0
IDLE stack only when PID equals 0. IDLE threads of other CPUs do
not need this special check. From Xiang Xiao.
- Message Queues: Change 'int prio' to 'unsigned int prio'.
According to open group specification, priority field in mq_*
functions should have unsigned type:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html.
From Michal Lyszczek.
- Timer Expiration: Fix macro SEC2TICK() 32-bits overflow by using
uint64_t in calculation. From ligd.
- Kernel Memory Manager: In mm/kmm_heap/kmm_kernel.c, remove unused,
duplicated kmm_heapmember(). From Xiang Xiao.
- User Memory Manager: Ensure all user allocation try sbrk before
fail From Xiang Xiao.
- waitid(): Could exit without leaving critical section on some
error conditions. From Gregory Nutt.
- IOBs: iob_allocwait() should decrease semcount manually. From
Xiang Xiao.
- IOBs: iob_copyin() should wait for each buffer and adjust the
return value of iob_copyin_internal return to simplify the code
From Xiang Xiao.
- IOB Notifier: Don't check iob_navail in iob_notifier_setup to
avoid a potential race condition. From Xiang Xiao.
- IOB Debug Dump: Format the whole line before log to avoid the
multiple timestamp prefix in each line. From Xiang Xiao.
- SHM: Convert bytes to pages by MM_NPAGES instead of MM_PGALIGNUP
From Xiang Xiao.
- SHM: shmget() should hould call shm_extend() to allocate the
physical memory. From Xiang Xiao.
- Page Allocator: mm/pgalloc: shouldn't just allocate one page
always. From Xiang Xiao.
- Granule Allocator: Fix the wrong data in g_1bit_info and make the
internal function static. From Xiang Xiao.
- srbk(): Fix a backward conditional test. Should call
mm_initialize() when brkaddr equal zero From Xiang Xiao.
- sbrk(): Pass ARCH_HEAP_VEND as maxbreak argument From Xiang Xiao.
- ELF Headers: Move elf related arch function to include/nuttx/elf.h
because the implementation is located in libs/libc/machine and in
order to avoid the conflict with the 3rd party libraries and clean
up the file inclusion: (1) Remove redundant elf32.h, (2) Remove
nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove
nuttx/binfmt/elf.h in modlib, and (4) Remove nuttx/module.h in
modlib. From Xiang Xiao.
- ELF Executables: If there is an address environment
(CONFIG_ARCH_ADDRENV), binfmt/elf doesn't need to free ctor/dtor
alloc since freeing the address environment releases the heap
automatically. From Xiang Xiao.
- ELF Configuration: Correct libcxx exception handling by
introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX)
From Xiang Xiao.
- ELF Loaders: Call umm_initialize as soon as possible otherwise
elf_loadctors/elf_loaddtors may fail to allocate memory. From
Xiang Xiao.
* Crypto:
- Crypto AES: After NuttX 7.28 crypto/aes.c would no longer
compile. From Gregory Nutt.
* File System/Block and MTD Drivers:
- open(): Fix not returning failure for block_proxy() call. From
David Sidrane.
- AIO: aio_cancel() needs to signal caller after success. Also fix
minor issue in the error handler. From Xiang Xiao.
- HostFS: Remove the unnecessary use of host_stat() in
hostfs_bind() From ligd.
- LittleFS: Fix a minor issue found in code review: (1) Replace
printf to finfo/fwarn/ferr, (2) Replace malloc/free to
kmm_malloc/kmm_free, (3) define LFS_NAME_MAX to NAME_MAX, (4) Check
the big endian using CONFIG_ENDIAN_BIG. From Xiang Xiao.
- LittleFS: VFS Lookahead should use bit unit not byte unit. From
Xiang Xiao.
- NxFLAT: Correct a double free debug assertion. This occurs when
groups are enabled: (1) once via binfmt_exit and unload_module,
and (2) once via sched_releasetcb(). this was corrected by adding
logic to free/unload the memory once and nullify the pointer so
that cannot be freed a second time. This commit resolves Bitbucket
issue #145. From Valmantas Palikša.
- NxFLAT: File descriptor leaks when nxflat loading fails. From
Valmantas Palikša.
- ProcFS: Fix typo in procfs uptime logic. From Sebastien Lorquet.
* Networking/Network Drivers:
- Network Configuration: The setup seems to support a network
without sockets (CONFIG_NSOCKET_DESCRIPTORS == 0). That is not the
case; if the network is enabled, sockets must be provided. From
Gregory Nutt.
- Networking: The value ERROR should never be returned from internal
OS functions. That is reserved for returning values to appliations
with the errno value set. Within the OS, errors are returned with
a negated errno value ALWAYS. From Gregory Nutt.
- Networking: The struct in_addr doesn't have the member sin_addr.
The function lib_lo_ipv6match() is for IPv6. Correct the function
it calls from lib_lo_ipv4matchto() to lib_lo_ipv6match(). Also add
CONFIG_NET_IPv6 for configuration. From Kejun ZHOU.
- TCP (buffered) send: Fix assertion crash when window size is
zero. From Gregory Nutt.
- ICMP/ICMPv6: Bind icmp callback from device to connection.
Resolves the issue that bind() could not be called before send()
From anchao.
- TUN/TAP Driver: Re-order all TUN/TAP driver state data. Not only
was was with wasting memory due to alignment requirements, it was
also causing network packet buffers to be improperly aligned
causing problems because the network requires 16-bit packet buffer
alignment for uint16_t accesses. This alignment problem was
discovered by Alan Carvalho de Assis. From Gregory Nutt.
- TUN/TAP Driver: Packet buffer size should include the configured
GUARD_SIZE. And, given how the buffers are allocated, the
allocation size must be an even number of 16-bit values to preserve
alignment. From Gregory Nutt.
- Local Sockets: In local_connect(), initialize lc_result before
giving lc_waitsem From zhangyuan7.
- Local Sockets: Fixed deadlock issue by replacing nxsem_wait() with
net_lockedwait() so that we do not wait with the network locked.
From zhangyuan7.
* Graphics/Display Drivers:
- NX Graphics: Remove naming associated with the now non-existent
NXFE graphics layer: Rename nxfe_reportposition to
nxmu_reportposition. Rename nxfe_redrawreq to nxmu_redrawreq.
Rename nxfe.h to nxmu.h. Rename nxfe_state_s to nxmu_state_s.
Rename nxfe_conn_s to nxmu_conn_s. From Gregory Nutt.
- NxTERM: Remove the nxterm_unregister interface. The correct way
to unregister a device is to unlink it. From Gregory Nutt.
- NxTerm: Needs to clear display initially. Otherwise, garbage from
previous display may still be present from preceding NxWM window.
From Gregory Nutt.
- Font Cache: Fix a memory leak in the font cache. With a busy
NxTerm display, this could drain off all the memory pretty quickly!
From Gregory Nutt.
- Graphics: Nothing under graphics/ should set the errno. From
Gregory Nutt.
- Graphics: Fix a coordinate system error in nx_filltrapezoid().
When no clipping rectangle is falls, it falls back to use the
entire window as for the clip. However, that window must then then
be in window relative coordinates, not in absolute device
coordinates. From Gregory Nutt.
* Common Board Logic:
- boardctl(): Fix compiling error when set
CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID. From Kevin Liu.
* Common Drivers:
- INA3221: Fix errors in INA3221 register field addresses and
bitfield values. Signed value was losing its signed-ness due to
use of unsigned type for register. From Ken Pettit.
- Serial Upper Half: Initialize OPOST and ONLCR in uart_register.
From Xiang Xiao.
- Serial Upper Half: Don't reset the circular buffer on close since
DMA may still be transferring data in the background if the user
closes the handle too quickly and the handle is opened with
O_NONBLOCK. From Xiang Xiao.
- 16550 UART: Fix error: 'g_uart0port' undeclared. From Xiang Xiao.
- 16550 UART: Fix typo for UART1 flow field initialization From
Gregory Nutt.
- CDC/ACM HCD: Fixes to the IOCTL method in recovery of UART pointer
and in names of Termios-related field. From xhbm.
- USB Device: Fix type for USBDEV_TRACE_INITIALIDSET in Kconfig.
From Mateusz Szafoni.
- TCA64xx: Fix some errors in the TCA64XX driver. From Bruno
Schwander.
- SYSLOG RAMLog: Fix error: Conflicting types for 'ramlog_addchar'
From Xiang Xiao.
- NRF24L01: Fix uninitialized irq_work which was causing a
hard_fault on interrupt handler whenever something was sent from
nrf24l01_term From Petri Ahonen.
- MCP2515: Use kmm_zalloc to allocate device state structure. Fix
some compiler errors. From Valmantas Paliksa.
* Architecture Common:
- arch/ Common: Remove architecture-specific watchdog.h and
arm-elf.h because they are empty. The arm-elf header file was
never used; the empty watchdog.h header file was used in only one
place. From Xiang Xiao.
- arch/ Common: Move up_pminitialize() after timer_initialize()
From ligd.
- arch/ Common: Align semi-hosting call style with other syscalls in
architecture-specific syscall.h. From Xiang Xiao.
- arch/ Common: Every file that uses serial IOCTLs (TIOC*) must
explicitly include nuttx/fs/ioctl.h. This was included previously
via sneak path in the now deleted arch/serial.h. From Gregory Nutt.
- arch/ Interfaces: Rename sched_process_cpuload to
nxsched_process_cpuload. All internal sched_ functions should be
prefixed with nx. From Valmantas Paliksa.
* ARMv7-A:
- ARMv7-A MMU: Updating the cp15_wrttb and cp15_wrdacr functions to
use inline assembly in the correct way. The incorrect method was
generating errors as ARMv7-a expects the MCR/MRC instructions to
provide registers as an argument(MRC p15, 0, <Rt>, c2, c0, 0) and
the code was providing a constant value(and hence the build
error). From Bilal Wasim.
- ARMv7-A: Remove inclusion pg_macros.h for armv7-a since this
header file does not exist. From zhangyuan7.
- ARMv7-A: Guard some assembly files if configuration not selected.
From zhangyuan7.
- ARMv7-A GIC: Fix assemble error when including gic.h From Xiang
Xiao.
- ARMv7-A GIC: Don't use GIC_ICDDCR_ENABLEGRP1 for GIC NONSECURE
since this bit doesn't exist in this mode. From liuzhuang.
* ARMv7-R:
- ARMv7-R Syscall: In arch/arm/include/syscall.h, add missing
inclusion of arch/armv7-r/syscall.h for Cortex-R. From Xiang Xiao.
* ARMv7-M:
- ARMv7-M Initialization: As noted by Roland Takacs in Bitbucket
issue 141, there is a compilation error for STM32 if CONFIG_NET and
CONFIG_NETDEV_LATEINIT are selected. That was due in part to the
commit which extended up_netinitialize() with a
!defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to
concrete implementations. I say "in part" because I don't think
that the original intent of commit 19e16cb was to enable an
alternative initialization of MCU internal Ethernet support but
rather to enable support of external Ethernet devices that may have
dependencies on, for example, SPI. However, this is still a proper
fix to avoid the compilation error that can occur with this
combination of configuration options. From Gregory Nutt.
- ARMv7-M Configuration: ARCH_HIPRI_INTERRUPT shouldn't select
ARMV7M_USEBASEPRI. First because that is a violation of the
layered nature of the Kconfig architecture, but also because then
Kconfig will generate errors when high priority interrupts are used
with other architectures. From Xiang Xiao.
- ARMv7-M Vector Table: Make the default NVIC_VECTAB_TBLOFF_MASK
safer. The base address of the new vector table must be aligned to
the size of the vector table extended to the next larger power of
2. From Xiang Xiao.
- ARMv7-M RAM Vectors: Correct bad NVIC_VECTAB_TBLOFF_MASK
definitions in previous commit. Were missing bits in the mask.
Raised DEBUGASSERT in armv7-m/up_ramvec_initialize.c line: 144.
From Mateusz Szafoni.
* Espressif ESP32 Drivers:
- ESP32 Timer ISR: Fix backward comparison. From Gregory Nutt.
- ESP32 Serial: Fix some backward arguments. Correct 2-stop bit
setting. From Gregory Nutt.
* Microchip/Atmel SAMD2x/L2x Drivers:
- SAMD2/L2 Serial: SAMD2/L2 serial driver. It needs
sam_usart_enable(). to work From Alan Carvalho de Assis.
* Microchip/Atmel SAMD3/4 Drivers:
- SAM3/4 Ethernet: Port Anthony Merlino's SAMv7 fix to similar
Ethernet driver for the SAM3/4. From Gregory Nutt.
* Microchip/Atmel SAMV7 Drivers:
- SAMv7 SPI: Fix DMA Tx/Rx timeout issue. From Kevin Liu.
- SAMv7 QSPI: Compile error when set CONFIG_SAMV7_QSPI_DLYBCT.
From Kevin Liu.
- SAMv7 Ethernet: The logic for determining the number of queues for
SAMV71 must be extended. All SAMv7 parts increase the number of
queues from 3 to 6 at revision B, not just the SAMV71. From
Gregory Nutt.
- SAMv7 Ethernet: Fixes rxdesc index logic to handle Buffer Not
Available (BNA) condition. If a SOF is found, but no EOF, don't
move past the frame. Instead, keep the index at the SOF buffer
until the rest of the data is written. This fixes a receiver
lockup condition where the peripheral and this driver get out of
sync with there head pointers. In this case the driver has moved
past buffers it owns, without clearing ownership, which results in
the peripheral and driver in a deadlock with each other. From
Anthony Merlino.
* Microchip/Atmel SAMA5Dx Drivers:
- SAMA5Dx Ethernet: Port Anthony Merlino's SAMv7 fix to similar
Ethernet driver for the SAMA5Dx. From Gregory Nutt.
* Microchip/Atmel SAMA5Dx Board:
- SAMA5D2-XULT: Move console from FLEXCOM4 to UART1. FLEXCOM4 does
not work for the Arduino serial. UART1 is used with the VCOM
provided by the EDBG. From Gregory Nutt.
* NXP i.MXRT:
- i.MXRT Clock Configuration: If SDRAM is activated it was only
running at 40MHz. This was because imxrt_clockconfig.c changed the
SEMC clock divider after the DCD was configured. This commit
corrects that. From Johannes.
* NXP i.MXRT Drivers:
- i.MXRT GPT: Correct register offsets. From David Sidrane.
- i.MXRT TMR: Fix addressing and restructure using common offset.
From David Sidrane.
- i.MXRT ADC: Error in offset. From David Sidrane.
* NXP/Freescacle Kinetis Boards:
- Teensy-3.x: Fix a mismatch in types in defconfig. From Gregory
Nutt.
* NXP LPC17xx:
- LPC176x Clock Configuration: The code preserves undocumented
reserved bits only if board does not set them to keep previous
behavior for boards where developers (hopefully) know what values
should be set into these bits. From Pavel Pisa.
- LPC17xx Clock Configuration: The enable of EMC clocks has to be
preserved when already enabled by loader. EMC and related pins
configuration has to be skipped if the system is run from SDRAM. A
region of SDRAM which is used by system must not be used for heap.
From Pavel Pisa.
* NXP LPC17xx Drivers:
- LPC17xx CAN: The name can_txready clashes with NuttX CAN core
global function. LPC178x has only single LPC17_SYSCON_PCLKSEL with
only single divisor. From Pavel Pisa.
* NXP LPC17xx Boards:
- Open1788: Add missing MPU configuration option. From Gregory Nutt.
* On Semi LC823450 Boards:
- LC823450-XGEVK: Remove -nostdinc to avoid build error From
Masayuki Ishikawa.
* STMicro STM32:
- STM32: Don't try including stm32_gpio.h from within chip/*.h
header files. Not only is bad style for a layered inclusion
system, but it doesn't always work. From Gregory Nutt.
* STMicro STM32 Drivers:
- STM32 PWM: Fix polarity and IDLE state configuration From Mateusz
Szafoni.
- STM32 ADC, PWM and TIM: (1) missing T1TRGO2 for JEXTSEL, (2) fix
sample time configuration for channels. The array index for
channels was missing, (3) fix TRGO/TRGO2 configuration, and (6)
support for advanced timers channel 5 and 6. From Mateusz Szafoni.
- STM32 Heap: Change 'if CONFIG_STM32_HAVE_CCM' to 'ifdef
CONFIG_STM32_HAVE_CCM' to avoid a warning when
CONFIG_STM32_HAVE_CCM is not defined. From Gregory Nutt.
- STM32 Oneshot Timer: Fix an error introduced be a previous timer
commit. From Maximilian Kriegleder
- STM32 Tickless Mode and Free-Running Timer: Apply Max's
stm32_oneshot.c fix to the tickless implementation and to the
freerunning time. From Mateusz Szafoni.
- STM32 PWM: Set CCPxP and CCPxNP bits if polarity is negative.
Missing commas in initializers could break compilation in certain
configurations. From Mateusz Szafoni.
- STM32F7 Interrupts: Add the missing macro STM32_IRQ_NIRQS used by
arch/arm/src/stm32f7/stm32_irq.c. From Kejun ZHOU.
- STM32H7 DMA: Fix AHB1 base addresses memory map. From Mateusz
Szafoni.
- STM32H7 SysTick: H7 appears to ignore the SysTick CLKSOURCE bit
and use the CPU clock in all cases. From Mateusz Szafoni.
* STMicro STM32 Boards:
- B-L072Z-LRWAN1: Fix typo in SPI1 pin definitions. From Mateusz
Szafoni.
- STM32F429I-DISCO: Handle multiple calls to the LCD
up_fbinitialize() function. From Gregory Nutt.
- STM32F769I-DISCO: Florian R. Hölzlwimmer reports that
stm32_appinitialize.c often has missing OK and NULL definitions.
This should be fixed by including sys/types.h where they are
defined. From GregoryN.
- STM32F769I-DISCO: Remove CONFIG_STM32F7_QUADSPI=y from the
configuration. This was apparently set before the implementation
was added. Now that the implementation was added, the configuration
will not build because it requires that QSPI GPIO pin definitions
be provided in the board.h header file. From Gregory Nutt.
* TI AM335x Drivers:
- AM335x Serial: Eliminate an error 'TIOCSBRK undeclared. From
Gregory Nutt.
* C Library/Header Files:
- strto*: In alll strto* function family, did't consume single '-'
or '+', allow sign in strotul(l)). From Johannes.
- getopt(): Add logic to reinitialize the stale context for the
FLAT/PROTECTED builds. In these builds getopt() global variables
may be shared by many tasks. If any task exits the getopt() loop
before all command line arguments have been parsed, then getopt()
global variables will be left in a bad state. The next time
getopt() is called, this logic should detect the bad state and
force the state of getopt() to be re-initialized so that it can be
reused. This logic is not full proof (it would fail, for example,
if you tried to parse the same command line twice) but should catch
the typical misuse cases. From Xiang Xiao.
- sscanf(): Initialized the lastc pointer to avoid the checks for
NULL. Removed a bug in the floating point parsing which allowed
several signs after each other. From Johannes.
- lib_vsprintf() (Legacy): No precision specifier resulted in
precision 0 but should be precision 6. From Johannes.
- lib_vsprintf() (Legacy): Correct justification for alternate forms
of %p and %P From ligd.
- lib_vsprintf() (Nano): Add long long support.
CONFIG_LIBC_LONG_LONG needs at least CONFIG_NANO_PRINTLEVEL 2.
Code size for compile without CONFIG_LIBC_LONG_LONG shouldn't be
affected. From Johannes.
- lib_vsprintf() (Nano): Remove CONFIG_LIBC_PRINT_MINIMAL. The
output in that configuration is unsatisfactory and inappropriate
for use with NuttX. For example, the output from many NSH commands
become corrupted and useless. Doesn't belong in this context.
From Gregory Nutt.
- libs/libc/symtab: Remove unused symtab_findorderedbyvalue(). From
Xiang Xiao.
- libs/libc/machine/arm: Fix the minor issue in libc arm machine
folder; MOVW/MOVT should use zero(not sign) extension. From Xiang
Xiao.
- libs/libc/libc.csv: Should be locale.h not local.h. From Joao
Matos.
- libs/libc/libc.csv: Needed logic for correct compilation if not
using CONFIG_LIBC_WCHAR. From Joao Matos.
- libxx: Always include libxx_cxa_guard.cxx in the build for for
uclibcxx. From zhangyuan7.
- include/stdbool.h: Define bool only when __cplusplus isn't
defined. From Xiang Xiao.
- include/nuttx/list.h: Added a Linux-compatible list
implementation. From zhuyanlin.
- include/nuttx/irq.h: Fix enter_critical_section/spin_lock_irqsave
macro typo error and remove the duplicated inclusion of
arch/irq.h. From Xiang Xiao.
- include/dlfcn.h: Correct naming of standard header file. Should
be dlfcn.h, not dllfcn.h. From Gregory Nutt.
- include/nuttx/nx/nxmu.h: This header file could be lethal; it
declared an #error if CONFIG_DISABLE_MQUEUE=y. From Gregory Nutt.
- include/nuttx/compiler.h: Important fix for C++ users.
compiler.h was using the value of __STDC_VERSION__ to determine if
inline functions are supported or not. If not then the keyword
inline was defined out. Good for C but bad for C++ because C++
does not define __STDC_VERSION__ at all. C++ applications may
draw in compiler.h indirectly via other head files and this can
result in C++ compiler problems since 'inline' is defined out.
This fix is to ignore the (undefined) __STDC_VERSION__ if
__cplusplus is defined. From Gregory Nutt.
- include/nuttx/elf.h: Adds missing extern "C" __cplusplus guard.
From Anthony Merlino.
- include/poll.h: Remove un-named union from 'struct pollfd'. It
is not required by OpenGroup.org and violates the NuttX C coding
standard because it is not C89 compatible. From Gregory Nutt.
- libs/libc/Makefile, libs/libnx/Makefile, and mm/Makefile: Remove
obj-path MKDEPS option since make dependency target (MT) is not
supported by some toolchains. From anchao.
- include/nuttx/compiler.h: Assume inline support if
__STDC_VERSION__ not defined. From Xiang Xiao.
* Tools:
- tools/convert-comments.c: Fix an error in handling of a blank C++
comment before a comment block. From Gregory Nutt.
- tools/lowhex.c: Fix an initialization problem that was causing
some odd behavior at the beginning of lines. From Gregory Nutt.
- tools/nxstyle.c: Fix logic that detects if an operator is
correctly delimited with spaces. sched/: Various changes because
sched/ C files were used as Guinea Pigs to test nstyle.c. From
Gregory Nutt.
- tools/nxstyle.c: Was confusing hex constants with strings staring
with 'x'. Added logic to complain about hex constants containing
upper case characters. From Gregory Nutt.
- tools/nxstyle.c: Fix logic error that prevent detecion of '/' and
'/=' as operators. net/: Minor updates resulting from testing
tools/nxstyle. From Gregory Nutt.
* NSH Library: apps/nshlib:
- NSH Console: Fix copy paste errors. Some Kconfig configuration
names needed CONFIG_ prefix. From David Sidrane.
- nshlib/nsh_timcmds.c: Uninitialized struct tm caused 'date -s' to
fail. From Valmantas Palikša.
* Examples: apps/examples:
- apps/examples/nxterm: Replace direct calls to nxtk_register()
with legal, indirect calls via boardctrl(BOARDIOC_NXTERM).
Replace calls to (deleted) nxterm_unregister(). The correct way
to delete a driver is by unlink'ing it. From Gregory Nutt.
- apps/examples/nxterm: Most configuration options were not
available in the Kconfig file. From Gregory Nutt.
- apps/examples/nxterm: Replace illegal direct calls to
nxterm_redraw() and nxterm_kbdin() with new boardctl() calls.
From Gregory Nutt.
- apps/examples/nxterm: NxWM passed the size of the NxTK sub-window
but nxterm example passed the size of the complete NxTK window.
They must be made consistent. From Gregory Nutt.
* Graphics Utilities: apps/graphics:
- apps/graphics/NxWidgets/nxwm: Correct an error in the type of the
return value in CCalibration. From Gregory Nutt.
- apps/graphics/NxWidgets/nxwm: Replace direct calls to
nxtk_register() with legal, indirect calls via
boardctrl(BOARDIOC_NXTERM). Replace calls to (deleted)
nxterm_unregister(). The correct way to delete a driver is by
unlink'ing it. From Gregory Nutt.
- apps/graphics/NxWidgets: Replace illegal direct calls to
nxterm_redraw() and nxterm_kbdin() with new boardctl() calls.
From Gregory Nutt.
* Modbus: apps/modbus:
- apps/modbus/Kconfig: Fix modbus master Kconfig. Modbus Master
ASCII compiles correctly. From Alan Carvalho de Assis.
* Network Utilities: apps/netutils:
- apps/netutils/dhcpc/dhcpc.c: Fix an error for DHCP REQUEST
receiving a NAK.In DHCP Request operation, no need to update
ciaddr to the client address and keep it as 0. From Kevin Liu.
* System Utilities: apps/system:
- apps/system/vi/vi.c: Fix an infinite loop bug that can show up in
some cases (plus a couple of other items). From Ken Pettit.
- apps/system/vi: Condition KEY_CMDMODE_REPEAT with
CONFIG_SYSTEM_VI_INCLUDE_COMMAND_REPEAT to avoid build error when
option is not selected. From Anthony Merlino.
- apps/system/nxplayer/nxplayer.c: Fix build error when only enable
CONFIG_AUDIO_EXCLUDE_VOLUME is enabled. From ZhongAn.
- apps/system/system/system.c: Correct a path name. From anchao.
- apps/system/taskset: Fix command arguments are not passed. From
Masayuki Ishikawa.
* Testing: apps/testing:
- apps/testing/ostest/timedmutex.c: pthread_mutex_timedlock()
returns EDTIMEDOUT on a timedout, not EAGAIN. From Gregory Nutt.
* Tools: apps/tools:
- apps/tools/mksymtab.sh: 'export LC_ALL=C' to get the traditional
sort order From anchao.