diff --git a/ChangeLog b/ChangeLog index 8cb91dd6f57..d809a37a2f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3175,7 +3175,7 @@ * configs/*/defconfig: Update all defconfig files to remove syntax that is incompatible with the mconf configuration tool. * arch/arm/src/stm32/stm32_otgfshost.c: This driver now appears to be - functional (although more testing is necesary). + functional (although more testing is necessary). 6.22 2012-09-29 Gregory Nutt @@ -4832,7 +4832,7 @@ handling: If the NULL-packet needed flag ever gets set, then it is not cleared and inifinite NULL packets result. This only effects the CDC/ACM class and was the cause of the failure of - configs/stm32f3discovery/usbnsh configureation which works great + configs/stm32f3discovery/usbnsh configuration which works great after this change (2013-5-29). * drivers/usbdev/cdcacm.c and pl2303.c and include/nuttx/usb/cdcacm.h: Change the default IN request buffer size from 64 to 96. This will @@ -19522,7 +19522,7 @@ sched/clock: Move the implementation of clock() from libs/libc/time to sched/clock. This is necessary because it calls the (now) internal OS function clock_systimer. clock() is now accessed only - via a system call in certain configuratins. From Gregory Nutt + via a system call in certain configurations. From Gregory Nutt (2018-06-16). * /arch/arm/src/xmc4: Fix XMC4 SPI. It was working only for the first transfer From Alan Carvalho de Assis (2018-06-16). @@ -19533,7 +19533,7 @@ (2018-06-16). * configs/stm32f4discovery: Remove STM32F4BB dependence from rndis; add RAMDISK support. From Alan Carvalho de Assis (2018-06-18). - * arch/arm/src/stm32l4: STM32L4 has fetchadd and testset From Juh + * arch/arm/src/stm32l4: STM32L4 has fetchadd and testset From Juha Niskanen (2018-06-18). * libs/libc/netdb/lib_getaddrinfo.c: The 'port' argument to the static alloc_ai() function is always in network byte order. However, that @@ -19939,7 +19939,7 @@ new START of messages from a repeated start. No lower-half I2C drivers actually implement this new flag bit, however. drivers/i2c/i2c_writeread.c: Use new repeated START definition where - appopriate. Rename I2C_M_NORESTART to I2C_M_NOSTART since it may be + 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 (2018-08-03). * configs/nucleo-l432kc: Fix stm32_userleds. After change LD2 to LD3 @@ -20102,7 +20102,7 @@ * include/stdio.h: Add prototypes for popen() and pclose(). Actual implementation is in apps/system/popen() From Gregory Nutt (2018-08-17). - * inclued/stdio.h: popen()/pclose() are not available in KERNEL mode + * include/stdio.h: popen()/pclose() are not available in KERNEL mode because they depend on task_spawn() which is not available in KERNEL mode. From Gregory Nutt (2018-08-17). * fs/procfs/: Add support for /self, a convenient way for getting @@ -20189,15 +20189,15 @@ * arch/ and task/sched: 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 callculate the offset from the stack + architectures. Rather calculate the offset from the stack allocation pointer From Xiang Xiao (2018-08-24). * include/nuttx/arch.h: Add prototype for an architecture-specific up_trigger_irq function From dongjianli (2018-08-24). * include/nuttx/arch.h: Add prototype for an architecture-specific up_trigger_irq function arch/, include/nuttx, sched/sched: Add the garbage collection hook - so each architecture can do custom memory cleanup if necesary. - arch/Kconfig: Add configureation CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS to + so each architecture can do custom memory cleanup if necessary. + arch/Kconfig: 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 (2018-08-24). * include/nuttx/arch.h: Add architecture-specific prototypes for @@ -20234,7 +20234,7 @@ hardware block (like Linux MFD) From zhuguangqing (2018-08-24). * sched/irq/irq_procfs.c: Fix occasional computation error when fracpart >= 1000 From Xiang Xiao (2018-08-24). - * arch/: Fix an error found in build testing. The protoype of + * arch/: Fix an error found in build testing. 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 (2018-08-24). @@ -20279,7 +20279,7 @@ * Write to a pipe when there are no readers from the pipe should return -EPIPE. From ligd (2018-08-26). * drivers/serial/pty.c: Add support so that a PTY can poll for both - IN/OUT event simultaneously. From Gregory Nutt (2018-08-26). + IN/OUT event simultaneously. From ligd (2018-08-26). * drivers/serial: Add Ctrl-C/Ctrl-X support. This is an initial working implementation that still requires that several details be resolved. @@ -20404,7 +20404,7 @@ types.h indirectly. This fixes a compilation error with newlib's math.h: 'unknown type name wint_t' From Xiang Xiao (2018-08-27). * include/nuttx/nuttx.h: Added nuttx.h header file which is analogous - to the linux.h header file. Currently, it contains on the defintion + to the linux.h header file. Currently, it contains on the definition of the container_of() macro. From zhuyanlin (2018-08-27). * Kconfig: Move 'option modules' from NSH_FILE_APPS to BUILD_LOADABLE From anchao (2018-08-27). @@ -20453,7 +20453,7 @@ drivers/timers/arch_rtc.c: Implement RTC arch API on top of RTC driver interface include/nuttx/timers/rtc.h: Extend struct rtc_time by adding - tm_nsec if RTC supporst hiresolution time. From Xiang Xiao + tm_nsec if RTC supports hiresolution time. From Xiang Xiao (2018-08-27). * sched/signals: Update the signal default action logic to support sigaction(). signaction() must be able to handle and input action @@ -20477,7 +20477,7 @@ hold the lock if OS isn't ready From Xiang Xiao (2018-08-27). * drivers/pm: 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 agian + counting before enter low power state and restore the counting again in PM_RESTORE notification From zhuguangqing (2018-08-27). * drivers/power: PM: Add timer to decrease PM level automatically From ligd (2018-08-27). @@ -20560,7 +20560,7 @@ some compilation issues. sched/sched: If a task/thread was already blocked when SIGSTOP/SIGSTP was received, it will restart in the running state. - I will appear that to the task/thread that the blocked condition was + 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 (2018-08-30). * arch/arm/src/lpc43xx: Make WWDT usable again. LPC43xx WWDT driver diff --git a/ReleaseNotes b/ReleaseNotes index 9728c5ac3e8..eca1b7ccfcb 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -18218,3 +18218,1459 @@ detailed bugfix information): - apps/wireless: Applications should use the standard clock() interface, not the internal NuttX clock_systimer() interface. + +NuttX-7.26 Release Notes +------------------------ + +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_out() 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//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 ! + ' 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 mesage 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 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 pre-empt 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 Liftime 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 selecte 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 neccesary. 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 avaiable 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.