1096 lines
48 KiB
Plaintext
1096 lines
48 KiB
Plaintext
|
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.
|