1009 lines
47 KiB
Plaintext
1009 lines
47 KiB
Plaintext
|
NuttX-7.27
|
||
|
----------
|
||
|
|
||
|
The 127th release of NuttX, Version 7.27, was made on November 14, 2018,
|
||
|
and is available for download from the Bitbucket.org website. Note
|
||
|
that release consists of two tarballs: nuttx-7.27.tar.gz and
|
||
|
apps-7.27.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:
|
||
|
|
||
|
- Assertions: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and
|
||
|
replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'. From
|
||
|
Gregory Nutt.
|
||
|
- Assertions: up_registerdump capture the general register if not yet
|
||
|
saved and up_saveusercontext is implemented, the register dump is very
|
||
|
useful to find the cause of failure. From Xiang Xiao.
|
||
|
- Assertions: up_stackdump() dump the full stack if stack overflow the
|
||
|
stack info is very useful to find the backtrace From Xiang Xiao.
|
||
|
- binfmt/ and libs/libc: Make exepath_*() more common: Move
|
||
|
exepath_*() related code to libc/misc, rename exepath_ to envpath_,
|
||
|
and rename BINFMT_EXEPATH to LIBC_ENVPATH. From nchao.
|
||
|
- CLOCK: Support CLOCK_MONOTONIC in clock_getres.c. From Xiang Xiao.
|
||
|
- Clock Timekeeping: Use clock_basetime() to initialize
|
||
|
g_clock_wall_time to get the best initial RTC value and initialize
|
||
|
g_clock_last_counter too since the hardware may not start counting
|
||
|
from zero. From Xiang Xiao.
|
||
|
- exit(): Add SCHED_EXIT_KILL_CHILDREN option to kill all child threads
|
||
|
when the main thread of a task exits. From nchao.
|
||
|
- IOBs: Add an IOB notifier that will notify any registered threads
|
||
|
that want to known when an IOB has been freed. This is basically just
|
||
|
a wrapper around the generic notifier. Includes a divider that can be
|
||
|
used to reduce the rate of IOB notifications. From Gregory Nutt.
|
||
|
- Memory Manager: In mm_free(), add DEBUGASSERT()'s to catch memory
|
||
|
corruption early. From Petteri Aimonen.
|
||
|
- Memory Manager: Add debug option CONFG_MM_FILL_ALLOCATIONS to fill
|
||
|
all mallocs() with recognizable value. From Petteri Aimonen.
|
||
|
- sched/signal and syscall/: Add support for pselect() and ppoll()
|
||
|
functions From dongjianli.
|
||
|
- Task Groups: group_foreachchild() now iterates in reverse order since
|
||
|
the callback (e.g. group_killchildren) may remove the tcb from list.
|
||
|
From zhangyuan7.
|
||
|
- WDOG Timer: Improve accuracy of wd_gettime() in tickless mode From
|
||
|
ligd.
|
||
|
- Work Queues: Add a generic notification facility that runs on a work
|
||
|
queue. The notification facility can notify a group of subscribers to
|
||
|
an event via callbacks. This API is for use within the OS only. From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
* File Systems/Block and MTD Drivers
|
||
|
|
||
|
- FAT: Add CONFIG_FAT_LFN_ALIAS_HASH to speed up creating long
|
||
|
filenames. Long filenames on FAT file systems have associated 8.3
|
||
|
character alias short filenames. The traditional form of these is
|
||
|
FILENA~1.EXT with a running count of the number of similar names.
|
||
|
However creating this unique count can take several seconds if there
|
||
|
are many similarly named files in the directory. Enabling
|
||
|
FAT_LFN_ALIAS_HASH uses an alternative format of FI0123~1.TXT where
|
||
|
the four digits are a hash of the original filename. This method is
|
||
|
similar to what is used by Windows 2000 and later. From Petteri
|
||
|
Aimonen.
|
||
|
- FAT: Add CONFIG_FAT_LFN_ALIAS_TRAILCHARS alternative format for 8.3
|
||
|
filenames. Traditional format for long filename 8.3 aliases takes
|
||
|
first 6 characters of long filename. If this option is set to N > 0,
|
||
|
NuttX will instead take first 6-N and last N characters to form the
|
||
|
short name. This is useful for filenames like "datafile12.txt" where
|
||
|
the first characters would always remain the same. From Petteri
|
||
|
Aimonen.
|
||
|
- FAT: if block driver wait seems to be a long one, give time for other
|
||
|
threads to run. From Petteri Aimonen.
|
||
|
- file_open(): Add file_open() implementation with some fully-function,
|
||
|
interim, placeholder logic. Change occurrences of open() followed by
|
||
|
file_detach() in the OS to file_open(). From Gregory Nutt.
|
||
|
- MX25LF25635F: Add support to Macronix MX25LF25635F serial NOR flash
|
||
|
From David Sidrane.
|
||
|
- nx_open(): Add nx_open() which is the same as open() except that it
|
||
|
does not create a cancellation point nor does it modify the errno
|
||
|
variable. Change most other, non-controversial calls to open() to
|
||
|
nx_open(). From Gregory Nutt.
|
||
|
- file_ioctl(): Replace calls to ioctl() in the OS to file_ioctl().
|
||
|
From Gregory Nutt.
|
||
|
- mount: Add mount() support for file systems that require MTD drivers
|
||
|
(vs. block drivers). From Gregory Nutt.
|
||
|
- mount: Add support for mounting a file system with either a block or
|
||
|
an MTD driver. From Xiang Xiao.
|
||
|
- MTD FTL: Support BIOC_FLUSH ioctl From Xiang Xiao.
|
||
|
- MTD FTL: Make READAHEAD and WRITEBUFFER work independently of each
|
||
|
other. There have cases we use writebuffer but not readbuffer, so the
|
||
|
write buffer must be flushed before read. Let rwb driver do it. From
|
||
|
zhuyanlin.
|
||
|
- MTD FTL: Allocate eblock only when it's really needed From Xiang Xiao.
|
||
|
- MTD FTL: Add support support unlink operation to avoid the memory
|
||
|
leak. From Xiang Xiao.
|
||
|
- MTD Partition: Add register_mtdpartition() for MTD partition From
|
||
|
Xiang Xiao.
|
||
|
- MTD Partition: Remove the hard code partition name length From Xiang
|
||
|
Xiao.
|
||
|
- MTD Proxy: Make MTD device accessible via a character driver proxy
|
||
|
like block devices From Xiang Xiao.
|
||
|
- ProcFS: Change output of the ProcFS 'env' file so that it looks more
|
||
|
like output from the 'env' command. From Gregory Nutt.
|
||
|
- ProcFS: Add support to provide MLD statistics at /proc/net/mld. From
|
||
|
Gregory Nutt.
|
||
|
- ProcFS: Remove MTD ProcFS and mtd_procfsoperations() since we can now
|
||
|
get the same information from inode From Xiang Xiao.
|
||
|
- ProcFS: Add /proc/version support to get version info From iuhaitao.
|
||
|
- ProcFS: Add support for named MTD drivers in the pseudo file system.
|
||
|
This will, eventually, allow us to mount file systems that need MTD
|
||
|
drivers without having to fake an intervening block driver.
|
||
|
- R/W Buffer: Don't queue work to flush write buffer if
|
||
|
CONFIG_DRVR_WRDELAY == 0 From Xiang Xiao.
|
||
|
- R/W Buffer: Improve the rwb_read/write overlap performance From
|
||
|
zhuyanlin.
|
||
|
- SIM HOSTFS: Support S_IFSOCK, DT_LNK, O_DIRECT and O_SYNC From Xiang
|
||
|
Xiao.
|
||
|
- SPIFFS: Brings in a NuttX port of version 0.3.7 of Peter Anderson's
|
||
|
SPIFFS flash file system into NuttX. From Gregory Nutt.
|
||
|
|
||
|
* Networking/Network Drivers:
|
||
|
|
||
|
- Network Configuration Add new configuration CONFIG_NET_MCASTGROUP.
|
||
|
This option is selected automatically if either CONFIG_NET_IGMP or
|
||
|
CONFIG_NET_MLD are selected. Most conditional logic based on
|
||
|
CONFIG_NET_IGMP replaced with conditioning on CONFIG_NET_MCASTGROUP.
|
||
|
From Gregory Nutt.
|
||
|
- Network Device: Add notification logic for the case where the network
|
||
|
goes down. From Gregory Nutt.
|
||
|
- Network Device: Rename netdev_dev_lladdrsize() to netdev_lladdrsize()
|
||
|
and move the prototype to include/nuttx/nex/netdev.h, giving is global
|
||
|
scope within the OS. From Xiang Xiao.
|
||
|
- ARP: Redesign ARP table aging to simplify the net initialization
|
||
|
From Xiang Xiao.
|
||
|
- ARP: Check ifname match before sending packet. From Xiang Xiao.
|
||
|
- ARP and ICMPv6: Double the delay time on each iteration for ARP/ICMP
|
||
|
to fight work jitter better. From Xiang Xiao.
|
||
|
- ICMP/ICMPv6: Add NET_ICMP[v6]_NO_STACK for usrsock case From Xiang
|
||
|
Xiao.
|
||
|
- ICMPv6: Encapsulate the link scope address generation into
|
||
|
icmpv6_linkipaddr() From Xiang Xiao.
|
||
|
- ICMPv6: Remove the coupling between ICMPv6 and Ethernet by moving all
|
||
|
Ethernet stuff to neighbor_ethernet_out.c and make the mac address as
|
||
|
first field. From Xiang Xiao.
|
||
|
- ICMPv6 MLD: Implement Multicast Listener Discovery (MLD) protocol based
|
||
|
on RFC 2710 and RFC 3810. From Gregory Nutt.
|
||
|
- ICMPv6 MLD: Implement MLDv1 compatibility mode. From Gregory Nutt.
|
||
|
- ICMPv6 MLD: Implement 'Other Querier Present Timer'. This timer is
|
||
|
used to revert to Querier mode if there is no other querier on the
|
||
|
network. From Gregory Nutt.
|
||
|
- IGMP: Backport some MLD design improvements/fixes. From Gregory Nutt.
|
||
|
- IPv4 setsockopt(): Add implementation for all IPv4 socket options that
|
||
|
have implemented IOCTL command counterparts. From Gregory Nutt.
|
||
|
- IPv4/6 Socket Options: Add framework to support IPv4 and IPv6
|
||
|
protocol socket options (i.e., SOL_IP and SOL_IP6). Handling of these
|
||
|
socket options was a necessary step on the way to ICMPv6 MLD support.
|
||
|
From Gregory Nutt.
|
||
|
- ICMPv6 Autoconfiguration: Don't take the network device down when
|
||
|
reconfiguring only the IP address from within ICMPv6 logic.
|
||
|
Recommended by Xiang Xiao in order to avoid the long delays of
|
||
|
bringing some networks back up. Normally it is required that the
|
||
|
network be in the "down" state when re-configuring the network
|
||
|
interface. This is thought not to be a necessary here because: (1)
|
||
|
The ICMPv6 logic here runs with the network locked so there can be no
|
||
|
outgoing packets with bad source IP addresses from any asynchronous
|
||
|
network activity using the device being reconfigured. And (2) incoming
|
||
|
packets depend only upon the MAC filtering. Network drivers do not
|
||
|
use the IP address; they filter incoming packets using only the MAC
|
||
|
address which is not being changed here. From Gregory Nutt.
|
||
|
- IPv6 Input: Add logic to skip over the variable number of IPv6
|
||
|
extension headers that may be present between the IPv6 header and the
|
||
|
transport layer header. The extension headers are simply ignored.
|
||
|
This is necessary because with MLD, certain incoming messages may
|
||
|
have, at a minimum, a Router Alert Hop-by-hop extension header.
|
||
|
Additional changes to ICMPv6, TCP, and UDP input to handle the offset
|
||
|
protocol headers. From Gregory Nutt.
|
||
|
- IPv6 Neighbor: Simplify the neighbor table aging process From Xiang
|
||
|
Xiao.
|
||
|
- IPv6 Neighbor: Simplify neighbor_dumpentry() implementation From
|
||
|
Xiang Xiao.
|
||
|
- IPv6 Neighbor: neighbor_lookup() checks if the target IP belongs to
|
||
|
one of the local network devices. From Xiang Xiao.
|
||
|
- IPv6 Neighbor: Support neighbor_out() for multiple link layer at the
|
||
|
same time From Xiang Xiao.
|
||
|
- IPv6 setsockopt(): Implement the IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP
|
||
|
socket options. From Gregory Nutt.
|
||
|
- TCP: Extend the TCP notification logic logic so that it will report
|
||
|
loss of connection events. From Gregory Nutt.
|
||
|
- SLIP: Add IPv6 support and fix minor issue From Xiang Xiao.
|
||
|
- TCP: Add TCP poll() logic to receive notifications when IOBs are
|
||
|
freed. From Gregory Nutt.
|
||
|
- TCP: In TCP backlog, add SOMAXCONN definition and implementation per
|
||
|
OpenGroup.org. From zhangyuan7.
|
||
|
- TCP/UDP: Extend send()/sendto() logic it also requires that at least
|
||
|
one IOB is also available to be able to send. From Gregory Nutt.
|
||
|
- TCP/UDP: Add notification logic when TCP or UDP read-ahead data is
|
||
|
buffered. From Gregory Nutt.
|
||
|
- TUN: Call ipv[4|6]_input dynamically by checking packet header and
|
||
|
remove the code duplication From Xiang Xiao.
|
||
|
|
||
|
* Wireless/Wireless Drivers:
|
||
|
|
||
|
- Broadcom IEEE 802.11: Add capability for Broadcom chips to get
|
||
|
firmware and CLM data from a mounted file system vs. in-memory data
|
||
|
structures. From Ramtin Amin.
|
||
|
- XBee IEEE 802.15.4: Add support for setting/getting tx power. From
|
||
|
Anthony Merlino.
|
||
|
|
||
|
* Other Common Device Drivers:
|
||
|
|
||
|
- GPIO: Support multiple registrations of GPIO signal events. From
|
||
|
Xiang Xiao.
|
||
|
- INA226: Add INA226 device driver. From Daniel P. Carvalho.
|
||
|
- MAX7219: Support all digits presented in the MAX7219 datasheet. From
|
||
|
Alan Carvalho de Assis.
|
||
|
- MLX90614: Add support for the Infrared Thermometer MLX90614 From
|
||
|
Alan Carvalho de Assis.
|
||
|
- RTC Driver: up_rtc_set_lowerhalf call clock_synchronize() for
|
||
|
external RTC. From Xiang Xiao.
|
||
|
- SYSLOG: Uncomment the g_syslog_channel->sc_flush call in
|
||
|
syslog_flush(). From Xiang Xiao.
|
||
|
- SYSLOG: syslog_initialize initialize dev/syslog too and call syslog
|
||
|
to add the prefix and timestamp. From Xiang Xiao.
|
||
|
- USB Composite and DFU drivers: Add support for Microsoft OS
|
||
|
descriptors. These Microsoft-only descriptors help in loading the
|
||
|
correct driver on Windows. They are especially helpful to give libusb
|
||
|
access to a custom device without having to manually configure/install
|
||
|
WinUSB driver. With this change DFU interface works automatically on
|
||
|
Windows 10 with dfu-util 0.9 and libusb 1.0.22. On Windows 7 it still
|
||
|
appears to need driver installation. From Petteri Aimonen.
|
||
|
- USB DFU Device: Add DFU Runtime driver for activating boot-loader
|
||
|
through USB command. From Petteri Aimonen.
|
||
|
- USB RNDIS Device: Account for CONFIG_NET_GUARDSIZE in allocation of
|
||
|
packet buffer allocation: Make USB device parameters configurable.
|
||
|
From Sakari Kapanen.
|
||
|
- USB RNDIS Composite Device: Fix strid comparison. Add support for
|
||
|
composite configuration. From Petteri Aimonen.
|
||
|
|
||
|
* Microchip PIC32MX Boards;
|
||
|
|
||
|
- PCBLOGIC-PIC32MX: Remove support for the PCB Logic PIC32MX board. I do
|
||
|
not find any references to PCB Logic on the web and I do not believe
|
||
|
that this breakout board is available any longer. From Gregory Nutt.
|
||
|
|
||
|
* NXP Freescale i.MX RT:
|
||
|
|
||
|
- i.MXRT: Added support for the i.MXRT 106x family. From David Sidrane.
|
||
|
|
||
|
* NXP Freescale i.MX RT Drivers:
|
||
|
|
||
|
- i.MXRT: Add LPI2C driver. From Ivan Ucherdzhiev.
|
||
|
- i.MXRT LPSPI: Add full support for the LPSPI in poll mode; includes a
|
||
|
minor fix for LPI2C.
|
||
|
- i.MXRT USDHC: Initial commit of the i.MXRT SDHC driver working in PIO
|
||
|
mode. From Dave Marples.
|
||
|
- i.MXRT USDHC: Complete the interrupt driven USDHC1 functionality for
|
||
|
the IMXRT EVKB. Improve SD card handling in the DMA case. From Dave
|
||
|
Marples.
|
||
|
|
||
|
* NXP Freescale i.MX RT Boards:
|
||
|
|
||
|
- IMXRT1060-EVK: Add support for the IMXRT1060-EVK. From David Sidrane.
|
||
|
|
||
|
* NXP LPC17xx Boards:
|
||
|
|
||
|
- Olimex-LPC1766STK: Add support to initialize a USB HID keyboard. Add
|
||
|
a configuration for testing the HID keyboard. From Gregory Nutt.
|
||
|
|
||
|
* On Semi LPC23450 Drivers:
|
||
|
|
||
|
- LC823450: MPU support for FLAT build From Masayuki Ishikawa.
|
||
|
|
||
|
* STMicro STM32:
|
||
|
|
||
|
- STM32: Add support for STM32F303xD/E. From Mateusz Szafoni.
|
||
|
- STM32 L4: Add initial support for STM32L412 and STM32L422 chips From
|
||
|
Juha Niskanen.
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- STM32 ADC: Major refactor: Use STM32 ADC IP core version and ADC
|
||
|
available functions instead of chip family names in conditional
|
||
|
compilation. Replace family specific ADC headers with STM32 ADC IP
|
||
|
core version headers. Configurable sample time supported for all
|
||
|
chips, not just L1. Enable/disable interrupts supported for all
|
||
|
chips, not just L1. Add ADC resolution configuration. From Mateusz
|
||
|
Szafoni.
|
||
|
- STM32 PWM: Improvements in STM32 PWM low level driver: Support
|
||
|
complementary outputs, dead-time configuration, output polarity and
|
||
|
IDLE state configuration. From Mateusz Szafoni.
|
||
|
- STM32 PWM: Break and lock configuration and some cosmetics From
|
||
|
Mateusz Szafoni.
|
||
|
- STM32 SPI. Enable separate DMA per SPI configuration From Daniel Agar.
|
||
|
- STM32 F7 FLASH: Allow programming OTP blocks through progmem
|
||
|
interface From Jussi Kivilinna.
|
||
|
- STM32 H7 I2C: Add I2C support for STM32H7. From raiden00pl.
|
||
|
- STM32 H7 RCC: Update RCC definitions, add SPI clock configuration and
|
||
|
some fixes in RCC. From raiden00pl.
|
||
|
- STM32 H7 SPI: Add basic SPI support for H7. Enable SYSCFG clock in
|
||
|
RCC. From Mateusz Szafoni.
|
||
|
|
||
|
* STMicro STM32 Boards:
|
||
|
|
||
|
- Nucleo-F302R8: Add support for Nucleo-F302R8 board From raiden00pl.
|
||
|
- Nucleo-F302R8: Add PWM support. From Mateusz Szafoni.
|
||
|
- Nucleo-F303ZE: Add basic support for nucleo-f303ze. From Mateusz
|
||
|
Szafoni.
|
||
|
- Nucleo-F303ZE: Support for ADC and ADC example. From Mateusz Szafoni.
|
||
|
- Nucleo-L432KC: Added support for AT45DB Serial Flash From Daniel P.
|
||
|
Carvalho.
|
||
|
- Nucleo-L432KC: Add support for the INA226. From Daniel P. Carvalho.
|
||
|
- Nucleo-H743ZI: Add NRF24L01 support. From Mateusz Szafoni.
|
||
|
- Olimex-STM32-P407: Add a HID keyboard configuration. From Gregory
|
||
|
Nutt.
|
||
|
- STM32F4-Discovery: Add MLX90614 support for the STM32F4-Discovery
|
||
|
board From Alan Carvalho de Assis.
|
||
|
- STM32F429I-DISCO: Add PWM support. From Mateusz Szafoni.
|
||
|
- STM32F429I-DISCO: Support for ADC and ADC example. From Mateusz
|
||
|
Szafoni.
|
||
|
|
||
|
* MIPS32:
|
||
|
|
||
|
- MIPS32 Toolchain.defs: Add toolchain flags for the pinguino toolchain
|
||
|
under Linux. From Ouss4.
|
||
|
|
||
|
* RISC-V:
|
||
|
|
||
|
- RISC-V GAP: This commit brings in support for the GAP8 architecture.
|
||
|
The GAP8 is a 1+8-core DSP-like RISC-V MCU. Also included is support
|
||
|
for the Gapuino GAP8 evaluation board. From hhuysqt.
|
||
|
|
||
|
* Other Tools:
|
||
|
|
||
|
- tools/tesbuild.sh: No longer installs and builds the NxWidgets
|
||
|
libraries. They are now a port of apps/. From Gregory Nutt.
|
||
|
|
||
|
* Libraries/Header Files:
|
||
|
|
||
|
- include/net and include/sys: Align the constant values with values in
|
||
|
the Linux kernel which makes targeting the usrsock server to Linux
|
||
|
kernel easier. From Xiang Xiao.
|
||
|
- include/netdb.h Add NO_ADDRESS definition From zhangyuan7.
|
||
|
- include/netinet/in.h: Adds definitions for IPPROTO_IPV6 socket
|
||
|
options to netinet/in.h. Adds missing fields to sockaddr_in6. Adds
|
||
|
struct ipv6-mreq. These changes all follow the opengroup standard for
|
||
|
netinet/in.h From Anthony Merlino.
|
||
|
- include/netinet/in.h: Add IPv4 SOL_IP socket options for symmetry
|
||
|
with IPv6 definitions added in a previous commit. Remove some
|
||
|
duplicate types from sys/sockio.h. From Gregory Nutt.
|
||
|
- include/netinet/in.h: Add other definitions required by
|
||
|
OpenGroup.org. From Gregory Nutt.
|
||
|
- include/netinet/in.h: Add Linux IP_PKTINFO and IPV6_PKTINFO
|
||
|
definitions.
|
||
|
- include/nuttx/net/ipv6ext.h: Create header file with all of the
|
||
|
definitions of IPv6 extension headers that I could find. From Gregory
|
||
|
Nutt.
|
||
|
- include/nuttx/net/mld.h: Add MLD header file based on RFC2710 and
|
||
|
RFC3810. From Gregory Nutt.
|
||
|
- include/sys/socket.h: With increased size of struct sockaddr_in6, the
|
||
|
size of struct sockaddr_storage in include/sys/socket.h must also be
|
||
|
increase so that it can contain the new, larger sockaddr_in6. From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
- libs/libc/misc: Add implementation of CRC8-CCITT. From Alan Carvalho
|
||
|
de Assis.
|
||
|
- libs/libc/modlib: Add per-module library symbol table support. From
|
||
|
nchao.
|
||
|
- libs/libc/net: Add basic implementation for recvmsg() and sendmsg()
|
||
|
per OpenGroup.org specification. From ligd.
|
||
|
- libs/libc/netdb: A few improvements to getaddrinfo: (1) Use the
|
||
|
protocol and socktype hints in returned address, (2) Ignore AI_PASSIVE
|
||
|
argument if hostname is not NULL From Anthony Merlino.
|
||
|
- libs/libc/netdb: Make DNS receive timeout configurable. From ligd.
|
||
|
- libs/libc/stdio: Eliminate recursive in conversion functions of
|
||
|
lib_vsprintf(). From Xiang Xiao.
|
||
|
- libs/libc/string: Add some new functions defined in POSIX.1-2017:
|
||
|
stpncpy(), strsignal(), psignal(), psiginfo(). From Gregory Nutt.
|
||
|
- libs/libc/string: Add memrchr() function From Xiang Xiao.
|
||
|
- libs/libc/string: Make strerror() return the string "Success" for
|
||
|
error = 0. From Petteri Aimonen.
|
||
|
|
||
|
* Build System:
|
||
|
|
||
|
- Makefile.unix/win: Remove deletion of Eclipse project files from make
|
||
|
distclean target. From Gregory Nutt.
|
||
|
- apps/Application.mk: Fix some build issues. (1) Unable to found
|
||
|
target 'context' when CONFIG_NSH_BUILTIN_APPS disabled. (2) Unable to
|
||
|
generate multiple programs. From Chao An.
|
||
|
- apps/Directory.mk: Fix distclean targets. Makefiles were not
|
||
|
removing generated Kconfig files. There was then no way to remove
|
||
|
this Kconfig files without manually deleting them one at a time. From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
* NSH: apps/nshlib:
|
||
|
|
||
|
- apps/nshlib/, apps/examples/: Update to show newer file system
|
||
|
object types returned by stat(). From Gregory Nutt.
|
||
|
- apps/nshlib: Add support for the 'env' command. From Gregory
|
||
|
Nutt.
|
||
|
- apps/nshlib: Add support for NSH local variables if
|
||
|
CONFIG_NSH_VARS are set. These are like environment variables but
|
||
|
are local to NSH. The importance of this is that these variables
|
||
|
are *not* inherited when NSH creates a new task. The new command
|
||
|
'export' was added. In this case, the NSH variable will be promoted
|
||
|
to an environment variable and will then be inherited by any tasks
|
||
|
executed by NSH. From Gregory Nutt.
|
||
|
- apps/nshlib: If CONFIG_NSH_VARS=y, the NSH 'set' command with no
|
||
|
argument will list all of the local NSH variables. From Gregory
|
||
|
Nutt.
|
||
|
|
||
|
* Examples/Tests: apps/examples:
|
||
|
|
||
|
- apps/examples/gpio: Align with GPIO driver update From wangyanjiong.
|
||
|
- apps/examples/ina226: Added INA226 example From Daniel P. Carvalho.
|
||
|
- apps/examples/mld: Add a test of MLD. Provides a mechanism for some
|
||
|
low-level bring-up of MLD. From Gregory Nutt.
|
||
|
- apps/examples/mlx90614: Add mlx90614 test example From Alan Carvalho
|
||
|
de Assis.
|
||
|
- apps/examples/mlx90614/: Include support to change device address on
|
||
|
mlx90614 From Alan Carvalho de Assis.
|
||
|
- apps/examples/fstest: Adapt the existing fstest example for SPIFFS:
|
||
|
For SPIFFS, add garbage collection and file system integrity IOCTL
|
||
|
calls. Call statfs() and show state of file system on each loop. Add
|
||
|
logic to dump logic content of SPIFFS. Ignore EINTR errors while
|
||
|
reading or writing. Add configuration option to customize stack
|
||
|
size. Detect when the media is full and stop writing files. Report
|
||
|
total file size. From Gregory Nutt.
|
||
|
- apps/examples/tcpblaster: Add an option to use poll() to pace input
|
||
|
or output. From Gregory Nutt.
|
||
|
- apps/examples/tcpblaster: Select CONFIG_LIBC_FLOATINGPOINT
|
||
|
automatically. Units in output are wrong: Not Kbps bus Kb/Sec. From
|
||
|
Gregory Nutt.
|
||
|
- apps/examples/udpblaster: Add option to use poll() on output (only).
|
||
|
From Gregory Nutt.
|
||
|
|
||
|
* System Utilities: apps/system
|
||
|
|
||
|
- apps/system/ping and apps/system/ping6: Set optind to zero in the
|
||
|
error case/. Move all ping preparation work into icmp_ping. Support
|
||
|
-W <timeout> and -s <size> option. Decouple the output from ping
|
||
|
logic. From Xiang Xiao.
|
||
|
- apps/system/ping and pings and apps/netutils/ping: Extract icmp ping
|
||
|
and icmpv6 ping6 logic from system/ to C-callable library in
|
||
|
netutils/. From ligd.
|
||
|
- apps/system/progmem: Remove this utility. It makes illegal direct
|
||
|
calls into the OS. From Gregory Nutt.
|
||
|
|
||
|
* Network Utilities: apps/netutils:
|
||
|
|
||
|
- apps/netutils/netlib and apps/examples/igmp: Adapt to use the
|
||
|
corrected, semi-standard version of struct ip_msfilter. From Gregory
|
||
|
Nutt.
|
||
|
- apps/netutils/chat and apps/examples/chat: 'constify' chat variables
|
||
|
and parameters From Xiang Xiao.
|
||
|
|
||
|
* Wireless Utilities: apps/wireless:
|
||
|
|
||
|
- apps/wireless/ieee802154/i8sak: Properly shuts down event thread.
|
||
|
From Anthony Merlino.
|
||
|
- apps/wireless/ieee802154/i8sak: Fixes i8sak name. Accidentally renamed
|
||
|
to i8ask in recent changes From Anthony Merlino.
|
||
|
- apps/wireless/ieee802154/i8sak: Adds support for getting/setting
|
||
|
transmit power. From Anthony Merlino.
|
||
|
|
||
|
* Graphic Utilities: apps/graphics:
|
||
|
|
||
|
- apps/graphics/NxWidgets: Move the NxWidgets repository into the apps/
|
||
|
repository. Remove old apps/NxWidgets directory. Move NxWidgets
|
||
|
files into apps/graphics/NxWidgets. Integrate configuration/build
|
||
|
system. Fix file paths in file headers. Remove some duplicate
|
||
|
tools. Add new NxWidgets Unit Test configuration and build logic.
|
||
|
From Gregory Nutt.
|
||
|
- apps/graphics/NxWidgets: Add CNxString string + operator and
|
||
|
::format() function. Add CNumericEdit option to include unit name
|
||
|
after the value. Make CNxWidget useWidgetStyle() public. From
|
||
|
Petteri Aimonen.
|
||
|
- apps/graphics/NxWidgets: Add CLabelGrid control for displaying text
|
||
|
in grid format. From Petteri Aimonen.
|
||
|
|
||
|
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:
|
||
|
|
||
|
- Clock: Remove g_monotonic_basetime and g_clock_monotonic_time since
|
||
|
we don't need ensure monotonic time start from zero as state here:
|
||
|
http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html
|
||
|
From Xiang Xiao.
|
||
|
- Clock: Don't call up_timer_gettime in clock_gettime() and
|
||
|
clock_systimer() to ensure the return value from them consistent with
|
||
|
clock_systimespec From Xiang Xiao.
|
||
|
- Clock Initialization: clock_inittime() needs to be done with
|
||
|
CONFIG_SCHED_TICKLESS and clock_initialize should skip
|
||
|
clock_inittime() for external RTC case since the RTC isn't ready yet.
|
||
|
From Xiang Xiao.
|
||
|
- IOBs: Work around some issues with the IOB throttle semaphore. It
|
||
|
has some odd behaviors that can cause assertions in sem_post(). Also,
|
||
|
it seems to get outside of its range occasionally. Need to REVISIT
|
||
|
this. From Gregory Nutt.
|
||
|
- IOBs: iob_navail() was returning the number of free IOB chain queue
|
||
|
entries, not the number of free IOBs. Completely misnamed. From
|
||
|
Gregory Nutt.
|
||
|
- PM: Use the start time of state btime to calculate thrcnt; remove the
|
||
|
loop whose count may be very big after the long idle From ligd.
|
||
|
- PM Uninitialization: Fix pm_domain_s.stime un-initialize caused time
|
||
|
error. From ligd.
|
||
|
- sched_kfree() and sched_ufree(): This patch prevent heap corruption
|
||
|
in a corner case where memory is freed while switching contexts. This
|
||
|
change forces all de-allocations via sched_kfree() and sched_ufree()
|
||
|
to be delayed. Eliminating the immediate de-allocation prevents the
|
||
|
problem with the the re-entrant semaphore because the deallocation
|
||
|
always occurs on the worker thread, never on the suspended task. From
|
||
|
EunBong Song.
|
||
|
- sigsuspend(): sigsuspend() shouldn't eat the pending signal but
|
||
|
dispatch all instead From Xiang Xiao.
|
||
|
- task_restart(): Was restarting tasks with all signals set in the
|
||
|
sigprocmask set. Should have restarted with the sigprocmask cleared.
|
||
|
Noted by Jeongchan Kim From Gregory Nutt.
|
||
|
- unsetenv(): Fix and error in unsetenv() when un-setting the last of
|
||
|
the environment variables. From Gregory Nutt.
|
||
|
- waitpid(): Remove a bad error check. From Gregory Nutt.
|
||
|
|
||
|
* File System/Block and MTD Drivers:
|
||
|
|
||
|
- FAT: Fix file data corruption in fat_truncate(). From Petteri Aimonen.
|
||
|
- Partitions: Try MTDIOC_GEOMETRY IOCTL before bops's geometry.
|
||
|
From Xiang Xiao.
|
||
|
- MTD Progmem: Change up_progmem_npages() to up_progmem_neraseblocks().
|
||
|
page is a unit for read/write operation. eraseblock is a unit for
|
||
|
erase operation. up_progmem_npages() is a little bit confusing
|
||
|
because it returns number of erase blocks in flash memory. This patch
|
||
|
changes up_progmem_npages to up_progmem_neraseblocks.
|
||
|
up_progmem_eraseblock erase a block. so it's better to return the
|
||
|
erase block size than page size. From EunBong Song.
|
||
|
- R/W Buffer: Fix a lock issue From Xiang Xiao.
|
||
|
- SmartFS: Current sector should have a space for next entry size. If
|
||
|
not, we should move to next sector. From EunBong Song.
|
||
|
|
||
|
* Networking/Network Drivers:
|
||
|
|
||
|
- 6LoWPAN: Fixes bug in uncompress_addr handling of odd postfix. This
|
||
|
affected multicast compress/uncompress since it's the only logic that
|
||
|
used an odd postfix. The odd byte needs to be handled first, not
|
||
|
last. From Anthony Merlino.
|
||
|
- ARP and ICMPv6: Don't call d_txavail directly since it may point to
|
||
|
NULL From Xiang Xiao.
|
||
|
- ICMPv6: icmpv6_neighbor() shouldn't use the out of scope
|
||
|
variable(dripaddr) From Xiang Xiao.
|
||
|
- IPv6 input: Fixes logic in ipv6_input to handle more than ff02::/16
|
||
|
multicast addresses. Don't forward mcast packets if scope is not
|
||
|
appropriate From Anthony Merlino.
|
||
|
- IPv6 Input: Fix a logic error when the received IPv6 srcaddr is a
|
||
|
multicast address. Exiting logic only supported UDP multicast. But
|
||
|
MLD and certain other ICMPv6 packets also require acceptance of
|
||
|
multicast packets. From Gregory Nutt.
|
||
|
- TCP: In TCP recv window calculations, in order to receive data we
|
||
|
must not only have IOBs available, but we must also have at least one
|
||
|
IOB chain qentry available. Otherwise, we will advertise that we an
|
||
|
buffer a lot of data when, in fact, we cannot. This is an
|
||
|
experimental fix to a performance problem noted by Masayuki Ishikawa.
|
||
|
From Gregory Nutt.
|
||
|
- TCP: Fix compiler error and warning when CONFIG_NET_SENDFILE=y From
|
||
|
Xiang Xiao.
|
||
|
- TCP Input: Fix recovery when ackseq > unackseq. The comment near
|
||
|
this line says "reset the number of outstanding, unacknowledged
|
||
|
bytes". However, the code actually resets the whole TCP connection.
|
||
|
It was changed to the current form in commit f034d84ea1f with no
|
||
|
explanation of the intent. Recover the line to what it was before that
|
||
|
commit. From Sakari Kapanen.
|
||
|
- TCP Write Buffering: Fix buffer release handling on failed buffer
|
||
|
allocation. Attempt to release write buffer on failed TCP write I/O
|
||
|
buffer alloc and tryalloc failed to wrb->wb_iob assertion. From Harri
|
||
|
Luhtala
|
||
|
- TCP/UDP: In the POLLOUT poll logic, request an immediate Tx poll from
|
||
|
the network device bound to the socket. From Gregory Nutt.
|
||
|
- UDP: On a failure to find the destination device, fallback to
|
||
|
netdev_default device if the device is not found, rather than
|
||
|
arbitrary using the device at the head of the list of devices. From
|
||
|
Xiang Xiao.
|
||
|
- USRSOCK: Revert previous commit to re-allow combination of usrsock
|
||
|
and NuttX TCP/IP stack. For example, in case device has Ethernet and
|
||
|
mobile connectivity and NuttX TCP/IP stack is used when configured to
|
||
|
use Ethernet connection and usrsock when configured to use modem
|
||
|
(modem TCP/IP stack through usrsock). From Jussi Kivilinna.
|
||
|
- USRSOCK accept(): Mark newconn ready before issue accept request to
|
||
|
avoid the case that the request is discarded due to the socket being
|
||
|
in the invalid state From Xiang Xiao.
|
||
|
|
||
|
* Wireless/Wireless Drivers:
|
||
|
|
||
|
- Broadcom 802.11 Driver: There were two functions that have a address
|
||
|
issue. In bcmf_read_sbreg() and bcmf_write_sbreg():
|
||
|
SBSDIO_SB_OFT_ADDR_MASK should be used before map address space.
|
||
|
Noted by Shao Li in Bitbucket issue #126. From Gregory Nutt.
|
||
|
- Broadcom 802.11 Driver: Remove incorrect OR condition. Always true.
|
||
|
Noted by Shao Li in Issue 127. From Gregory Nutt.
|
||
|
- NRF24L01: Fix compilation errors. From Mateusz Szafoni.
|
||
|
|
||
|
* Other Common Drivers:
|
||
|
|
||
|
- ALARM Upper Half: Fix alarm ISR error when no CONFIG_SCHED_TICKLESS
|
||
|
drivers/timers/arch_alarm.c: Use uint64_t to avoid alarm 32-bit
|
||
|
overflow. From ligd.
|
||
|
- MAX11802: Fix compilation errors and allow setting PULL and SAMPLE
|
||
|
registers. From Petteri Aimonen.
|
||
|
- S25FL1: During a MTDIOC_GEOMETRY ioctl call, the driver was
|
||
|
incorrectly reporting the blocksize to be the same as the erasesize.
|
||
|
The blocksize should be 256 (the page size). This patch fixes that,
|
||
|
and now the SmartFS configuration is working. From Ken Pettit.
|
||
|
- SYSLOG: nx_syslog's return value should include the timestamp length
|
||
|
From Xiang Xiao.
|
||
|
- SYSLOG: syslog_putc() calls sc_force in idle task even if interrupt
|
||
|
buffer enabled. The following cases may hang randomly in the bring up
|
||
|
phase: (1) boot up process and (2) suspend/resume process. Either
|
||
|
case runs in the idle task context, so it's difficult to debug the
|
||
|
hang issue if these output go through the interrupt buffer. From
|
||
|
Xiang Xiao.
|
||
|
- SYSLOG: Ensure interrupt log doesn't interlace in normal log. Don't
|
||
|
call syslog_putc in syslog_default_write because syslog_putc will try
|
||
|
to empty the interrupt buffer every time. From Xiang Xiao.
|
||
|
- UART 16550: Fix UART flow control issue. UART_MCR_RTS need be high
|
||
|
even UART_MCR_AFCE is enabled From zhangyuan7.
|
||
|
- USB RNDIS Device: Fix buffer overrun check in rndis.c. The rndis
|
||
|
driver has been working since 13 Nov 2017. However, I finally found
|
||
|
that it depends on network and buffer configurations. If a receiving
|
||
|
TCP packet is divided into smaller ones based on USB max packet size,
|
||
|
this condition check works correctly. From Masayuki Ishikawa.
|
||
|
|
||
|
* ARMv7-A:
|
||
|
|
||
|
- ARMv7-A: Replicate the same fix was previously committed for the
|
||
|
ARMv7-R. From Gregory Nutt.
|
||
|
|
||
|
* ARMv7-R:
|
||
|
|
||
|
- ARMv7-R: Fix error in cp15_flash_dcache. Change mcrne to mcr for
|
||
|
unconditional dcache. From EunBong Song.
|
||
|
|
||
|
* ARMv7-M:
|
||
|
|
||
|
- ARMv7-M Interrupts: Correct all ARMv7-M architectures. Interrupts
|
||
|
were not be disabled correctly on power up. Writing zero to the NVIC
|
||
|
SET-ENABLE registers has no effect. In order to disable interrupts,
|
||
|
it is necessary to write all ones to the NVIC CLEAR-ENABLE register.
|
||
|
Noted by David Sidrane. From Gregory Nutt.
|
||
|
|
||
|
* Broadcom BCM2708 Drivers:
|
||
|
|
||
|
- BCM2708 Serial: Juha Niskanen's fix related to STM32
|
||
|
CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in BCM2708.
|
||
|
From Gregory Nutt.
|
||
|
|
||
|
* Intel x86:
|
||
|
|
||
|
- Qemu i486: Correct .bss, IDLE stack, heap organization. From Gregory
|
||
|
Nutt.
|
||
|
|
||
|
* NXP/Freescale LPC43xx Drivers:
|
||
|
|
||
|
- LPC43 Ethernet: Fix Ethernet TX_EN pin definitions. TX_EN on LPC43xx
|
||
|
can be routed via P0.1 and PC.4 in both MII and RMII mode. Before,
|
||
|
P0.1 was hard-coded for MII and PC.4 was hard-coded for RMII. Also,
|
||
|
the definitions used inconsistent naming (TXEN vs. TX_EN). From Jakob
|
||
|
Haufe.
|
||
|
- LPC43 Serial: Fix copy-paste error: g_usart1port->g_uart1port. From
|
||
|
Dave Marples.
|
||
|
- LPC43 SDMMC: Fix the LPC43 family SDMMC card access: Clocks were
|
||
|
wrongly configured, way too fast because there is no primary divider
|
||
|
on LPC4330, the LPC43_SDMMC_DELAY register was not being set, the
|
||
|
LPC43_SDMMC_BLKSIZ and LPC43_SDMMC_BYTECNT registers had the wrong
|
||
|
values. From Dave Marples.
|
||
|
- LPC43 SDMMC: Corrected a problem in lpc43_dmasendsetup(). There was
|
||
|
no linked DMA descriptor code on the send side. The end result was
|
||
|
stalls while sending multiple sectors. This commit adds that in and
|
||
|
the send code is working much better. From Dave Marples.
|
||
|
- LPC43 SDMMC: With these changes the SDMMC card for LPC43 is now
|
||
|
working properly: Timing was dependent on CPU speed rather than
|
||
|
absolute time, end of transfer handling was a bit mixed up. It is
|
||
|
possible for data to still be in the FIFO (i.e. not have reached the
|
||
|
card) when a next write is requested, so we need to wait for that to
|
||
|
complete. Interrupt Status could be carried over from one transfer
|
||
|
episode to the next, corrupting progress. Multi-descriptor DMA
|
||
|
writing simply wasn't implemented. From Dave Marples.
|
||
|
|
||
|
* NXP/Freescale LPC43xx Boards:
|
||
|
|
||
|
- Bambino-200E: Correct calculation of SDMMC clock configuration. The
|
||
|
LPC43 has no SDMMC source clock divider. Error noted by Dave
|
||
|
Marples. From Gregory Nutt.
|
||
|
|
||
|
* NXP/Freescale Kinetis:
|
||
|
|
||
|
- Kinetis: Remove all attempts to reprioritize interrupts. From Gregory
|
||
|
Nutt.
|
||
|
|
||
|
* NXP/Freescale Kinetis Drivers:
|
||
|
|
||
|
- Kinetis I2C: I2C On failed reset re-initialization I2C and clocking.
|
||
|
If a reset fails, we still must reinitializes the I2C block so that
|
||
|
subsequent transfers will not cause a hard-fault due to the clock
|
||
|
being off. If that transfer fails it can try to reset again. From
|
||
|
David Sidrane.
|
||
|
- Kinetis Serial: Juha Niskanen's fix related to STM32
|
||
|
CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in Kinetis.
|
||
|
From Gregory Nutt.
|
||
|
|
||
|
* NXP i.MXRT Drivers:
|
||
|
|
||
|
- i.MXRT Ethernet: The board would not come up if I ran NuttX from cold.
|
||
|
I dumped the PHY registers to see what the differences were and the
|
||
|
PHY was coming up in NANDTree mode. This is a mode for testing
|
||
|
connectivity between the PHY and the MAC. Switching this mode off in
|
||
|
the PHY registers has fixed the problem. From Dave Marples.
|
||
|
- i.MXRT Ethernet: Fix a race condition in setting up the Ethernet Tx
|
||
|
transfer. From Dave Marples.
|
||
|
- i.MXRT Ethernet: Corrections for the i.MXRT Ethernet: (1) Now the
|
||
|
Ethernet is completely re-initialized when an error occurs by means of
|
||
|
taking the interface down and back up but the PHY is _not_
|
||
|
renegotiated for that case because that is very time consuming and an
|
||
|
error in the Ethernet is no reflection on the state of the PHY
|
||
|
anyway. (2) Explicitly sets the expected PHY address to zero (this
|
||
|
could be moved into the config rather than searching for it which
|
||
|
takes ages, and it's zero anyway for this board (that's the broadcast
|
||
|
address, and anything that cannot respond on that has multiple PHYs,
|
||
|
so that would be a new board). (3) Allows for the renegotiation of
|
||
|
the PHY to be optional when a reset is needed. If a non-renegotiated
|
||
|
reset doesn't result in good comms to the PHY then it'll automatically
|
||
|
be escalated to a renegotiated one. (4) Only performs a reset for
|
||
|
errors that need it (the CRITICAL_ERROR define). The list of errors
|
||
|
that need reset are somewhat arbitrarily chosen based on my prejudices
|
||
|
and might need to be revisited, but certainly the jabber errors don't
|
||
|
need reset, the partial packet is thrown away by the layer above
|
||
|
anyway. (5) Re-loads the multicast table on reset. (6) Adds a bit
|
||
|
more logging into the imxrt Ethernet module. From Dave Marples.
|
||
|
- i.MXRT LPI2C: Fixes 2 bugs in the for IMXRT1050: (1) I2C time out and
|
||
|
did not send STOP condition when sending single byte, (2) I2C could
|
||
|
not receive bytes after repeated start. From Ivan Ucherdzhiev.
|
||
|
- i.MXRT LPSRTC: SVNC LPCR register bits 0 & 1 are NOT reserved and
|
||
|
are, in fact, needed to enabled the SRTC. Now the SRTC is working.
|
||
|
From Ivan Ucherdzhiev.
|
||
|
- LPC54 SDMMC: Add support for and SDMMC errata. It appears that now I
|
||
|
can read the SD card successfully, but I get CRC errors when writing
|
||
|
to the card. From Gregory Nutt.
|
||
|
- LPC54 SDMMC: Ported Dave Marples fixes LPC43 SDMMC to the LPC54.
|
||
|
From Gregory Nutt.
|
||
|
- i.MXRT WDOG: Typos in bit definitions, wdog registers are 16 bits,
|
||
|
wdog update has to be within 255 clocks of unlock, define board
|
||
|
clocking based on divisor and muxes. From David Sidrane.
|
||
|
|
||
|
* NXP i.MXRT:
|
||
|
|
||
|
- i.MXRT: clockconfig bug fix: Fixed logic that was not clearing bits
|
||
|
as ~ was missing in &= mask operations. Use values from the board.h
|
||
|
file so set the Mux that selects the clock sources. Use board
|
||
|
defined PODF values to select clock. Only configure USDHC2 clocks
|
||
|
when board defines clocks. From David Sidrane.
|
||
|
|
||
|
* NXP i.MXRT Boards:
|
||
|
|
||
|
- IMXRT1050-EVK: Previous committed implemented SPI-based MMC/SD card
|
||
|
support conditioned on CONFIG_MMCSD. This interferes with the
|
||
|
implementation of MMC/SD card support using the SDIO-based
|
||
|
peripheral. This commit renames that atypical support to *mmcsd_spi*
|
||
|
and conditions using the SPI-based support on CONFIG_MMCSD_SPI which
|
||
|
will then not interfere with the MMC/SD support that can be
|
||
|
conditioned on CONFIG_MMCSD_SDIO. From Gregory Nutt.
|
||
|
|
||
|
* On Semi LC823450 Boards:
|
||
|
|
||
|
- LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. For
|
||
|
lc823450, heap area in flat build mode must start just after
|
||
|
_eronly. Because bss/data area is allocated in lower address than
|
||
|
text area in SRAM. See ld.scripts for details. Also, this change
|
||
|
removes unused up_allocateheap.c From Masayuki Ishikawa.
|
||
|
|
||
|
* Silicon Labs EFM32 Drivers:
|
||
|
|
||
|
- EFM32 Serial: Juha Niskanen's fix related to STM32
|
||
|
CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in EFM32.
|
||
|
From Gregory Nutt.
|
||
|
- EFM32 USB Device: The epin_configure() function used the same eptype
|
||
|
as the TxFIFO number for all endpoints. This should probably be the
|
||
|
physical EP number, not the EP type. Suggested by Key Two. From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
* STMicro STM32 Drivers:
|
||
|
|
||
|
- STM32* SPI: Don't rely on SPI_CR1_SPE to determine if peripheral has
|
||
|
been initialized. This change is needed specifically for the case
|
||
|
where a boot loader sets the SPE bit before starting NuttX. In that
|
||
|
case, the test in the SPI driver is wrong. This change fixes that by
|
||
|
assuring that NuttX has booted and initialized at least once (whether
|
||
|
or not SPE is set) before the driver starts refusing to initialize.
|
||
|
From Anthony Merlino.
|
||
|
- STM32 F0, F7, H7, L4 Serial: Fix use of CONFIG_SERIAL_IFLOWCONTROL
|
||
|
where CONFIG_SERIAL_OFLOWCONTROL was intended. From Juha Niskanen.
|
||
|
- STM32 TIM: Don't use hard-coded UIF interrupt in some functions.
|
||
|
From raiden00pl.
|
||
|
- STM32 (FS/HS), STM32F7, and STM32L4 OTGFS/HS Device: The
|
||
|
epin_configure() function used the same eptype as the TxFIFO number
|
||
|
for all endpoints. This should probably be the physical EP number,
|
||
|
not the EP type. Suggested by Key Two. From Gregory Nutt.
|
||
|
- STM32 F2: Fixes Kconfig options to include all STM32F20XX processors,
|
||
|
not just STM32F207. Also removes redundant STM32_STM32F429 depends
|
||
|
from Kconfig. STM32F4XXX already does this. From Anthony Merlino.
|
||
|
- STM32 F4 DAC: STM32F407VG has only one DAC. NDAC=2 causes
|
||
|
compilation error when trying to use e.g. STM32_DAC1_CR macro. From
|
||
|
Petteri Aimonen.
|
||
|
- STM32 F7 Serial: Force invalidation of data cache after DMA re-enable
|
||
|
when returning from low-power mode From Juha Niskanen.
|
||
|
|
||
|
* STMicro STM32 Boards:
|
||
|
|
||
|
- B-L475E-IOT01A: Correct timer source clock frequencies. From Freemans
|
||
|
Goden.
|
||
|
- Nucleo-L432KC: Fix SPI pin definitions in board.h. From Daniel P.
|
||
|
Carvalho.
|
||
|
|
||
|
* MIPS32:
|
||
|
|
||
|
- CP0 Definitions: Fix some copy-paste errors that cause malformed
|
||
|
comments and syntax errors when certain CP0 CONFIG1 bits are
|
||
|
referenced. Note in Issue 123 by Anonymous. From Gregory Nutt.
|
||
|
- microMIPS: Reported by Anonymous in Bitbucket Issue #129: When MIPS
|
||
|
port is built for microMIPS and then loaded as an application, the
|
||
|
__start entry point is entered in microMIPS mode, but the CPU core
|
||
|
initialization code there misses to set the config3ISAOnExc bit to 1.
|
||
|
Subsequently, exceptions are entered in MIPS32 mode, but the code base
|
||
|
was built for microMIPS.
|
||
|
|
||
|
* Microchip PIC32MZ:
|
||
|
|
||
|
- PIC32MZ Startup: In pic32mz-head.S, initialize the global pointer in
|
||
|
all shadow sets. From Ouss4.
|
||
|
|
||
|
* Microchip PIC32MZ Drivers:
|
||
|
|
||
|
- PIC32MZ Serial: Fix a typo in assignment of TTYS0 to UART6 From Ouss4.
|
||
|
|
||
|
* Simulation:
|
||
|
|
||
|
- SIM Network Driver: Fix error 'invalid operands to binary &' From
|
||
|
Xiang Xiao.
|
||
|
|
||
|
* C Library/Header Files:
|
||
|
|
||
|
- Fix typographical error in endian.h and resource.h From anchao.
|
||
|
- include/net/if.h: Adds extern "C" guard in include/net/if.h From
|
||
|
Anthony Merlino.
|
||
|
- include/netinet/in.h: Per OpenGroup.org, type of sin_port in struct
|
||
|
sockaddr_in must be in_port_t vs uint16_t. NOTE: in_port_t is
|
||
|
typdef'ed as uint16_t anyway. From Gregory Nutt.
|
||
|
- include/nuttx: Fix definitions used to access OS functions within the
|
||
|
libraries. In the FLAT build, we must always set the errno and/or
|
||
|
create cancellation points because the same library functions are used
|
||
|
within the OS as are used by applications. This could cause issues
|
||
|
for the OS but corrects some problems at the user interface. Noted by
|
||
|
Federico Braghiroli in Bitbucket issue 121. From Gregory Nutt.
|
||
|
- include/nuttx/clock.h: Fix uptime wrong if DEBUG_FEATURES and
|
||
|
SCHED_TICKLESS enabled. From Xiang Xiao.
|
||
|
- include/nuttx/fs/fs.h: Fix some backward parameters in a new macro
|
||
|
definition. From Gregory Nutt.
|
||
|
- include/nuttx/fs/fs.h: Register_mtddriver should depend on CONFIG_MTD
|
||
|
not CONFIG_MTD_PARTITION From Xiang Xiao.
|
||
|
- include/sys/socket.h: Renumber the socket types. They must begin at
|
||
|
1, not zero. Socket type zero has a special meaning for some
|
||
|
interfaces. For example, getaddrinfo() uses a socket type of zero to
|
||
|
many any type of socket. The is no standard name for the
|
||
|
any-type-socket, but macOS uses SOCK_UNSPEC. NuttX will do the same.
|
||
|
Issue noted by Anthony Merlino. From Gregory Nutt.
|
||
|
|
||
|
- libs/libc: Correct some errors in psignal() and stpncpy(). From
|
||
|
Lokesh B V.
|
||
|
- libs/libc/math: Add variable convergence in log() and logf() to avoid
|
||
|
hangs caused by failure to converge for very specific input values.
|
||
|
Also includes a small change to log() and logf() that improves
|
||
|
accuracy and convergence time. From Rajan Gill.
|
||
|
- libs/libc/stdio: Fix conversion for format specifiers in sscanf() that
|
||
|
appear right after a floating point format specifier. When
|
||
|
performing a floating point conversion the parsing code could consume
|
||
|
more than required characters from the input buffer. This made
|
||
|
impossible to convert input of form "1.1K" using format "%f%c". Fix
|
||
|
the issue by advancing the input buffer with the actual characters
|
||
|
converted as a float point number. From Mihai Serban.
|
||
|
- libs/libc/stdio: Remove CONFIG_NOPRINTF_FIELDWIDTH. That option
|
||
|
does, indeed, make the printf family of functions much smaller. But
|
||
|
it also adds a lot of complexity and makes the functions
|
||
|
non-standard. Removing this might break some of the tinier platforms
|
||
|
but it is the best thing to do for long term maintenance for for
|
||
|
OpenGroup.org compliance.
|
||
|
- libs/libc/stdio: Update to vsprintf(). This resolves the integer
|
||
|
field width problem if Issue 35 for the cases of integer, long and
|
||
|
long long integer types. The output now matches the output form
|
||
|
glibc. From Gregory Nutt.
|
||
|
- libs/libc/string: Correct the return pointer value from stpncpy() for
|
||
|
the case where the NUL terminator is transferred. From Gregory Nutt.
|
||
|
- libs/libc/string: Fix strrchr() so that it considers null terminator
|
||
|
as part of string. From Petteri Aimonen.
|
||
|
- libs/libc/wqueue: Eliminate a race condition noted by Xiang Xiao.
|
||
|
Use sigprocmask() so that we do not lose a signal. From Gregory Nutt.
|
||
|
- libs/libnx/nxfonts: Fix kerning of 'I' in Sans17x22 font. From
|
||
|
Petteri Aimonen.
|
||
|
- libs/libnx/nxfonts: In nxfonts_getfont(), avoid unnecessary warnings
|
||
|
for other whitespace chars also. From Petteri Aimonen.
|
||
|
- libs/libnx/mxmu: NXMU now re-validates window pointer for mouse
|
||
|
events. NXMU caches the previous window pointer so that further mouse
|
||
|
events can be sent to the same window. However, if the window is
|
||
|
destroyed while mouse button is held down, the pointer may become
|
||
|
invalid and cause a crash. This patch revalidates the pointer before
|
||
|
using it. From Petteri Aimonen.
|
||
|
- libs/libnx/nxtk: nxtk_bitmapwindow: Fix warning message when bitmap is
|
||
|
fully off-screen. From Petteri Aimonen.
|
||
|
|
||
|
* Build System:
|
||
|
|
||
|
- Fix issue with libcxx build. This was changed multiple times, but
|
||
|
should be fixed now. From Anthony Merlino.
|
||
|
- configs/Makefile and tools/Config.mk: Move single file copy to the
|
||
|
new function COPYFILE. This fixes the Windows native build case when
|
||
|
there is no cp or cp does not recognize Windows paths. From Anatol
|
||
|
Ivanov.
|
||
|
- tools/Config.mk and tools/Makefile.win: Force use 'cmd' for shell
|
||
|
with windows native build From Anatol Ivanov.
|
||
|
- tools/Directories.mk: Correct the path to the installed libcxx
|
||
|
directory. From Gregory Nutt.
|
||
|
- tools/Makefile.win/unix: Staging directory (and its libraries) should
|
||
|
be removed on 'make clean' (issue noted by Dave Marples). From
|
||
|
Gregory Nutt.
|
||
|
|
||
|
- apps/Directory.mk: If the current directory contains a Kconfig file
|
||
|
and MENUDESC is not defined, then Directory.mk must not trash the
|
||
|
Kconfig in the current directory. From Gregory Nutt.
|
||
|
- apps/Makefile: Fix Windows native build patch extension. From Anatol
|
||
|
Ivanov.
|
||
|
|
||
|
* Other Tools:
|
||
|
|
||
|
- tools/Config.mk: Fix an error in RWILDCARD implementation From
|
||
|
Anthony Merlino.
|
||
|
- tools/configure.c: Add missing '\n' in printf statement
|
||
|
- tools/configure.c: Add missed -g option to getopt() string. From
|
||
|
Anatol Ivanov.
|
||
|
- tools/configure.c and tools/configure.sh: Fix Windows native
|
||
|
pre-build kconfig-conf incompatibility. From Anatol Ivanov.
|
||
|
- tools/csvparser.h: Extend MAX_PARMSIZE to 256. Fixes this issue:
|
||
|
70: Parameter too long: ... From Xiang Xiao.
|
||
|
- tools/link.bat: Fix .fakelink creation. From Anatol Ivanov.
|
||
|
- tools/mkdeps.c: Fix '\0' missing with MinGW. From Anatol Ivanov.
|
||
|
|
||
|
* NSH Library: apps/nshlib:
|
||
|
|
||
|
- apps/nshlib: Correct maximum number of arguments that can be provided
|
||
|
to the mksmartfs command. From Eunbong Song.
|
||
|
- apps/nshlib: Add fflush to nsh_consolewrite(). This resolves this
|
||
|
problem: 'cat /dev/ttyCP &' followed by 'echo ls >/dev/ttyCP'. In
|
||
|
that case we can't get the 'ls' result immediately, because 'cat' cmd
|
||
|
uses nsh_consolewrite() and that uses fwrite with no fflush. We can
|
||
|
get the 'ls' result after type '\n', because nsh will fflush output
|
||
|
when get '\n'. From ligd.
|
||
|
- apps/nshlib: nsh_catfile() should not append '\n' if the last char in
|
||
|
file is already '\n' From Xiang Xiao.
|
||
|
- apps/nshlib: Fix warning g_oldpwd defined but not used
|
||
|
[-Wunused-const-variable] in nsh_envcmds.c. From Xiang Xiao.
|
||
|
|
||
|
* Examples/Tests: apps/examples:
|
||
|
|
||
|
- apps/examples/adc/Kconfig: CONFIG_BOARDCTL_ADCTEST does not exist
|
||
|
anymore and should removed as a dependency. From Eunbong Song.
|
||
|
- apps/examples/webserver/Kconfig: The webserver "app" allows for DHCP
|
||
|
client to be enabled. However, the Kconfig infrastructure does not
|
||
|
contain EXAMPLES_WEBSERVER_DHCPC config. Based on patch from
|
||
|
"Anonymous" attached to Bitbucket Issue #130. From Gregory Nutt.
|
||
|
|
||
|
* System Utilities: apps/system:
|
||
|
|
||
|
- apps/system/hexed: Fix memory leak From zhuyanlin.
|
||
|
- apps/system/i2c: Fix i2c_msg freq initialization problem. Typo
|
||
|
prevented I2C frequency initialization in a struct i2c_msg. From
|
||
|
dongjiuzhu.
|
||
|
- apps/system/system: Fix warning when passing argument 6 of
|
||
|
'task_spawn' from incompatible pointer type
|
||
|
[-Wincompatible-pointer-types] From Xiang Xiao.
|
||
|
|
||
|
* Network Utilities: apps/netutils:
|
||
|
|
||
|
- Correct some network-related configuration variable names. All *_MTU
|
||
|
defines were changes to *_PKTSIZE gut that was not reflected in
|
||
|
apps/ From Gregory Nutt.
|
||
|
- apps/netutils/netlib/netlib_parsehttpurl.c: Correct handling of long
|
||
|
URLs as noted in Bitbucket issue #119 (in the nuttx/ repository, not
|
||
|
the apps/ repository). From Gregory Nutt.
|
||
|
- apps/netutils/codecs: "dst" overflow protection when base64 string
|
||
|
ends with "=" From Aleksandr Vyhovanec.
|
||
|
- apps/include/netutils/ipmsfilter.h: Eliminate error generated by bad
|
||
|
pre-processor logic. From Gregory Nutt.
|
||
|
|
||
|
* GPS Utilities: apps/graphics:
|
||
|
|
||
|
- apps/graphics/NxWidgets: Fix garbage returned when
|
||
|
CCycleButton::getValue() is called after removeAllOptions().
|
||
|
CScrollingPanel should not draw outside the widget area. From
|
||
|
Petteri Aimonen.
|