1456 lines
68 KiB
Plaintext
1456 lines
68 KiB
Plaintext
|
NuttX-7.26
|
||
|
----------
|
||
|
|
||
|
The 126th release of NuttX, Version 7.26, was made on September 8, 2018,
|
||
|
and is available for download from the Bitbucket.org website. Note
|
||
|
that release consists of two tarballs: nuttx-7.26.tar.gz and
|
||
|
apps-7.26.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:
|
||
|
|
||
|
- General: Eliminate use of the non-standard type systime_t and
|
||
|
replace it the equivalent, standard type clock_t From Gregory Nutt.
|
||
|
- General: Replace non critical PANIC with DEBUGPANIC to save the
|
||
|
code space From Xiang Xiao.
|
||
|
- General: Replace all ASSERT with DEBUGASSERT to save the code
|
||
|
space From Xiang Xiao.
|
||
|
- Initialization: Add option to mount block device for
|
||
|
INIT_FILEPATH case. From anchao.
|
||
|
- clock(): clock_systimer() is no longer a system interface. It has
|
||
|
been replaced with the equivalent, standard interface clock().
|
||
|
Moved the implementation of clock() from the C library into the OS
|
||
|
core. This is necessary because it calls the (now) internal OS
|
||
|
function clock_systimer(). clock() is now accessed only via a
|
||
|
system call in certain configurations. From Gregory Nutt.
|
||
|
- clock Utilities: Move clock_timespec_[add|subtract] to
|
||
|
include/nuttx/clock.h From Xiang Xiao.
|
||
|
- Binary Loader: Add binfmt_initialize(). All binary formats are
|
||
|
now registered centrally vs. in board-specific logic. This
|
||
|
simplifies the usage of the binfmt subsystem. From Xiang Xiao.
|
||
|
- Binary Loader: Reference default symtab name to binfmt From anchao.
|
||
|
- mm: Add mm_heapmember function and reimplement kmm_heapmember base
|
||
|
on mm_heapmember since this function is very useful if multiple
|
||
|
heaps exist. From Xiang Xiao.
|
||
|
- mm: Add {kumm/kmm}_calloc API. Add calloc API for manage user
|
||
|
memory and kernel memory in Flat Build/Kernel Build without kernel
|
||
|
heap. From zhuyanlin.
|
||
|
- pthreads: Add support static pthread stack. Add standard
|
||
|
pthread_attr_setstack() and pthread_attr_getstack(). In all cases
|
||
|
where the stack is released, add check to see which allocator must
|
||
|
be used to free the stack: The user or the kernel allocator. From
|
||
|
xuanlin.
|
||
|
- Semaphores: Apply the semaphore wait function
|
||
|
nxsem_wait_uninterruptible(). This function is a wrapped version
|
||
|
of nxsem_wait() that is uninterruptible and convenient for use.
|
||
|
From liuhaiyang.
|
||
|
- Signals: Add default signal action to SIGKILL. From ligd.
|
||
|
- Signals: Update the signal default action logic to support
|
||
|
sigaction(). signaction() must be able to handle and input action
|
||
|
of SIG_DFL to setup the default signal action; it mast also return
|
||
|
SIG_DFL it is replacing the default action. From Gregory Nutt.
|
||
|
- Signals: Default Signal Actions. Change some types to
|
||
|
superficially simplify. Add configuration options to enabled
|
||
|
default signal behaviors on a per-signal basis. I don't think
|
||
|
users are prepared for SIGALRM to terminate the task (which is the
|
||
|
correct default behavior if you don't change it). Extend the
|
||
|
implementation of default signals so that it is totally table
|
||
|
driven and extensible by simply mondifying the content of const
|
||
|
tables. From Gregory Nutt.
|
||
|
- Signals: Add support for SIGINT in addition to SIGKILL.
|
||
|
- Signals: Add logic and an interface to determine if a signal can
|
||
|
be caught or ignored. sigaction now correctly returns EINVAL on
|
||
|
any attempt to catch or ignore such signals (only SIGKILL for now
|
||
|
and only if CONFIG_SIG_DEFAULT=y). From Gregory Nutt.
|
||
|
- Signals: Add support for default signal actions for SIGSTOP,
|
||
|
SIGSTP, and SIGCONT. Add procfs support to show stopped tasks.
|
||
|
From Gregory Nutt.
|
||
|
- Signals: Add nxsig_action() to solve a chicken and egg problem:
|
||
|
We needed to use sigaction to set default actions, but sigaction()
|
||
|
would refuse to set actions if the default actions could not be
|
||
|
caught or ignored. From Gregory Nutt.
|
||
|
- Signals: Add configuration option to selectively enabled/disable
|
||
|
default signal actions for SIGSTOP/SIGSTP/SIGCONT and SIGKILL/SIGINT.
|
||
|
- Signals: If a task/thread was already blocked when
|
||
|
SIGSTOP/SIGSTP was received, it will restart in the running state.
|
||
|
It will appear that to the task/thread that the blocked condition
|
||
|
was interrupt by a signal and returns the EINTR error. From
|
||
|
Gregory Nutt.
|
||
|
- Signals: Update signal default STOP action. If waitpid was
|
||
|
called with the WUNTRACED then wake up waitpid(). From Gregory
|
||
|
Nutt.
|
||
|
- IRQs: Monitor the IRQ execution time. This is very useful for
|
||
|
measuring the interrupt latency. From Xiang Xiao.
|
||
|
- IRQ Dispatch: Add support interrupt chains in NuttX. IRQ chain is
|
||
|
very useful in these cases: (1) Multiple hardware connect to the
|
||
|
same request line(e.g. PCI), (2) Need multiple driver to support
|
||
|
one hardware block (like Linux MFD) From zhuguangqing.
|
||
|
- Work Queue: Modify high priority work queue to support multiple
|
||
|
threads. From ligd.
|
||
|
- System Calls: Add support for getpeername() and get_sockname()
|
||
|
system calls. From Gregory Nutt.
|
||
|
- System Calls: svcall/sycall logic needs to get the ucontext
|
||
|
argument from R4 instead of stack since all syscall parameters pass
|
||
|
from registers in syscall.h From Xiang Xiao.
|
||
|
- CPU Load Measurement: Support the CPU load measurement using
|
||
|
timer_lowerhalf_s interface From Xiang Xiao.
|
||
|
- Assertions: Change CONFIG_BOARD_RESET_ON_CRASH to
|
||
|
CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to
|
||
|
board_reset() if in all implementations of up_assert() when
|
||
|
CONFIG_BOARD_RESET_ON_ASSERT=y. From Xiang Xiao.
|
||
|
- boardctl(): Add support for board_app_finalinitialize() From ligd.
|
||
|
- Architecture Interface: Add prototype for an architecture-specific
|
||
|
up_trigger_irq function. From dongjianli.
|
||
|
- Architecture Interface: Add the garbage collection hook so each
|
||
|
architecture can do custom memory cleanup if necessary. From Xiang
|
||
|
Xiao.
|
||
|
- Architecture Interface: Add architecture-specific prototypes for
|
||
|
conversions between physical and virtual address. From ligd.
|
||
|
|
||
|
* File Systems/Block and MTD Drivers
|
||
|
|
||
|
- ProcFS: Add support for a procfs entry that will permit examining
|
||
|
the environment of any task. From Gregory Nutt.
|
||
|
- ProcFS: Add support for proc/self/, a convenient way for getting
|
||
|
information about the currently running task. From Gregory Nutt.
|
||
|
- HostFS: Add support for open() append mode From anchao.
|
||
|
- HostFS: Add ftruncate support. From Xiang Xiao.
|
||
|
- HostFS: Remove ARCH_SIM dependence since other architectures
|
||
|
(e.g., arm semihosting) could support hostfs too From Xiang Xiao.
|
||
|
- HostFS: Support remote directory names without a trailing '/'
|
||
|
From ligd.
|
||
|
- HostFS: Add re-try when hostfs mount() fails From ligd.
|
||
|
- NFS: Update NFS client mount to VER3 From zhangyuan7.
|
||
|
- Partitions: Add PTABLE parser fs/partion: Add a partition parser
|
||
|
framework fs/driver/fs_blockpartition.c: Add
|
||
|
register_blockpartition for block partition From Xiang Xiao.
|
||
|
- MTD: Add gd25 driver From wangyanjiong.
|
||
|
- MTD: In MTD partitions, copy the partition name to internal
|
||
|
buffer so that the caller can free the name argument From Xiang
|
||
|
Xiao.
|
||
|
- MTD: Support initialization of an FTL block device with a custom
|
||
|
name From Xiang Xiao.
|
||
|
- MTD: FTL: Reduce size of stack buffer from 64 to a maximum size
|
||
|
as determined from NAME_MAX. From Gregory Nutt.
|
||
|
- VFS poll(): Send poll() notification when the Tx buffer is flushed
|
||
|
From ligd.
|
||
|
- VFS fstat(): Add file_fstat() function for internal OS use. From
|
||
|
ligd.
|
||
|
- VFS fcntl(): Add file_fcntl, psock_fcntl, and psock_dupsd for use
|
||
|
within the kernel. From Xiang Xiao.
|
||
|
- VFS dup2(): Addpsock_dupsd for use within the kernel. From Xiang
|
||
|
Xiao.
|
||
|
- VFS poll(): Add poll use in kernel space. From dongjianli.
|
||
|
- VFS select(): Make select be more consistent with Linux man page:
|
||
|
'The timeout ... Some code calls select() with all three sets
|
||
|
empty, nfds zero, and a non-NULL timeout as a fairly portable way
|
||
|
to sleep with subsecond precision.' From anchao.
|
||
|
|
||
|
* Networking/Network Drivers:
|
||
|
|
||
|
- Sockets: Add getpeername() support From ligd.
|
||
|
- sockopt(): Move psock check from [get|set]sockopt to
|
||
|
psock_[get|set]sockopt From Xiang Xiao.
|
||
|
- getsockname(): Add psock_getsockname function From Xiang Xiao.
|
||
|
- Netlink Sockets: This brings in a fragmentary, experimental
|
||
|
implementation of NETLINK sockets. There is not too much to that
|
||
|
socket support on this initial commit, just the netlink socket
|
||
|
framework. However, I decided to bring it into master because
|
||
|
there is a enough that I would not want to lose what is in place.
|
||
|
And since it is dependent on CONFIG_EXPERIMENTAL, its presence on
|
||
|
master should be innocuous. From Gregory Nutt.
|
||
|
- Interface Indexes: Add driver interface index support. Add
|
||
|
implementation of if_nametoindex() and if indextoname(). Raw
|
||
|
AF_PACKET sockets now depend on CONFIG_NETDEV_IFINDEX. Add syscall
|
||
|
support for if_nametoindex() and if_indextoname(). Includes an
|
||
|
algorithm to prevent an interface index from being reused until all
|
||
|
network interfaces have by assigned once. The prevents removable
|
||
|
devices from being removed, unregistered and re-installed,
|
||
|
re-registered and keeping the same interface index. From Gregory
|
||
|
Nutt.
|
||
|
- Driver Interface: Add devif_loopback() to check the loopback
|
||
|
case where a packet is being sent to itself. Modify the net driver
|
||
|
to call this function in this case. This function will simply
|
||
|
re-inject the packet back into the network and the network driver
|
||
|
will not put anything on the wire. From Xiang Xiao.
|
||
|
- Network Devices: Remove all references to CONFIG_NET_USER_DEVFMT.
|
||
|
That feature is now unconditionally enabled. This was done because
|
||
|
(1) the feature does not require very much additional memory, and
|
||
|
(2) it causes confusion in the configuration due to the additional
|
||
|
complexity. Any network drivers that fail to zero the device
|
||
|
structure interface name field (d_ifname) because calling
|
||
|
netdev_register() will, however, get a nasty surprise. From
|
||
|
Gregory Nutt.
|
||
|
- Network Devices: Add support for Microchip LAN91C111 driver From
|
||
|
Xiang Xiao.
|
||
|
- Network Devices: netdev_findby_ipv[4|6]addr return
|
||
|
netdev_default() as last resort but don't return loopback device
|
||
|
if another network device is in the UP state. From Xiang Xiao.
|
||
|
- Network Device IOCTLs: Add si_ioctl callback and net_ioctl_arglen
|
||
|
so usrsock could forward the ioctl to the remote end/ From
|
||
|
dongjianli.
|
||
|
- IPv6: Rename g_ipv6_allzeroaddress with the more meaning
|
||
|
g_ipv6_unspecaddr since the all-zero address is the IPv6
|
||
|
unspecified address (sometime IN6_ADDR_ANY). Replace more inline
|
||
|
tests for IPv6 multicast with common net_is_addr_mcast() macro.
|
||
|
From Gregory Nutt.
|
||
|
- ARP: arp_find() now checks if the target IP belongs to one of the
|
||
|
local network devices. From Xiang Xiao.
|
||
|
- ARP: Make the function arp_find() thread-safe. It now returns a
|
||
|
copy of the MAC address from the ARP table entry, rather than a
|
||
|
potentially unstable reference to the ARP table entry. From
|
||
|
Gregory Nutt.
|
||
|
- TCP: Re-work of TCP receive window size algorithm. The new logic
|
||
|
is based only on the ability to buffer TCP read-ahead data. From
|
||
|
Gregory Nutt.
|
||
|
- UDP: Add support for the UDP_BINDTODEVICE protocol socket option
|
||
|
From Sebastien Lorquet.
|
||
|
- Slip: Uncomment the prompt of NET_SLIP_PKTSIZE in Kconfig file.
|
||
|
From Xiang Xiao.
|
||
|
- USRSOCK: Combine some the duplicated logic. From Xiang Xiao.
|
||
|
- USRSOCK: Optimize option dependence From Xiang Xiao.
|
||
|
- USRSOCK: Add the listen/accept/getpeername/ioctl support From
|
||
|
dongjianli.
|
||
|
|
||
|
* Other Common Device Drivers:
|
||
|
|
||
|
- Analog DAC: Add driver for digital to analog converter DAC7571.
|
||
|
Nucleo-L422KC: Add support for a connect DAC7571 converter. From
|
||
|
Daniel Pereira Carvalho.
|
||
|
- Audio Interface: Change member samp of apb to pointer so driver
|
||
|
can customize sample buffer allocation From ZhongAn.
|
||
|
- Audio Interface: Add ioctl cmd 'AUDIOIOC_SETBUFFERINFO' so user
|
||
|
space could config the buffer From ZhongAn.
|
||
|
- Audio Interface: Add hardware format support From anchao.
|
||
|
- I2S Interface: Add i2s_rxchannels and i2s_txchannels methods to
|
||
|
the I2S lower half interface. From ZhongAn.
|
||
|
- Audio: Move the I2S character driver to a dedicated folder. From
|
||
|
Xiang Xiao.
|
||
|
- Audio: Add audio_i2s device driver. From ZhongAn.
|
||
|
- Audio: Add the composite audio driver From Xiang Xiao.
|
||
|
- Crypto: Move dev_urandom.c into new crypto folder. From Xiang
|
||
|
Xiao.
|
||
|
- GPIO driver: Add gpio_pin_unregister function to GPIO driver
|
||
|
driver/ioexpander: Add pinset struct to GPIO driver for interrupt
|
||
|
pins larger than 64. Initialize pintype/inttype when registering
|
||
|
ioexpander device. Add SETPINTYPE ioctl command to the GPIO
|
||
|
driver. From zhuyanlin.
|
||
|
- I2C Interface: Add a definition to distinguish a new START of
|
||
|
messages from a repeated start. No lower-half I2C drivers actually
|
||
|
implement this new flag bit, however. In I2C write/read logic use
|
||
|
new repeated START definition where appropriate. Rename
|
||
|
I2C_M_NORESTART to I2C_M_NOSTART since it may be used in other
|
||
|
contexts than a repeated start. Add comments to clarify setup for
|
||
|
repeated start. From Gregory Nutt.
|
||
|
- I2C: Add the standard speed macros. From dongjiuzhu.
|
||
|
- Leds: Add support to MAX7219 to control 7-segment displays. From
|
||
|
Alan Carvalho de Assis.
|
||
|
- Power: PM: Add pm_stay and pm_relax function so special apps(e.g.
|
||
|
mediaplayer) could disable suspend during playback much like linux
|
||
|
kernel counterpart From Xiang Xiao.
|
||
|
- Power: PM: Add pm_querystate function From zhuguangqing.
|
||
|
- Power: PM: Don't update the power state in work thread: (1)
|
||
|
Simplify the code logic and remove the work queue dependence, (2)
|
||
|
Power calculation is too simple to delay into the work queue From
|
||
|
Xiang Xiao.
|
||
|
- Power: PM: Decrease the power state in the reverse order. Since
|
||
|
the child driver need power off before parent driver. From
|
||
|
zhuguangqing.
|
||
|
- Power: PM: Make power manager service available as soon as
|
||
|
possible: (1) Initialize g_pmglobals at the definition, (2) skip
|
||
|
hold the lock if OS isn't ready From Xiang Xiao.
|
||
|
- Power: PM: Add PM_RESTORE to notify driver that device exit WFI
|
||
|
so the driver could restore state. For example, WDT may stop
|
||
|
counting before enter low power state and restore the counting
|
||
|
again in PM_RESTORE notification From zhuguangqing.
|
||
|
- Power: PM: Add timer to decrease PM level automatically. From
|
||
|
ligd.
|
||
|
- PTYs: Add support so that a PTY can poll for both IN/OUT event
|
||
|
simultaneously. From ligd.
|
||
|
- PWM: Move pwm.c into pwm folder From Xiang Xiao.
|
||
|
- RTC Interface: Extend struct rtc_time by adding. From Xiang
|
||
|
Xiao. tm_nsec if RTC supports hiresolution time. From Xiang Xiao.
|
||
|
- Sensors: Add support for Telair T6713 carbon dioxide sensor. From
|
||
|
Juha Niskanen.
|
||
|
- Sensors: Add support for LSM303AGR and LSM6DSL sensors From
|
||
|
DisruptiveNL.
|
||
|
- Sensors: Add driver for DHTxx sensor. From Ouss4.
|
||
|
- syslog: Enable a partial, crippled version of syslog_flush();
|
||
|
Call syslog_flush() from assertion handling logic of all
|
||
|
architectures. From Gregory Nutt.
|
||
|
- syslog: Channel configuration. Decouple SYSLOG_SERIAL_CONSOLE and
|
||
|
ARCH_LOWPUTC. Since some hardware can output log to the special
|
||
|
debug channel not serial. From anchao.
|
||
|
- syslog: Support pre-pending a prefix string to log output if
|
||
|
enabled. This very useful to identify which CPU send out the log
|
||
|
in AMP SoC. From anchao.
|
||
|
- Serial: Add Ctrl-C/Ctrl-X support. From ligd.
|
||
|
- Serial: Support UART direct write for non console device From
|
||
|
xuanlin.
|
||
|
- Serial: It is no longer necessary to restrict Ctrl-C handling to
|
||
|
the FLAT build sched/signal: Add a new configuration option to
|
||
|
select signal default actions, separate handling of signal default
|
||
|
actions from both task startup logic and from the serial TTY
|
||
|
Ctrl-C logic. Add a signal set in the group structure to keep
|
||
|
track of what signals have been set to the default action. In
|
||
|
dispatching signals in PROTECTED or KERNEL mode, use this signal
|
||
|
set to determine if the default signal handler is attached and
|
||
|
dispatch the signal in kernel mode for the default actions. From
|
||
|
Gregory Nutt.
|
||
|
- Serial: Integrate new Ctrl-C logic with the ISIG flag in the
|
||
|
termios c_lflag. From Gregory Nutt.
|
||
|
- Serial: Use SIGINT instead of SIGKILL when control-C is pressed.
|
||
|
From Gregory Nutt.
|
||
|
- Serial: Add support for Ctrl-Z. This works just like the
|
||
|
recently added Ctrl-C support except that SIGSTP is sent when the
|
||
|
Ctrl-Z characters is encountered vs. SIGINT. From Gregory Nutt.
|
||
|
- 16550 UART: Add a configuration, analogous to the STM32
|
||
|
configuration option, to suppress the NuttX standard re-ordering
|
||
|
for /dev/ttySN for special case of the 16550 UART.
|
||
|
- 16550 UART: Add CONFIG_SERIAL_UART_ARCH_MMIO option so the a
|
||
|
memory mapped device doesn't need to provide uart_getreg() and
|
||
|
uart_putreg() implementations.
|
||
|
- 16550 UART: Add stub implementations of DMA-related methods in the
|
||
|
16550 UART v-table. From ligd.
|
||
|
- 16550 UART: Add serial termios handling From anchao.
|
||
|
- 16550 UART: Support 16550 auto hardware flow control
|
||
|
drivers/serial/uart_16550.c: Add configuration option
|
||
|
CONFIG_16550_SUPRESS_INITIAL_CONFIG. This is identical to the
|
||
|
standard configuration in arch/Kconfig
|
||
|
CONFIG_SUPPRESS_UART_CONFIG, but with scope of only the 16550
|
||
|
driver. From Xiang Xiao.
|
||
|
- syslog: Make timestamp output same as linux kernel. It's very
|
||
|
useful if NuttX syslog retarget to Linux syslog. From Xiang Xiao.
|
||
|
- Timers: Add maxtimeout method to the struct timer_ops_s interface
|
||
|
From Xiang Xiao.
|
||
|
- Timers: Add a new method to the struct oneshot_operations_s
|
||
|
interface to get the current time from a oneshot timer driver (if
|
||
|
it is available from the lower half) From Xiang Xiao.
|
||
|
- Timers: Implement timer arch API on top of timer driver. From
|
||
|
Xiang Xiao.
|
||
|
- Timers: Implement alarm arch API on top of oneshot driver
|
||
|
interface. From Xiang Xiao.
|
||
|
- Timers: Implement RTC arch API on top of RTC driver interface.
|
||
|
From Xiang Xiao.
|
||
|
- CDC/ECM: Adds USB device support for CDC/ECM From Michael Jung.
|
||
|
- USB Host: Add support for the Maxim M3421E USB host driver. Not
|
||
|
yet fully tested. From Gregory Nutt.
|
||
|
|
||
|
* General Architecture-Specific:
|
||
|
|
||
|
- All architectures: Make sure the up_irq_enable() is available on
|
||
|
all architectures. From Gregory Nutt.
|
||
|
|
||
|
* Simulation
|
||
|
|
||
|
- Simulator Configurations: Add dsptest configuration. From Mateusz
|
||
|
Szafoni.
|
||
|
- Simulator: In network driver (1) Remove up_comparemac() check for
|
||
|
matching MAC address. Let's trust that the tap device just return
|
||
|
the packet which belong to us like other real network device
|
||
|
hardware. (2) Add network device statistics support. From Xiang Xiao.
|
||
|
|
||
|
* ARM:
|
||
|
|
||
|
- ARM (all): Add CONFIG_DEBUG_MEMFAULT to Kconfig. From Masayuki
|
||
|
Ishikawa.
|
||
|
- ARM: (1) Add semihost support for syslog, (2) Add semihost support
|
||
|
for HostFS From Gregory Nutt.
|
||
|
|
||
|
* ARMv6-M:
|
||
|
|
||
|
- ARMv6-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c
|
||
|
From Masayuki Ishikawa.
|
||
|
|
||
|
* ARMv7-M:
|
||
|
|
||
|
- ARMv7-M: Removes support for the dedicated vector handling from the
|
||
|
many older architectures. Only common vectors are now supported.
|
||
|
From Gregory Nutt.
|
||
|
- ARMv7-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c
|
||
|
From Masayuki Ishikawa.
|
||
|
- ARMv7-M: Implement SYSTICK timer driver From Xiang Xiao.
|
||
|
- Simulator: Add loadable demo for arch sim. From anchao.
|
||
|
- ARMv7-M: Add logic to trigger ARMv7-M interrupts and exceptions.
|
||
|
From Gregory Nutt (from sample logic by Xiang Xiao).
|
||
|
- ARMv7-M: Add NVIC definitions needed by up_trigger_irq(). From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
* ARMv7-R:
|
||
|
|
||
|
- ARMv7-R: Add general interrupt controller. This is based on
|
||
|
ARMv7-A gic controller code. From EunBong Song.
|
||
|
- ARMv7-R: Add invalidate dcache in arm_head.S. From EunBong Song.
|
||
|
|
||
|
* Infineon XMC4xxx Drivers:
|
||
|
|
||
|
- XMC4 GPIO: Add a specific bit encoding to GPIO driver for
|
||
|
opendrain GPIO pin. From Alan Carvalho de Assis.
|
||
|
|
||
|
* Infineon XMC4xxx Boards:
|
||
|
|
||
|
- XMC4500-Relax: Add support to MAX6675 on XMC4500-Relax board.
|
||
|
From Alan Carvalho de Assis.
|
||
|
|
||
|
* Microchip PIC32MX Boards;
|
||
|
|
||
|
- PIC32MX: Update some PIC32MX configurations so that either the
|
||
|
MPLAB or Penguino toolchains may be used. From Gregory Nutt.
|
||
|
|
||
|
* Microchip/Atmel SAMD2x/L2x:
|
||
|
|
||
|
- SAMD2x/L2x: Rename all usage of samdl/SAMDL to samd2l2/SAMD2L2 to
|
||
|
make room in the name space for samd5e5/SAMD5E5 From Gregory Nutt.
|
||
|
|
||
|
* Microchip/Atmel SAMD5x/E5x:
|
||
|
|
||
|
- SAMD5x/E5: Add a port to the SAMD5x/E5x MCU family. From Gregory
|
||
|
Nutt.
|
||
|
|
||
|
* Microchip/Atmel SAMD5x/E5x Drivers:
|
||
|
|
||
|
- SAMD5x/E5x SPI/I2C: Bring in untested SPI and I2C drivers from
|
||
|
SAMD2L2. From Gregory Nutt.
|
||
|
- SAMD5x/E5x DMA: Leverage the SAMD2L2 DMA controller. From Gregory
|
||
|
Nutt.
|
||
|
- SAMD5x/E5x USB: Bring the SAMDL2 USB driver into the SAMD5E5
|
||
|
port. From Gregory Nutt.
|
||
|
|
||
|
* Microchip/Atmel SAMD5x/E5x Boards:
|
||
|
|
||
|
- Metro M4: Add support for the Adafruit Metro M4 board. From
|
||
|
Gregory Nutt.
|
||
|
- Metro M4: Add an option to build the Metro M4 image to run out of
|
||
|
SRAM. This ought to be a safer and quicker way to do the initial
|
||
|
bring-up (having bricked the first Metro M4 due to a bad FLASH
|
||
|
image). From Gregory Nutt.
|
||
|
- Metro M4: Add a configuration option to use OSCULP32K instead of
|
||
|
XOSC32K. From Gregory Nutt.
|
||
|
- Metro M4: After some final fixes related to the SERCOM console,
|
||
|
the basic NSH configuration appears fully functional. From
|
||
|
Gregory Nutt.
|
||
|
- Metro M4: Verify the CMCC and enable it by default in the NSH
|
||
|
configuration. From Gregory Nutt.
|
||
|
|
||
|
* Microchip/Atmel SAMv7 Drivers:
|
||
|
|
||
|
- SAMv7 CAN: Add ability for CAN BUS_OFF autorecovery according
|
||
|
ISO11898-1:2015. With this change we added an ioctl for triggering
|
||
|
the autorecovery sequence for BUS_OFF to the CAN-driver and the
|
||
|
SAMV7 low-level driver. According the datasheet: If the device
|
||
|
goes Bus_Off, it will set MCAN_CCCR.INIT of its own accord,
|
||
|
stopping all bus activities. Once MCAN_CCCR.INIT has been cleared
|
||
|
by the processor (application), the device will then wait for 129
|
||
|
occurrences of Bus Idle (129 * 11 consecutive recessive bits)
|
||
|
before resuming normal operation. At the end of the Bus_Off
|
||
|
recovery sequence, the Error Management Counters will be reset.
|
||
|
During the waiting time after the resetting of MCAN_CCCR.INIT, each
|
||
|
time a sequence of 11 recessive bits has been monitored, a Bit0
|
||
|
Error code is written to MCAN_PSR.LEC, enabling the processor to
|
||
|
readily check up whether the CAN bus is stuck at dominant or
|
||
|
continuously disturbed and to monitor the Bus_Off recovery
|
||
|
sequence. MCAN_ECR.REC is used to count these sequences. From
|
||
|
Frank Benkert.
|
||
|
|
||
|
* NXP Freescale i.MX RT Drivers:
|
||
|
|
||
|
- i.MXRT RTC: Add support for the i.MXRT RTC. This is code complete
|
||
|
(with limited features and options) but untested. The HPRTC is
|
||
|
functional. However, if the LPSRTC is enabled, then there is a
|
||
|
hang during LPSRTC initialization. It appears that there is some
|
||
|
problem in providing clocking and initializing the LPSRTC domain.
|
||
|
From Gregory Nutt.
|
||
|
- i.MXRT SNVS: Add trivial SNVS from Rev 1. of the Reference Manual.
|
||
|
From Gregory Nutt.
|
||
|
- i.MXRT LSPI: IMXRT1050 LPSPI register and bit definitions added.
|
||
|
From Ivan Ucherdzhiev.
|
||
|
- i.MXRT Serial: IMXRT1050 LPUART TERMIOS support added. From Ivan
|
||
|
Ucherdzhiev.
|
||
|
|
||
|
* NXP Freescale i.MX RT Boards:
|
||
|
|
||
|
- IMXRT1050-EVK: Add knsh configuration. PROTECTED mode NSH build.
|
||
|
From Gregory Nutt.
|
||
|
|
||
|
* NXP Freescale Kinetis:
|
||
|
|
||
|
- Kinetis: Add DMA support. From David Sidrane.
|
||
|
|
||
|
* NXP Freescale Kinetis Drivers:
|
||
|
|
||
|
- Kinetis: Use circular DMA as an option to augment the RX FIFOs in
|
||
|
the Serial driver. From David Sidrane.
|
||
|
|
||
|
* NXP LPC54xx:
|
||
|
|
||
|
- LPC54xx: The LPC54608 can only run at a maximum frequency of
|
||
|
180Mhz. This configuration requires uses the clk_in, external
|
||
|
crystal clock, to drive the PLL. When that input was selected, the
|
||
|
board bootup failed waiting for the PLL to lock. After referring
|
||
|
the driver from NXP, we should turn on power sources for the ext
|
||
|
clock if system pll input select clk_in. NOTE that the LPC54628
|
||
|
did not require this step... perhaps because the system oscillator
|
||
|
power was already enabled. From kxjiang.
|
||
|
- LC823450: Add support for mpu and userspace LC823450-XGEVK: Add
|
||
|
kostest PROTECTED build LC823450-XGEVK: Add knsh PROTECTED build
|
||
|
From Masayuki Ishikawa.
|
||
|
|
||
|
* NXP LPC54xx Boards:
|
||
|
|
||
|
- Lpcxpresso-LPC54628: Update lvgl board config to use the new
|
||
|
version From Alan Carvalho de Assis.
|
||
|
|
||
|
* On Semi LPC23450 Drivers:
|
||
|
|
||
|
- LC823450 Bluetooth: Add lc823450 Bluetooth support. From Masayuki
|
||
|
Ishikawa.
|
||
|
- LC823450 I2S: Add tx start threshold to lc823450_i2s.c In
|
||
|
addition, lc823450_i2s_send() now accepts byte-aligned stream.
|
||
|
From Masayuki Ishikawa.
|
||
|
- LC823450 SPI: Add SPI flash driver for lc823450. NOTE: Only bus
|
||
|
accelerator mode is supported. From Masayuki Ishikawa.
|
||
|
- LC823450: Change C-Buffer under-level control. The under-level
|
||
|
setting was changed from 1KB to 55KB. In previous implementation,
|
||
|
the setting can be changed by the tx threshold but it is fixed at
|
||
|
startup. Also, check write size and adjust alignment if needed.
|
||
|
From Masayuki Ishikawa.
|
||
|
|
||
|
* On Semi LPC23450 Boards:
|
||
|
|
||
|
- LC823450-XGEVK: Add loopback test for digital MIC on lc823450 via
|
||
|
i2schar driver. From Masayuki Ishikawa.
|
||
|
- LC823450-XGEVK: Add lc832450 elf test. From Masayuki Ishikawa.
|
||
|
- LC823450-XGEVK: Add posix_spawn configuration From Masayuki
|
||
|
Ishikawa.
|
||
|
|
||
|
* STMicro STM32:
|
||
|
|
||
|
- STM32 L4: Add initial support to STM32L4+ chips From Juha Niskanen.
|
||
|
- STM32 H7: A partial port to the STMicro STM32H7 by Simon Laube was
|
||
|
brought in from the PX4 repositories. Numerous changes were
|
||
|
make(by Mateusz Szafone). The basic STM32 H7 NSH configuration is
|
||
|
now functional, thanks to Mateusz Szafoni.
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- STM32 F0, F1-F4, F7, L4, H7: Added Single Wire Kconfig variable.
|
||
|
From David Sidrane.
|
||
|
- STM32 DAC: Set OUTEN bit for DAC1CH2 and DAC2CH1 power/motor.
|
||
|
Direction parameter is now int8 + add overload fault. From Mateusz
|
||
|
Szafoni.
|
||
|
- STM32 F1-F4 ADC: Allow multiple channels without DMA on
|
||
|
STM32L15XX. From Juha Niskanen.
|
||
|
- STM32 F1: Add FLASH register definitions for F1 parts that have
|
||
|
dual banked FLASH. From Dmitriy Linikov.
|
||
|
- STM32 F2: Added progmem interface support for STM32 F2 From
|
||
|
Dmitriy Linikov.
|
||
|
- STM32 F4: Ports STM32 LTDC and STM32 DMA2D to use the
|
||
|
framebuffer interface From Marco Krahl.
|
||
|
- STM32 F7: This change ports Marco Krahl's STM32F4 framebuffer
|
||
|
overlays for the LTDC and DMA2D into the STM32F7. That driver was
|
||
|
same as the STM32 F4 driver. From Gregory Nutt.
|
||
|
- STM32 F7: Port input capture from stm32. From Juha Niskanen.
|
||
|
- STM32 F7 FLASH: Ported the STM32 F2/F4 driver to the STM32 F7
|
||
|
platform. From Evgeniy Bobkov.
|
||
|
- STM32 F7 SDMMC: Add SDIO card support to SDMMC driver. From
|
||
|
Ramtin Amin.
|
||
|
- STM32 F7 Serial: Previous logic would invalidate the data cache as
|
||
|
each byte was read from the DMA buffer. This change adds logic to
|
||
|
invalidate the data cache less frequently by monitoring the state
|
||
|
of the Rx DMA buffer cache coherency and invalidating only regions
|
||
|
as necessary. From Evgeniy Bobkov.
|
||
|
- STM32 F7: Add up_stackcheck.c From Daniel Agar.
|
||
|
- STM32 F7: Port the low-level PM functions to STM32 F7. From Juha
|
||
|
Niskanen.
|
||
|
- STM32 L4: STM32L4 has fetchadd and testset From Juha Niskanen.
|
||
|
- STM32 L4: Added custom pin mapping for STM32L4X2XX processors.
|
||
|
From Daniel P. Carvalho.
|
||
|
- STM32 L4 FLASH: stm32l4xrxx: allow board to override flash wait
|
||
|
states From Juha Niskanen.
|
||
|
- STM32 L4: Some updates to analog peripherals ADC, COMP and DFSDM
|
||
|
for STM32L4XR From Juha Niskanen.
|
||
|
- STM32 L4: Add getstatus and getperiod() method to the timer
|
||
|
driver (includes coding standard changes made prior to commit)
|
||
|
From Goden Freemans.
|
||
|
- STM32 H7: Remove old references to RXDMA. Add configuration
|
||
|
- STM32 H7: Remove old references to RXDMA. Add configuration
|
||
|
option to select the Rx FIFO threshold level. From Gregory Nutt.
|
||
|
|
||
|
* STMicro STM32 Boards:
|
||
|
|
||
|
- STM32F103 Minimum: Add blackpill LED support From Russ Webber.
|
||
|
- Viewtool-STM32F107: Add a TCP performance test using
|
||
|
apps/examples/tcpblaster. From Gregory Nutt.
|
||
|
- Viewtool-STM32F107: Add support for the MAX3421E to the
|
||
|
Viewtool-STM32F107 board support From Gregory Nutt.
|
||
|
- STM32F334-DISCO: Use a PID controller from libdsp in the BuckBoost
|
||
|
driver. From Mateusz Szafoni.
|
||
|
- STM32F4-Discovery: Remove STM32F4BB dependence from RNDIS; add
|
||
|
RAMDISK support. From Alan Carvalho de Assis.
|
||
|
- STM32F4-Discovery Add board support for MAX7219 as numeric display
|
||
|
controller. From Alan Carvalho de Assis.
|
||
|
- Olimex-STM32-P407: Add kernel ELF (kelf) configuration. From
|
||
|
Gregory Nutt.
|
||
|
- Olimex-STM32-P407: Add a kmodule configuration that can be used
|
||
|
for testing installation of kernel modules in the protected build.
|
||
|
From Gregory Nutt.
|
||
|
- Olimex-STM32-P407: Add logic to support initialization of the
|
||
|
kernel module symbol table installed in the pass1/ directory during
|
||
|
the application phase of the build. The kmodule configuration
|
||
|
appears to be fully functional. From Gregory Nutt.
|
||
|
- Olimex-STM32-P407: Add board support for the DHTxx sensor. From
|
||
|
Ouss4.
|
||
|
- STM32F476G-DISCO: Add support for STM32F746G-disco board LCD.
|
||
|
From Marcin Wyrwas.
|
||
|
- STM32F476G-DISCO: Add a configuration to build working nxdemo
|
||
|
application From Fanda.
|
||
|
- STM32F476G-DISCO: Add support for STM32F746G-disco board SDRAM
|
||
|
Changed fb config to use SDRAM. From Marcin Wyrwas.
|
||
|
- STM32F476G-DISCO: Add touchscreen support and a LittlevGL demo for
|
||
|
STM32F746G-DISCO From Marcin Wyrwas.
|
||
|
- Nucleo-L476RG: Add support for an external SPI-driven SD card on
|
||
|
the Nucleo-L476RG. From Gregory Nutt.
|
||
|
- Nucleo-L476RG: Add support for LSM303AGR and LSM6DSL sensors From
|
||
|
DisruptiveNL.
|
||
|
- Nucleo-H743ZI: Use Nucleo Virtual console as default console in
|
||
|
the NSH configuration From Mateusz Szafoni.
|
||
|
- STM32L4R9-DISCO: Add stm32l4r9ai-disco support. From Juha Niskanen.
|
||
|
- B-L475E-IOT01A: Add timer driver support. From Goden Freemans.
|
||
|
|
||
|
* Libraries/Header Files:
|
||
|
|
||
|
- libc endian: Add support for endian.h. From Gregory Nutt.
|
||
|
- libc net: Add inet_aton() From Juha Niskanen.
|
||
|
- libc netdb: Add getaddrinfo() and friends. From Juha Niskanen.
|
||
|
- libc termios: Add lib_cfmakeraw.c From Masayuki Ishikawa.
|
||
|
- libc stdlib: Add implementation of random() and srandom(). From
|
||
|
Gregory Nutt.
|
||
|
- libc unistd: Add a crippled version of daemon(). From Gregory Nutt.
|
||
|
- libdsp: All floats with f-sufix libdsp: (1) add precision option
|
||
|
for library, (2) add debug option for library and assertions in
|
||
|
functions, (3) add current samples correction for SVM3, (4) add
|
||
|
some motor control specific functions, (5) add basic speed
|
||
|
observer, (6) fix phase shift in SMO observe, (7) add more logic to
|
||
|
FOC. From Mateusz Szafoni.
|
||
|
- include/nuttx/compiler.h, include/poll.h: Add logic to determine
|
||
|
if the compiler supports anonymous structures and unions. From
|
||
|
Gregory Nutt.
|
||
|
- include/nuttx/mutex.h: Add inline wrapper functions to more
|
||
|
clearly support semaphores when used as mutexs. From QianWenfa.
|
||
|
- include/nuttx/nuttx.h: Added nuttx.h header file which is
|
||
|
analogous to the linux.h header file. Currently, it contains on
|
||
|
the definition of the container_of() macro. From zhuyanlin.
|
||
|
- include/queue.h: Add dq_tail marco From zhuguangqing.
|
||
|
- include/stdio.h: Add prototypes for popen() and pclose(). Actual
|
||
|
implementation is in apps/system/popen() From Gregory Nutt.
|
||
|
- include/sys/param.h: Add a dummy sys/param.h header file. This is
|
||
|
not a standard file but is used by other systems and having the
|
||
|
dummy file may minimize some porting efforts. From Gregory Nutt.
|
||
|
|
||
|
* Tools:
|
||
|
|
||
|
- nuttx/tools/kconfig2html.c: Due to new usage, tool needs to be
|
||
|
able to handle configuration files with names other than Kconfig.
|
||
|
From Gregory Nutt.
|
||
|
- nuttx/tools/kconfig2html.c: Update tool to handle tristate types.
|
||
|
From Gregory Nutt.
|
||
|
- nuttx/tools/Config.mk: Add function CATFILE definition. Currently
|
||
|
only used in apps/builtin/Makefile. From Gregory Nutt.
|
||
|
- nuttx/tools/Config.mk: Add the recursive wildcard function,
|
||
|
RWILDCARD, to Config.mk. From Gregory Nutt.
|
||
|
- nuttx/tools/testbuild.sh: Add an option to specify the location of
|
||
|
nuttx directory. From Gregory Nutt.
|
||
|
- nuttx/tools/refresh.sh: Add a --prompt option that will let you
|
||
|
use --silent but will prompt before overwriting the original
|
||
|
defconfig. From Gregory Nutt.
|
||
|
- nuttx/tools/link.sh. Update link.sh per suggestions by Mark so
|
||
|
that it can be used with MSYS vs copydir.sh. From Gregory Nutt.
|
||
|
- nuttx/tools/mkexport.sh: Save the System.map file and User.map
|
||
|
file (if it exists) in the export package so that it can be used to
|
||
|
extract addresses. From Gregory Nutt.
|
||
|
- nuttx/tools/mkexport.sh: Save the name of the STRIP tool too. From
|
||
|
Gregory Nutt.
|
||
|
- nuttx/tools/nxstyle.c: Add capability to detect multiple blank
|
||
|
lines. Single spacing required by the coding standard. Also coding
|
||
|
standard fixes to server .c files for problems found during testing
|
||
|
nxstyle. From Gregory Nutt.
|
||
|
- apps/tools: Add +x to mksymtab.sh. From Masayuki Ishikawa.
|
||
|
- apps/tools/define.sh and define.bat: Move a copy of define.bat
|
||
|
and sh from nuttx/tools to apps/tools so that they will be
|
||
|
available for the import build. From Gregory Nutt.
|
||
|
|
||
|
* Build System:
|
||
|
|
||
|
- Apps/ Build System. The apps/ build system has undergone a major
|
||
|
renovation to better support building applications as ELF modules.
|
||
|
Module selections have changed from 'bool' to 'tristate' types.
|
||
|
This means that building an ELF now is as simple setting the value
|
||
|
to 'm'. This effort required many changes, too many to summarize
|
||
|
here. The solution was contributed by Masayuki Ishikawa, Anchao
|
||
|
An, and Xiang Xiao (and myself to a lesser extent).
|
||
|
- NuttX/ Build System: This change extends support for the two-pass
|
||
|
build. Its primary purpose is to incorporate source logic
|
||
|
generated by applications into the kernel phase of the build.
|
||
|
In the two pass build, the application logic is built during the
|
||
|
first phase, pass 1. In that phase, the application may generate
|
||
|
and install source files in the pass1/directory. The operating
|
||
|
system is built during phase 2 of the build. At that time, those
|
||
|
source files in the pass1/ directory will be built and incorporated
|
||
|
into the kernel address space.
|
||
|
The primary purpose of the pass1/ directory is to such
|
||
|
application-generated kernel symbol tables. For an example of the
|
||
|
use of this feature, look at
|
||
|
apps/examples/module/drivers/Makefile. Kernel symbol tables are
|
||
|
needed to support kernel modules. Of course, addition
|
||
|
board-specific logic in, say, configs/<board>/src would have to be
|
||
|
included to make use of the application-installed symbol tables.
|
||
|
From Gregory Nutt.
|
||
|
- Remove CONFIG_ARCH_CALIBRATION. It is awkward to use and no longer
|
||
|
necessary now that we have apps/examples/calib_udelay. From
|
||
|
Gregory Nutt.
|
||
|
- Build System: With recent changes to apps/ all configurations that
|
||
|
build applications as modules must now also select
|
||
|
CONFIG_APPS_LOADABLE. From anchao.
|
||
|
- Build System: Add dynamic application loadable support. From
|
||
|
anchao.
|
||
|
- Build System: Add configuration CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS
|
||
|
to suppress use of weak functions. Some gnu derived toolchains do
|
||
|
not support weak symbols. From Xiang Xiao.
|
||
|
- Kconfig: Move 'option modules' from NSH_FILE_APPS to
|
||
|
BUILD_LOADABLE From anchao.
|
||
|
- apps/ Build System: Introduce a build system for loadable apps
|
||
|
for nsh. Add 'option modules' to NSH_FILE_APPS so that a user can
|
||
|
change an application configuration to tristate (y/n/m)
|
||
|
- apps/import: Add Makefile.symtab which can be used to compile the
|
||
|
dynamically created symbol table C file. Also adds
|
||
|
tools/mksymtab.sh. From Gregory Nutt.
|
||
|
|
||
|
* NSH: apps/nshlib:
|
||
|
|
||
|
- apps/nshlib: Add parsing support for back-slash quoted
|
||
|
characters. Currently only implemented properly if
|
||
|
CONFIG_NSH_ARGCAT is also selected. This commit is in response to
|
||
|
Bitbucket Issue 11 opened by Maciej Wójcik From Gregory Nutt.
|
||
|
- apps/nshlib: Add inverted logic support in the form of 'if !
|
||
|
<cmd>' From Beat Küng.
|
||
|
- apps/nshlib: Expand reboot and poweroff commands to include a
|
||
|
second, optional mode argument From ligd.
|
||
|
- apps/nshlib: Add a force flag (-f) to mksmartfs command. SmartFS
|
||
|
will be formatted only if (1) the FLASH does not already hold a
|
||
|
SmartFS, or (2) the force flag is set. From Xiang Xiao.
|
||
|
- apps/nshlib: NSH prompt string is now configurable. nsh> is
|
||
|
still the default. From Xiang Xiao.
|
||
|
- apps/nshlib: Add control-C support for terminating built-in and
|
||
|
exec'ed file tasks. From ligd.
|
||
|
- apps/nshlib: Call BOARDIOC_FINALINIT after start-up script (or
|
||
|
immediately after BOARIOC_INIT is there is no start-up script).
|
||
|
From ligd.
|
||
|
- apps/nshlib: When using waitpid() to wait for a built-in
|
||
|
application or a file application to exit. Add the WUNTRACED
|
||
|
options to so the the waitpid() call will also be awakened if the
|
||
|
waited-for task is stopped as well. From Gregory Nutt.
|
||
|
|
||
|
* NSH Builtins: apps/builtin:
|
||
|
|
||
|
- apps/builtin/Makefile. This commit changes apps/builtin to search
|
||
|
the registry recursively. By supporting directories, external
|
||
|
projects can install the hooks into the registry and easily clean
|
||
|
them up and reinstall if something needs to be updated. Based on
|
||
|
an idea from Anthony Merlino. From Gregory Nutt.
|
||
|
|
||
|
* Examples/Tests: apps/examples:
|
||
|
|
||
|
- apps/examples/calib_udelay: Add tool for calibrating
|
||
|
CONFIG_BOARD_LOOPSPERMSEC From Juha Niskanen.
|
||
|
- apps/examples/dhtxx: Example for the DHTxx sensor. From Ouss4.
|
||
|
- apps/examples/dsptest: Add unit test for NuttX DSP library From
|
||
|
Mateusz Szafoni.
|
||
|
- apps/examples/elf: CROMFS and ROMFS configuration currently only
|
||
|
usable in FLAT build. Add configuration to use ELF objects on
|
||
|
external media like SD card or USB drive instead. From Gregory
|
||
|
Nutt.
|
||
|
- apps/examples/elf: If the test ELF files are on media in
|
||
|
removable media such as SD or USB FLASH, the wait until the media
|
||
|
has been installed and initialized before starting the test. From
|
||
|
Gregory Nutt.
|
||
|
- apps/examples/fb: Adds example to test framebuffer overlay From
|
||
|
Marco Krahl.
|
||
|
- apps/examples/gps: Add GPS example using MINMEA lib From Alan
|
||
|
Carvalho de Assis.
|
||
|
- apps/examples/i2sloop: Add i2sloop application. This application
|
||
|
can be used to test I2S loopback like: ' nsh> i2sloop &'. From
|
||
|
Masayuki Ishikawa.
|
||
|
- apps/examples/lvgldemo: Update LVGL to version 5.1.1 From Alan
|
||
|
Carvalho de Assis.
|
||
|
- apps/examples/module: Add support for CROMFS and for stripping
|
||
|
symbols from ELF module binaries. From Gregory Nutt.
|
||
|
- apps/examples/module: Add support for automounting removable media.
|
||
|
This involves a wait for the block driver to become available
|
||
|
before performing the mount. From Gregory Nutt.
|
||
|
- apps/examples/module: When built in the PROTECTED or KERNEL
|
||
|
modes, the symbol table is not built by the application. That is
|
||
|
because the build will fail since the kernel module depends on
|
||
|
internal OS symbols thar are not available to the application
|
||
|
build. With this change the examples does not attempt to build
|
||
|
the kernel symbol table in these modes. Instead it just copies
|
||
|
the kernel module symbol table into the nuttx/pass1 directory
|
||
|
where it can be build directly into the OS during pass2 of the
|
||
|
build. From Gregory Nutt.
|
||
|
- apps/examples/ostest: Add a small test for SIGSTOP, SIGCONT, and
|
||
|
SIGKILL actions. From Gregory Nutt.
|
||
|
- apps/examples/popen: Add a test of popen/pclose. From Gregory
|
||
|
Nutt.
|
||
|
- apps/examples/powerled: Add arch initialization. From Mateusz
|
||
|
Szafoni.
|
||
|
- apps/examples/tcpblaster: Add TCP performance measurement test.
|
||
|
From Gregory Nutt.
|
||
|
|
||
|
* System Utilities: apps/system
|
||
|
|
||
|
- apps/system/cle: Usage improvements including command line
|
||
|
history (taken from readline) and support for addition control
|
||
|
characters. From mst.
|
||
|
- apps/system/i2c: Adapt to rename I2C_M_RESTART->i2C_M_START.
|
||
|
I2C_M_NOSTOP should be in flags of first message in every
|
||
|
write-read and write-write message sequence. From Gregory Nutt.
|
||
|
- apps/system/i2c: Allow registers besides 0x00 in the dev command.
|
||
|
From Jakob Haufe.
|
||
|
- apps/system/nsh: Add logic to automatically register an
|
||
|
application symbol table as part of NSH initialization. From
|
||
|
Masayuki Ishikawa.
|
||
|
- apps/system/nsh: The symbol table name and size variable names
|
||
|
can now be configured. From Gregory Nutt.
|
||
|
- apps/system/nsh: Move apps/examples/nsh to apps/system/nsh. It
|
||
|
has become so entrenched that it is hardly an example these days.
|
||
|
May as well formalized it as a system task. From Gregory Nutt.
|
||
|
- apps/system/nxplayer: Refactor nxplayer.c. Apply
|
||
|
netlib_parsehttpurl() and
|
||
|
remove unnecessary usleep(). From Masayuki Ishikawa.
|
||
|
- apps/system/nxplayer: Release buffer before session and release
|
||
|
semaphore in nxplayer_setvolume system/nxplayer/nxplayer.c:
|
||
|
Remove & for apb->samp reference. It is already a pointer. From Xiang Xiao.
|
||
|
- system/nxplayer/nxplayer.c: Add playraw command From ZhongAn.
|
||
|
- apps/system/nxrecorder: Add nxrecorder application From ZhongAn.
|
||
|
- apps/system/popen: Add an implementation of the standard popen()
|
||
|
and pclose() OS interfaces. These are implemented as applications
|
||
|
vs. part of the OS because they depend on NSH. Untested on
|
||
|
initial commit. From Gregory Nutt.
|
||
|
- apps/system/system and popen: Adapt so that these can be used in
|
||
|
the KERNEL build mode. In this case, simply replace task_spawn()
|
||
|
with posix_spawn(). This depends on the existence of some
|
||
|
environment where /bin/sh exists and can be used to execute one
|
||
|
NSH command. For the case of system(), this change was more
|
||
|
complete because it previously used task_create(). Now it uses
|
||
|
either task_spawn() or posix_spawn(), depending upon the
|
||
|
configuration. From Gregory Nutt.
|
||
|
- apps/system/taskset: Add taskset command for SMP systems. This
|
||
|
command can be used to retrieve or set a process's CPU affinity.
|
||
|
For example,
|
||
|
|
||
|
nsh> taskset -p 4
|
||
|
pid 4's current affinity mask: 2
|
||
|
|
||
|
nsh> taskset -p 3 4
|
||
|
pid 4's current affinity mask: 3
|
||
|
|
||
|
nsh> taskset -p 1 busyloop &
|
||
|
|
||
|
From Masayuki Ishikawa.
|
||
|
- apps/system/zmodem: Support -p <path> for rz to change the folder
|
||
|
for the received file. Switch debug output from printf to
|
||
|
syslog. Send the next packet for ZME_ACK in ZMS_SENDING to avoid
|
||
|
rz on the host side stuck make send work reliable even without
|
||
|
hardware flow control. From Xiang Xiao.
|
||
|
|
||
|
* Network Utilities: apps/netutils:
|
||
|
|
||
|
- apps/netutils/dhcpc: Activates BINDTODEVICE if available. From
|
||
|
Sebastien Lorquet.
|
||
|
|
||
|
* Wireless Utilities: apps/wireless:
|
||
|
|
||
|
- apps/wireless/i8sak: i8sak daemon now gets shutdown if not in use.
|
||
|
Previously, once the i8sak daemon was started, by running any
|
||
|
command, it would stay running. This means that if you want to use
|
||
|
i8sak to setup your network, but then want exclusive access to the
|
||
|
char device, or network device, you have to manually shutdown the
|
||
|
i8sak daemon. Now the daemon stays active as long as required to
|
||
|
finish any commands, or stays open if a new command keeps it on,
|
||
|
but when all work is finished, it shuts down. From Anthony Merlino.
|
||
|
|
||
|
* Filesystem Utilities: apps/fsutils:
|
||
|
|
||
|
- mkfatfs: Clean up some name BS_ and MBR_ refer to the same record
|
||
|
and should use the same naming (MBR_). From Gregory Nutt.
|
||
|
- mkfatfs: Add definitions for the FAT boot record (FBR). From
|
||
|
Gregory Nutt.
|
||
|
- mksmartfs: Add a check to see if the SmartFS is already
|
||
|
formatted. From Xiang Xiao.
|
||
|
|
||
|
* Graphic Utilities: apps/graphics:
|
||
|
|
||
|
- graphics/littlevg/: Update LVGL to version 5.1.1 From Alan
|
||
|
Carvalho de Assis.
|
||
|
|
||
|
* Test Utilities: apps/testing:
|
||
|
|
||
|
- testing/unity: Add Unity - unit testing library from
|
||
|
ThrowTheSwitch.org. From Mateusz Szafoni.
|
||
|
|
||
|
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: Signal handlers maybe run with interrupts enabled or
|
||
|
disabled, depending on how the task the received the signal was
|
||
|
blocked. (i.e.: If sem_wait() is called, then we disable
|
||
|
interrupts, then block the currently running task). This could be
|
||
|
dangerous, because user code would be running with interrupts
|
||
|
disabled.
|
||
|
This change forces interrupts to be enabled in up_sigdeliver()
|
||
|
before executing the signal handler calling up_irq_enable()
|
||
|
explicitly. This is safe because, when we return to normal
|
||
|
execution, interrupts will be restored to their previous state when
|
||
|
the signal handler returns. From Gregory Nutt (Based on a
|
||
|
recommendation by Mark Shulte).
|
||
|
- Signals: Lock the scheduler while while killing the children so
|
||
|
that we do not lose priority and let the task group continue to
|
||
|
run in an indeterminate state. From Gregory Nutt.
|
||
|
- Groups: Fix a deadlock when loading an ELF From Masayuki Ishikawa.
|
||
|
- Groups: In some circumstances, group_killchildren() could have
|
||
|
called pthread_cancel() to kill a task. Also, the behavior would
|
||
|
not be as expected if a pthread had cancellation disabled. From Gregory Nutt.
|
||
|
- Posix Message Queues: mq_notify() fix - only part of struct copied
|
||
|
to internal structure. As source address the address of the struct
|
||
|
member sigev_value was used, and it is not located the start of the
|
||
|
struct. This leads to invalid data being copied to internal
|
||
|
structure. Both source and destination should be of type struct
|
||
|
sigevent* . From Simon Liedl.
|
||
|
- vfork(): vfork operation needs to allocate and copy the task
|
||
|
argument too. Also correction of the address correction cannot
|
||
|
depend on the stack pointer since it is not available in all
|
||
|
architectures. Rather calculate the offset from the stack
|
||
|
allocation pointer From Xiang Xiao.
|
||
|
- IRQ Dispatch: Ensure vector never points to NULL since interrupt
|
||
|
may happen before irq_initialize() From Xiang Xiao.
|
||
|
- Work Queue: workqueues don't need set global data to zero since
|
||
|
.bss is cleared automatically. Removing this unnecessary
|
||
|
initialization also avoids the loss the work items queued before
|
||
|
initialization. From ligd.
|
||
|
- Work Queue: Remove work queue polling delay to simplify the code
|
||
|
logic and save the power. From xuanlin.
|
||
|
- syslog: Fix syslog crash on 64bit simulation. From anchao.
|
||
|
- Pipes: Write to a pipe when there are no readers from the pipe
|
||
|
should return -EPIPE. From ligd.
|
||
|
- System Calls: Fix 6th parameter type of posix_spawnp in
|
||
|
syscall.csv From Masayuki Ishikawa.
|
||
|
- System Calls: Remove unused SYS_nnetsocket from syscall.h. Because
|
||
|
SYS_nnetsocket is not implemented so far, it should be removed so
|
||
|
that SYS_prctl can work correctly. From Masayuki Ishikawa.
|
||
|
- Binary Loader: Refactor binfmt_exec.c. This change also fixes an
|
||
|
argv issue for CONFIG_SCHED_ONEXIT=n or CONFIG_SCHED_HAVE_PARENT=n
|
||
|
From Masayuki Ishikawa.
|
||
|
- Binary Loader: Re-architect the way that loadable ELF or NXFLAT
|
||
|
modules are unloaded. Memory resources must be recovered when the
|
||
|
task loaded into memory exits. The original implementation used
|
||
|
the death-of-child SIGCHLD signal to perform the unload. There are
|
||
|
several problems with this: It is overly complex, it requires that
|
||
|
the parent task stay resident while the loaded task runs, and it
|
||
|
has fatal logic flaws in the protected and kernel model builds
|
||
|
because the user signal handler attempts to run in the kernel
|
||
|
address space. This corrects the issue using a mindlessly simply
|
||
|
BINFMT callback when the task exits. From Gregory Nutt.
|
||
|
- ELF Binary Loader: Set priority level to default if parent has no
|
||
|
priority. From anchao.
|
||
|
|
||
|
* File System/Block and MTD Drivers:
|
||
|
|
||
|
- Auto-mounter: Ignore return values from work_cancel(). From
|
||
|
Gregory Nutt.
|
||
|
- SmartFS: Fixed filesystem corruption when writing to small file
|
||
|
after open(... O_APPEND). From Dmitriy Linikov.
|
||
|
- SmartFS stat(): A previous change added support for checking if a
|
||
|
descriptor is a socket in fstat().' but it changed sys/stat.h in
|
||
|
way that breaks smartfs file-type stat flags. CROMFS is similarly
|
||
|
broken, as tools/gencromfs.c was not updated to match the
|
||
|
sys/stat.h changes. This commit fixes both issues. It probably is
|
||
|
not a good idea to use NuttX sys/stat.h bit-field values directly
|
||
|
in stored structure of filesystem. From Jussi Kivilinna.
|
||
|
- HostFS: Update duplicated definitions in HOSTFS that must match
|
||
|
NuttX values. From ligd.
|
||
|
- HostFS: Ensure f_type is equal to HOSTFS_MAGIC. From Xiang Xiao.
|
||
|
- ROMFS: Make romfs_devread32 more portable From anchao.
|
||
|
- TmpFS: Correct logic in tmpfs_ioctl() that extracts the priv state
|
||
|
structure from the file system structures. It was not getting the
|
||
|
right value and causing mmap() to fail. Noted by Jesse. From
|
||
|
Gregory Nutt.
|
||
|
- ProcFS network statistics: Was not handling the output correct for
|
||
|
the case of an IEEE 802.11 device. From Gregory Nutt.
|
||
|
- ProcFS IRQs: Fix occasional computation error when fracpart >=
|
||
|
1000 From Xiang Xiao.
|
||
|
|
||
|
* Networking/Network Drivers:
|
||
|
|
||
|
- TAP/TUN: Fixed custom tun devname formatting. From Dmitriy Linikov.
|
||
|
- Network Drivers: This change attempts remove some long standard
|
||
|
confusion in naming and some actual problems that result from the
|
||
|
naming confusion. The basic problem is the standard MTU does not
|
||
|
include the size of the Ethernet header. For clarity, I changed
|
||
|
the naming of most things called MTU to PKTSIZE. For example,
|
||
|
CONFIG_NET_ETH_MTU is now CONFIG_NET_ETH_PKTSIZE. This makes the
|
||
|
user interface a little hostile. People think of an MTU of 1500
|
||
|
bytes, but the corresponding packet is really 1514 bytes (including
|
||
|
the 14 byte Ethernet header). A more friendly solution would
|
||
|
configure the MTU (as before), but then derive the packet buffer
|
||
|
size by adding the MAC header length. Instead, we define the
|
||
|
packet buffer size then derive the MTU.
|
||
|
The MTU is not common currency in networking. On the wire, the
|
||
|
only real issue is the MSS which is derived from MTU by subtracting
|
||
|
the IP header and TCP header sizes (for the case of TCP). Now it
|
||
|
is derived for the PKTSIZE by subtracting the IP header, the TCP
|
||
|
header, and the MAC header sizes. So we should be all good and
|
||
|
without the recurring 14 byte error in MTU's and MSS's. From
|
||
|
Gregory Nutt.
|
||
|
- netdev: Fix.. Too many calls to net_unlock() From Gregory Nutt.
|
||
|
- IPv6: There are many different checks for IPv6 multicast
|
||
|
addresses. Most of the checks are different. RFC 3513 clearly
|
||
|
specifies how to detect an IPv6 multicast address: they should
|
||
|
begin with 0xffxx. I did not change some of the checks in
|
||
|
ipv6_input.c, however. In that file, the comments indicate that
|
||
|
the code should only pick of certain multicast address that begin
|
||
|
with 0xff02. From Gregory Nutt.
|
||
|
- ARP: Fix some backward logic in an if condition. From Gregory
|
||
|
Nutt.
|
||
|
- TCP Re-assembly: Rename CONFIG_TCP_REASSEMBLY to
|
||
|
CONFIG_IPv4_REASSEMBLY. Add some fixes to get a clean compile with
|
||
|
CONFIG_IPv4_REASSEMBLY enabled. There are several problems with
|
||
|
the current implementation: It is untested (and depends on
|
||
|
CONFIG_EXPERMIMENTAL). It uses some Ethernet specific definitions
|
||
|
(and depends on CONFIG_NET_ETHERNET). There is only a single
|
||
|
reassembly buffer. The last two issues prevent use of this feature
|
||
|
in any context where IPv4 packets may be reassembled for multiple
|
||
|
network devices concurrently). From Gregory Nutt.
|
||
|
- TCP: Set the default TCP MSS to the value required by RFC 879 and
|
||
|
never change it under any circumstance unless the remote host
|
||
|
requests a larger MSS via an option the TCP header. From Gregory
|
||
|
Nutt.
|
||
|
- TCP: Fix a deadlock condition that can occur when (1) all network
|
||
|
logic runs on a single work queue, (1) TCP write buffering is
|
||
|
enabled, and (2) we run out of IOBs. In this case, the TCP write
|
||
|
buffering logic was blocking on iob_alloc() with the network
|
||
|
locked. Since the network was locked, the device driver polls that
|
||
|
would provide take the write buffer data and release the IOBs could
|
||
|
not execute. This fixes the problem by unlocking the network lock
|
||
|
while waiting for the IOBs. From Gregory Nutt.
|
||
|
- TCP: Remove g_netstats.tcp.syndrop++ from tcp_data_event() From
|
||
|
Masayuki Ishikawa.
|
||
|
- TCP Monitor: Fix net unlock issue when tcp close. This bug could
|
||
|
leave the net locked. From zhangyuan7.
|
||
|
- UDP: When sending a broadcast (or multicast) packet do not attempt
|
||
|
to look up the device by the destination IP address. Rather, use
|
||
|
the locally bound address for these cases to select the correct
|
||
|
network device. From Gregory Nutt.
|
||
|
- UDP: Restore some legacy behavior that was lost with the
|
||
|
implementation of CONFIG_NET_UDP_BINDTODEVICE: If no device has a
|
||
|
local address when the broadcast packet is sent and the UDP socket
|
||
|
is not bound to a device, there select some arbitrary device. This
|
||
|
is certainly lunacy in the case where there are multiple network
|
||
|
devices registered because the wrong device will probably be
|
||
|
returned. It works find, however, for the legacy case where only a
|
||
|
single network device is registered. From Gregory Nutt.
|
||
|
- UDP: Fix for network byte-order issue when checking if an address
|
||
|
is a multicast address. From Jake Choy.
|
||
|
- USRSOCK: Correct of semaphore usage issues. From Gregory Nutt.
|
||
|
- USRSOCK: Fix re-definitions of struct iovec. From ligd.
|
||
|
- ICMP/ICMPv6 Connection: Change the type of id in
|
||
|
icmpv[6]_findconn to uint16_t From Xiang Xiao.
|
||
|
- ICMP/ICMPv6: Fix failure to poll ICMP socket issue. From
|
||
|
dongjianli.
|
||
|
|
||
|
* Wireless/Wireless Drivers:
|
||
|
|
||
|
- XBee: Fixes issue with timeouts. Timeouts were in ticks but
|
||
|
should have been in ms. This caused false triggers of timeout
|
||
|
causing redundant packets, etc. From Anthony Merlino.
|
||
|
- BCM43xx: Add missing logic to the BCM43xx IEEE 802.11 driver to
|
||
|
poll for more Tx data after the last transfer completes. From
|
||
|
Gregory Nutt.
|
||
|
- BCM43xx: Bring in some fixes from the 'Haywire' branch. From
|
||
|
Ramtin Amin.
|
||
|
|
||
|
* Common Drivers:
|
||
|
|
||
|
- Audio: Fix compile error in i2schar.c (CONFIG_DEBUG_ASSERTIONS=y)
|
||
|
From Masayuki Ishikawa.
|
||
|
- Audio I2S: Fix bad NULL pointer check From Juha Niskanen.
|
||
|
- Input: Fixed FT5x06 driver to correctly close (previously it
|
||
|
unregistered interrupt handler during close). From Marcin Wyrwas.
|
||
|
- MMC/SD: Fix an error that was causing SDIO multiple block
|
||
|
transfers from achieving full performance. From Bob Feretich.
|
||
|
- Sensors: Increases SPI frequency in MAX6675 from 400Khz to 4MHz.
|
||
|
From Alan Carvalho de Assis.
|
||
|
- Sensors: Remove comment references to touchscreens from ADXL345
|
||
|
driver. From Russ Webber.
|
||
|
- Serial: Don't overwrite nwritten unconditionally on UART write
|
||
|
failure. From Xiang Xiao.
|
||
|
- Serial DMA: Move head/tail pointer reset to uart_recvchars_dma
|
||
|
since dma may be still transferring in the background. From Xiang
|
||
|
Xiao.
|
||
|
- Serial DMA: In DMA mode, the use of uart_disablexinit() is
|
||
|
insufficient to protect a critical section.
|
||
|
enter/leave_critical_section() must be used in those cases if
|
||
|
CONFIG_SERIAL_DMA=y From Xiang Xiao.
|
||
|
- Serial DMA: Fix typo error in uart_recvchars_dma() From Xiang Xiao.
|
||
|
- 16550 UART: u16550_txempty() should check UART_LSR_TEMT to avoid
|
||
|
some data left in the transmit FIFO From Xiang Xiao.
|
||
|
|
||
|
* ARMv7-A:
|
||
|
|
||
|
- ARMv7-A (and i.MX6): Add support for per-CPU IRQ and FIQ interrupt
|
||
|
stacks (bugfix). Add support so that up_assert will print the
|
||
|
correct interrupt stack on an assertion (FIQ stack is still not
|
||
|
printed). From Gregory Nutt.
|
||
|
|
||
|
* ARMv7-R:
|
||
|
|
||
|
- ARMv7-R: Fix some wrong configuration of program status
|
||
|
register. PSR_E_BIT bit should be set for big endian system.
|
||
|
PSR_A_BIT bis is set automatically as arm cortex-r4 reference
|
||
|
manual 3.7.4. So we don't need to set this bit. From EunBong Song.
|
||
|
- ARMv7-R: Fix some wrong MPU register definition. Change
|
||
|
MPU_RBAR_ADDR_MASK and MPU_RACR_TEX_SHIFT mask as arm cortex-r4
|
||
|
reference manual. Region Base Address Register 0-4 bits are
|
||
|
reserved. MPU Region Access control register type 3-5 bits. From
|
||
|
EunBong Song.
|
||
|
|
||
|
* ARMv7-M:
|
||
|
|
||
|
- ARMv7-M, Cortex F7: Add a configuration to enable workaround for
|
||
|
r0p1 Errata 837070: Increasing priority using write to BASEPRI does
|
||
|
not take effect immediately. This update is required to be
|
||
|
serialized to the instruction stream meaning that after this update
|
||
|
completes, it takes effect immediately and no exceptions of lower
|
||
|
priority than the new boosted priority can preempt execution.
|
||
|
Because of this erratum, the priority boosting does not take place
|
||
|
immediately, allowing the instruction after the MSR to be
|
||
|
interrupted by an exception of lower priority than the new boosted
|
||
|
priority. This effect is only limited to the next instruction.
|
||
|
Subsequent instructions are guaranteed to see the new boosted
|
||
|
priority. This was raised in Bitbucket issue 113 from Vadzim
|
||
|
Dambrouski. From Gregory Nutt.
|
||
|
- ARMv7-M: MPU: mpu_log2regionceil needs take into account the
|
||
|
offset too From Xiang Xiao.
|
||
|
- ARMv7-M MPU: The prototype of mpu_log2regionfloor() changed; an
|
||
|
additional parameter was added. However, none of the calls to
|
||
|
mpu_log2regionfloor() were updated to pass the new, additional
|
||
|
parameter. From Gregory Nutt.
|
||
|
|
||
|
* Infineon XMC4xxx Drivers:
|
||
|
|
||
|
- XMC4 SPI: XMC4 SPI was working only for the first transfer From
|
||
|
Alan Carvalho de Assis.
|
||
|
|
||
|
* Microchip/Atmel SAMv7 Drivers:
|
||
|
|
||
|
- SAMv7 MCAN: Correct an error in the BUS_OFF reporting. In case of
|
||
|
BUS_OFF the old implementation was leading to a package storm. Now
|
||
|
it reports the error condition BUS_OFF only once. From Frank
|
||
|
Benkert.
|
||
|
|
||
|
* NXP/Freescale LPC43xx Drivers:
|
||
|
|
||
|
- LPC43xx CAN: Fix lpc43 CAN configuration. Configuration settings
|
||
|
were used and documented in README.txt files, but never in any
|
||
|
Kconfig file. From Gregory Nutt.
|
||
|
- LPC43xx: Make WWDT usable again. LPC43xx WWDT driver was not
|
||
|
updated when irq_dispatch grew an argument parameter. Also fixes
|
||
|
two typos and a naming inconsistency (WWDT vs. WWDG). From Jakob
|
||
|
Haufe.
|
||
|
|
||
|
* NXP/Freescale Kinetis Drivers:
|
||
|
|
||
|
- kinetis: USB0 fix interrupt storm on error. The ERROR bit of
|
||
|
USBx_ISTAT needed to be cleared once an error occurs. From David
|
||
|
Sidrane.
|
||
|
- Kinetis: SDHC fix SDIO driver so that DMA works. There were 2
|
||
|
problems. The first was that the interrupt did test DINT and raise
|
||
|
a completion events. But since DINT is just an indication of DMA
|
||
|
completion, TC is a valid way to determine that the transfer is
|
||
|
complete. The second problem is that Software Reset For DAT Line
|
||
|
SDHC_SYSCTL[RSTD] clears the bits 24-0 in SDHC_PROTO this looses
|
||
|
the wide bus setting DTW From David Sidrane.
|
||
|
- Kinetis: (1) PIT add Lifetime and Chaining, (2) flexcan fix
|
||
|
duplicate line and ordering, (3) kinetis_lowput.c LPUART data
|
||
|
format with parity fix. The 9-bit data mode is typically used with
|
||
|
parity to allow eight bits of data plus the parity, (4) lowputc
|
||
|
LPUART_BAUD_INIT has to be defined. Build fails with test case
|
||
|
enable LPUART0 and make UART1 console. If HAVE_LPUART_DEVICE is
|
||
|
defined then LPUART_BAUD_INIT has to be defined even if the LPUART
|
||
|
is not the console From David Sidrane.
|
||
|
- Kinetis: I2C ensure timeout on bus error. The code had a dead
|
||
|
wait on I2C_S_BUSY. Noise on the bus would cause the driver to
|
||
|
hang. Add timeout on invalid states of I2C_S_BUSY to allow the
|
||
|
upper layers do deal with restart or abort. From David Sidrane.
|
||
|
|
||
|
* NXP i.MXRT Drivers:
|
||
|
|
||
|
- i.MXRT Ethernet: I finally got the Ethernet CRC32 to work properly
|
||
|
after the FAE pointed me in the right direction: (1) Added CRC32
|
||
|
functions for multicast address filtering, (2) Do not reset PHY
|
||
|
settings when doing an ifup, (2) Use chip's unique id as the device
|
||
|
MAC, and (4) Enable discard enet frames with errors at PHY layer.
|
||
|
From Jake Choy.
|
||
|
|
||
|
* On Semi LC823450 Boards:
|
||
|
|
||
|
- LC823450-XGEVK: Fix parallel build on lc823450-xgevk. This change
|
||
|
fixes an archive file (*.a) corruption by locking $(TOPDIR).
|
||
|
Please note that locking the current directory is insufficient
|
||
|
because some archive files such as libapps.a are specified with
|
||
|
absolute path. From Masayuki Ishikawa.
|
||
|
- LC823450-XGEVK: Change IOB related params for rndis. Since TCP
|
||
|
flow control scheme was changed, HTTP audio streaming has not been
|
||
|
working. These IOB params are not optimized but HTTP audio
|
||
|
streaming now works. From Masayuki Ishikawa.
|
||
|
|
||
|
* STMicro STM32:
|
||
|
|
||
|
- STM32 F7: Fix compile error caused by intentional use of fall
|
||
|
through From Daniel Agar.
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- STM32 F1-F4: Port Bob Feritich's change to STM32 F2 and F4 which
|
||
|
appear to have identical SD support and I/O compensation
|
||
|
requirements.
|
||
|
- STM32 F1-F4, STM32 F7, and STM32 L4: The STM32 RTC driver was
|
||
|
being selected by the global CONFIG_RTC option. That is in
|
||
|
correct. For example, if you want to disabled the STM32 RTC and
|
||
|
use an external RTC you cannot because the external RTC also
|
||
|
depends on the global CONFIG_RTC. The solution is to add a new
|
||
|
CONFIG_STM32xx_RTC configuration option the permits to you select
|
||
|
or deselect the STM32 RTC but still be able to select the external
|
||
|
RTC. From Gregory Nutt.
|
||
|
- STM32 F3 I2C: Fix compile error with I2C reset. From Juha
|
||
|
Niskanen.
|
||
|
- STM32 F7 Serial: Fix ioctl TIOCSSINGLEWIRE The TRM notes that UE
|
||
|
must be disabled in order to write HDSEL in USART_CR3. This was not
|
||
|
being done, so calls to TIOCSSINGLEWIRE were silently failing.
|
||
|
This change checks the state of UE in USART_CR1, clears the UE bit
|
||
|
before writing HDSEL, then re-enables it if necessary. From Kurt
|
||
|
Kiefer.
|
||
|
- STM32 F7 DMA: DMA macros did not account for the increase from 8
|
||
|
to 16 DMA channels. From Gregory Nutt.
|
||
|
- STM32 F7 I2C: I2C reset Configure I2C pins as GPIO output. Pins
|
||
|
were reset to inputs in the deinit(). This resets them to outputs.
|
||
|
From David Sidrane.
|
||
|
- STM32 F7: All of the SDMMC pins were set to 50 MHz, but not the
|
||
|
clock. This sets the clock to 50 MHz also. This combined with
|
||
|
turning on I/O compensation makes intermittent failures go away.
|
||
|
From Bob Feritich.
|
||
|
- STM32 F7: Port Bob Feritich's change to SDMMC2 and to all other
|
||
|
STM32 F7 architectures. Also add a configuration option to
|
||
|
automatically enable I/O compensation. From Gregory Nutt.
|
||
|
- STM32 F7 SDMMC: Fix data timeout errors with multi-block
|
||
|
transfers. From Bob Feretich.
|
||
|
- STM32 L4: Corrects some mistakes in pin definitions for the
|
||
|
STM32 L4 family. According to datasheet of STM32L496xx, STM32L475xx
|
||
|
and STM32L443XX the AF2 of PE14 is TIM1_BKIN2 not TIM2_BKIN. From
|
||
|
Daniel Pereira Carvalho.
|
||
|
- STM32 L4: Avoid using redundant CONFIG_STM32L4_STM32L4X2. This is
|
||
|
almost always same as CONFIG_STM32L4_STM32L4X3. Avoid duplication
|
||
|
to reduce macro clutter. This patch limits
|
||
|
CONFIG_STM32L4_STM32L4X2 usage to dependency tracking and pinmap.
|
||
|
Also enable ADC for CONFIG_STM32L4_STM32L4X5 (untested, but same
|
||
|
RM). From Juha Niskanen.
|
||
|
- STM32 H7 Serial: don't include stm32_dma.h From raiden00pl.
|
||
|
|
||
|
* STMicro STM32 Boards:
|
||
|
|
||
|
- STM32F4-Discovery: Fix pca9635pw LED driver compilation on
|
||
|
STM32F4-Discovery. From Alan Carvalho de Assis.
|
||
|
- STM32F4-Discovery: Krassimir Cheshmedzhiev claims that sys/types.h
|
||
|
needs to be included in the RGB LED file to avoid undeclared 'OK'
|
||
|
From Gregory Nutt.
|
||
|
- STM32F4-Discovery: Missing EXTERN(_vectors) in linker script.
|
||
|
From Gregory Nutt.
|
||
|
- Nucleo-L422KC: Fix RAM size; STM31L4x2xx has only 64Kb of RAM.
|
||
|
Remove references to I2C and SDIO: There is no I2C2 or SDIO on the
|
||
|
STM32F4x2xx. From Daniel P. Carvalho.
|
||
|
- Nucleo-L422KC: Fix stm32_userleds. After change LD2 to LD3 in
|
||
|
board.h stm32_userleds.c was broken. From Daniel P. Carvalho.
|
||
|
- Nucleo-L422KC: Fix TIMx clock configuration. Also removes
|
||
|
definitions related to timers not available in the STM32L432KC.
|
||
|
From Daniel Pereira Carvalho.
|
||
|
- Nucleo-L452RE: Fix TIMx clock configuration. This is cloned from
|
||
|
similar change to the Nucleo-L422KC. Also fixes DAC build
|
||
|
failure. From Juha Niskanen.
|
||
|
- B-L475E-IOT01A: Fix copy paste errors in names:
|
||
|
stm32_bringup->stm32l4_bringup. Noted by Freemans Goden. From
|
||
|
Gregory Nutt.
|
||
|
- STM32VL-Discovery: Changed the status LED to be the green one as
|
||
|
mentioned in the README file. Removed the global array for buttons
|
||
|
and replace it with the only button. Improve defconfig for the nsh
|
||
|
configuration. From Ouss4.
|
||
|
|
||
|
* C Library/Header Files:
|
||
|
|
||
|
- libc audio: Call nxsem_destroy in apb_free. From Xiang Xiao.
|
||
|
- libc netdb: The 'port' argument to the static alloc_ai() function
|
||
|
is always in network byte order. However, that static function was
|
||
|
still calling HTONS() on the port, incorrectly converting it back
|
||
|
to host byte order. From Gregory Nutt.
|
||
|
- libc netdb: Fix a link error in lib_gethostbynamer.c with protected
|
||
|
build. NOTE: g_lo_ipv4addr also exists in
|
||
|
net/loopback/lo_globals.c which can be linked with kernel build
|
||
|
only. From Masayuki Ishikawa.
|
||
|
- libc unistd : Fix backward conditional logic in Kconfig. From
|
||
|
Gregory Nutt.
|
||
|
- include/nuttx/compiler.h: Fix warning: __cplusplus is not defined.
|
||
|
Some gcc derived compiler do not define __cplusplus From Xiang
|
||
|
Xiao.
|
||
|
- include/nuttx/fs/binfs.h: Fix warning: Type defaults to 'int' in
|
||
|
declaration of 'mountpt_operations' From Xiang Xiao.
|
||
|
- include/nuttx/net/ethernet.h: Remove CONFIG_NET_ETHERNET guard
|
||
|
From Xiang Xiao.
|
||
|
- include/nuttx/semaphore.h: don't include nuttx/fs/fs.h. (1) Avoid
|
||
|
nested loops if CONFIG_SIG_EVTHREAD enabled, (2) semaphore.h
|
||
|
doesn't depends on fs.h. From Gregory Nutt.
|
||
|
- include/crc64.h: Fix warning: integer constant is too large for
|
||
|
its type From Xiang Xiao.
|
||
|
- include/limits.h and include/sys/types.h: Fix warning about
|
||
|
'SIZE_MAX' redefined. include/nuttx/usb/audio.h: Fix warnings due
|
||
|
to '-' used whete '_' intended. From Xiang Xiao.
|
||
|
- include/spawn.h: Fix posix_spawnattr_destroy warning: 'the
|
||
|
address of attr will always evaluate as true' From Xiang Xiao.
|
||
|
- include/sys/types: Move wint_t and wctype_t from wchar.h to
|
||
|
types.h. This change is compatible as before since wchar.h
|
||
|
include types.h indirectly. This fixes a compilation error with
|
||
|
newlib's math.h: 'unknown type name wint_t' From Xiang Xiao.
|
||
|
- apps/include/netutils/netlib.h: Eliminate a warning about
|
||
|
AF_UNSPEC and AF_INET not defined. From Gregory Nutt.
|
||
|
|
||
|
* Build System:
|
||
|
|
||
|
- Build System: Fix parallel build in making context. This change
|
||
|
avoids running $(MKSYSCALL) and .context in parallel and ensures
|
||
|
that tools/mksyscall is built before it is actually used. From
|
||
|
Masayuki Ishikawa.
|
||
|
- Kconfig files: Fix several errors noted by Alex Denisov in
|
||
|
Bitbucket issue 115. From Gregory Nutt.
|
||
|
- apps Build System: Fix an error when building apps/ without
|
||
|
nuttx/, using only the NuttX export package and assuming that the
|
||
|
nuttx/ directory in not even present. In this case, the problem
|
||
|
fixed where the apps/Make.defs file was selecting tools from the
|
||
|
/tools directory which does not exist because TOPDIR=apps/import.
|
||
|
Instead, for this build case, I have not thought of any option but
|
||
|
to duplicate scripts as necessary in the apps/tools directory.
|
||
|
Also added a top-level target to compile the symbol table. Misc
|
||
|
fixes: quoting in scripts, some errors in script syntax. From
|
||
|
Gregory Nutt.
|
||
|
- apps/Application.mk: If a loadable module is generated the we
|
||
|
need to add logic to remove the loadable module in the 'make
|
||
|
clean' logic. From Gregory Nutt.
|
||
|
|
||
|
* Tools:
|
||
|
|
||
|
- nuttx/tools/Makefile.unix: Was not cleaning up export directory
|
||
|
if it was left from a failed export. From Gregory Nutt.
|
||
|
- apps/tools: Fix an error in mksymtab.sh From Masayuki Ishikawa.
|
||
|
|
||
|
* NSH Library: apps/nshlib:
|
||
|
|
||
|
- apps/nshlib: Fix 'while' and 'until' loop condition The loop
|
||
|
condition logic was inverted: 'while true; do echo "test"; done'
|
||
|
would exit immediately, while using 'until' would stay in the
|
||
|
loop. This is the opposite of how it is supposed to work. The
|
||
|
reason is that 'state' was set wrong because 'whilematch' is a
|
||
|
bool. From Beat Küng.
|
||
|
- apps/nshlib: I was able to cause an assertion with some typos in
|
||
|
testing the 'fi' command. Not an important thing, but this will
|
||
|
protect against the assertion. From Gregory Nutt.
|
||
|
- apps/nshlib: Increase the default configuration for the maximum
|
||
|
number of command line arguments to 7 (CONFIG_NSH_MAXARGUMENTS).
|
||
|
This is needed for 'mount' with the -o option. From Xiang Xiao.
|
||
|
- apps/nshlib: Do not dereference NULL 'pstate' in nsh_console.c.
|
||
|
From Juha Niskanen.
|
||
|
|
||
|
* Examples/Tests: apps/examples:
|
||
|
|
||
|
- apps/examples: Remove illegal calls into OS to initialize BINFMT
|
||
|
support. This must be moved to the board initialization logic
|
||
|
within the OS. From anchao.
|
||
|
- apps/examples/nettest: Fix typo: NET_LOOPBACK ->
|
||
|
CONFIG_NET_LOOPBACK nettest: Fix compilation error. Should enable
|
||
|
NET_SETSOCKOPT for preventing compilation error. From EunBong Song.
|
||
|
- apps/examples/ostest: Signal handling tests should use the same
|
||
|
configurable stack size as used in other tests, not
|
||
|
PTHREAD_STACK_DEFAULT. From Gregory Nutt.
|
||
|
- apps/examples/ostest: Attempt to make the nested signal test
|
||
|
compatible with the suspend/resume test. Some signals cannot be
|
||
|
caught when the suspend/resume configuration is in place. From
|
||
|
Gregory Nutt.
|
||
|
- apps/examples/smps: Fixes in some printf and in Kconfig. From
|
||
|
Mateusz Szafoni.
|
||
|
|
||
|
* System Utilities: apps/system:
|
||
|
|
||
|
- apps/system/cu: (1) Protect from possible re-definition of signal
|
||
|
values, (2) Fix CU ctrl-C hand when remote core hang. From ligd.
|
||
|
- apps/system/i2c: Fix a backward comparison in i2c_main.c. Noted
|
||
|
by Jakob Haufe. From Gregory Nutt.
|
||
|
- apps/system/nsh: Fix compile errors with
|
||
|
CONFIG_EXAMPLES_NSH_SYMTAB=y. From Masayuki Ishikawa.
|
||
|
- apps/system/ping and ping6: Send ID and seqno in network byte
|
||
|
order. From Xiang Xiao.
|
||
|
- apps/system/ping and ping6: Change dependency in ping and ping6
|
||
|
Kconfig. These may be implemented in users sockets and, hence,
|
||
|
may need to be available even if ICMP and ICMPv6 sockets are not
|
||
|
support. From Xiang Xiao.
|
||
|
- apps/system/system: Add 'const' to make function prototype
|
||
|
compatible with OpenGroup.org requirement From Xiang Xiao.
|
||
|
- apps/system/zmodem: Fix error "sz_main.o: No such file or
|
||
|
directory" From Xiang Xiao.
|
||
|
|
||
|
* Network Utilities: apps/netutils:
|
||
|
|
||
|
- apps/netutils/ftpc: Fix handling of url-encoded strings From
|
||
|
Dmitriy Linikov.
|
||
|
- apps/netutils/ping: Remove unsupported ping. netutils/ping is not
|
||
|
supported anymore. It's better to remove this folder for
|
||
|
preventing confusing. ping is supported by system/ping. From
|
||
|
EunBong Song.
|
||
|
|
||
|
* Wireless Utilities: apps/wireless:
|
||
|
|
||
|
- apps/wireless/wapi: Remove dependency on CONFIG_EXPERIMENTAL from
|
||
|
Kconfig From Gregory Nutt.
|
||
|
|
||
|
* GPS Utilities: apps/gpsutils:
|
||
|
|
||
|
- apps/gpsutils/minmea: Include wchar.h in minmea.c file to fix
|
||
|
wint_t error From Alan Carvalho de Assis.
|
||
|
|
||
|
* Interpreters: apps/interpreters:
|
||
|
|
||
|
- Remove apps/interpreters/micropthon. There are several reasons
|
||
|
for this. (1) the current version 1.3.8 is very old and no one is
|
||
|
supporting it. (2) the port only includes the core micropython
|
||
|
logic and none of the Python libraries. As such it is useless in
|
||
|
any real application. (3) There have recently been compile
|
||
|
failures reported. It looks like this is due to changes in newlib
|
||
|
based toolchains that now bring in incompatible newlib header
|
||
|
files. See issue 104 at
|
||
|
https://bitbucket.org/nuttx/nuttx/issues/104/build-micropython-138-error.
|
||
|
With no one dedicated to the support of micropython, it can no
|
||
|
longer be carried in the NuttX apps/ repository. From Gregory Nutt.
|