diff --git a/ChangeLog b/ChangeLog index 93f5a8669e..3bceb86d3b 100755 --- a/ChangeLog +++ b/ChangeLog @@ -15786,8 +15786,6 @@ Niskanen (2017-06-26). * stm32f33xxx_rcc: cleanup + move hrtim clock source selection. fix typo in stm32f33xxx_rcc.h. From Mateusz Szafoni (2017-06-26). - * STM32L4 serial: Allow configuring Rx DMA buffer size. From Juha - Niskanen (2017-06-26). * 6LoWPAN: Fix duplicate and bad memcpy in loopback driver (2017-06-26). * Beacon logic: Damage control. Looks like something went wrong with @@ -15824,7 +15822,7 @@ and hub roles in a star topology. Fix various things that broke when IPv6 forwarding was enabled (2017-06-29). * 6LowPan: Change how the destination node address is handled in the - start endpoint configuration. When the star endpoint sent the IPv6 + star endpoint configuration. When the star endpoint sent the IPv6 destination address, the HC06 compression logic elided the address -- meaning that it could be reconstructed by the recipient based on the receiver's assigned short address. However, when intercepted by the @@ -16456,7 +16454,7 @@ * STM32F7: Some STM32F7 builds failed in build testing due to undefined STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was not including chip/stm32_memorymap.h (2017-08-13). - * Fix ESP32 gpio enable reg and default UART pin. Vodify default uart + * Fix ESP32 gpio enable reg and default UART pin. Modify default uart pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim (2017-08-13). * stm32/stm32f0: Fix some funny shifts in DAC header files. From Juha @@ -16496,7 +16494,7 @@ adjacent memory if the buffer and the bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries. From David Sidrane (2017-08-17). * STM32 F7: SDMMC add dcache alignment check in dma{recv|send}setup. - In the case where CONFIG_SDIO_PREFLIGHT is not used and + In the case where CONFIG_SDIO_PREFLIGHT is not used. * drivers/sensors: Add support to HC-SR04 distance sensor. From Alan Carvalho de Assis (2017-08-17). * PF_IEEE802154 address family: With this commit PF_IEEE802154 address diff --git a/ReleaseNotes b/ReleaseNotes index e488f25a8f..0efa1782c7 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -13958,7 +13958,7 @@ Additional new features and extended functionality: well-known address. - examples/configdata: Add stacksize and priority. From Juha Niskanen. - * Network Utilies: apps/netuils: + * Network Utilies: apps/netutils: - netutils/netlib: Add IEEE 802.11 wireless IOCTL wrappers. - netutils/netlib: Add a helper function to convert a string to a @@ -14511,7 +14511,7 @@ detailed bugfix information): - examples/can: Fix can example app to print data when CONFIG_EXAMPLES_CAN_READ is defined. From Alan Carvalho de Assis. - * Network Utilies: apps/netuils: + * Network Utilies: apps/netutils: - Not a clean fix, but at least makes DHCP working with CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier. @@ -14534,3 +14534,1070 @@ detailed bugfix information): - The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR, which is not a windows shell variable, and is left uninitialized, but in fact should be the current directory. From Sebastien Lorquet. + +NuttX-7.22 Release Notes +------------------------ + +The 122nd release of NuttX, Version 7.22, was made on September 9, 2017, +and is available for download from the Bitbucket.org website. Note +that release consists of two tarballs: nuttx-7.22.tar.gz and +apps-7.22.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: + + - pthreads: Move functions from sched/pthreads to libc/pthreads. These + functions just coordinate other OS interface calls but are not a + fundamental OS interfaces and, hence, do not belong within the OS: + pthread_yield(), pthread_once(), pthread_cond_init(), + pthread_cond_destroy(), pthread_barrier_init(), + pthread_barrier_destroy(), and pthread_barrier_wait(). + - Add power-related debug output. + + * File Systems/Block and MTD Drivers + + - RAMTRON: Add support for splitting block writes in chunks. Some + Re-RAMs like MB85AS4MT have a write buffer size limitation. From + Boris Astardzhiev. + - MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou. + + * Graphics/Display Drivers: + + - SSD1306 LCD Driver: (1) Separate lcd_dev_s setup to separate object. + g_oleddev takes 1 KiB because framebuffer and was allocated to .data + section because of lcd_dev_s function pointer setup. Move lcd_dev_s + setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2) + Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was + writing one extra byte (with value 0) past target buffer when pixlen + is multiple of 8. When pixlen was not multiple of 8, last byte of + buffer was fully cleared, instead of modifying only the (pixlen % 8) + bits of last byte. (3) Add support for board power control. + ThingseeOne has regulator for controlling display power on/off. Patch + adds support for board based power control to SSD1306 driver. (4) Add + DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna. + + * Networking/Network Drivers: + + - Sockets: Support listening sockets in the getsockname() function. + From Roland Takacs. + - IP Forwading: At the IP level, network may be configured to forward + IP packets that are not destined for the target through a different + network device, decrementing the packet TTL. + - IP forwarding: Add optional support to forward broadcast and + multicast packets. Add missing ICMP support. + - ICMPv6: Add 6LoWPAN and IP forwarding support. + - ICMPv6: Support source link-layer address option in RA. From + Masayuki Ishikawa. + - TUN Driver: Add definitions that will permit TUN-only networking. + - Socket I/F: Created a socket interface used to provide socket support. + Each address family has an interface that describes how to perform + socket operations on that address family. Currently only a couple of + methods are defined in the socket interface call table + - Remove CONFIG_NET_MULTILINK. This increases code size by a little, + but greatly reduces the complexity of the network code. + - Network procfs: Add support for routing tables at proc/net/route. + - Network procfs: Add support for network procfs statistics for the + PF_IEEE802154 address family. + - Network Driver Backlog: Remove driver based backlog support. This + affects the entire network, but is used by only one driver. The only + supported RX backlog is now via common read-ahead buffering. + + * Wireless Networking/Wireless Drivers: + + - IEEE 802.15.4 MAC / MRF234j60 Driver: Extensive updates for + association/beacon-enabled networks. From Anthony Merlino. + - IEEE 802.15.4 MAC / MRF234j60 Driver: Hook in setdevmode from newly + added radio attribute setting. From Anthony Merlino. + - IEEE 802.15.4 MAC: Supports get request for coordinator address. From + Anthony Merlino. + - IEEE 802.15.4 MAC: Notify radio layer of changes in devmode. From + Anthony Merlino. + - IEEE 802.15.4: Add special attribute that can be used to perform a + regdump of the radio. From Anthony Merlino. + - IEEE 802.15.4 loopback driver: Better simulation addressing: short + and extended addresses, panid, and IP address conversion. + - IEEE 802.15.4 Network Driver: Add logic to setup the network mask, + update the MAC-based IPv6 addressing when the network is brought up. + The idea is that addressing changes are supposed to occur only while + the network is down but won't take effect until the network is up + again. + - PktRadio: Add an infrastructure to support networking on generic + (non-IEEE 802.15.4) packet radios. + - PktRadio Loopback Driver: Add a PktRadio loopback network driver to + testing testing with 6LoWPAN and PktRadios on the simulator. + - Spirit Network Driver: The Spirit1 radio (SPSGRF-915) is the first + generic PktRadio Network driver. Based on STMicros STack packets + with 8-bit addressing. We need to use the STack packets in order to + provide the source address and automatic ACKing. + - Network procfs: Fix so that PktRadio address are shown correctly. + - Networking: Add support for some packet radio IOCTL commands. + - 6LoWPAN: Added handling for TCP and ICMPv6 packets. + - 6LoWPAN: Add configurable support for 6LoWPAN star topology. With + this change, the endpoints which are the 'points' of the star will + forward all traffic to the coordinator. The coordinator is assumed to + be the 'hub' of the star. This function also used IPv6 forwarding. + - 6LoWPAN: The original, Contiki-based design used only a single buffer + for reassemblying larger packets. This could be a problem issue for + hub configurations which really need the capability concurrently + reassemble multiple incoming streams concurrently. These was also a + design issue in that the reassembly buffer could be corrupted by + outgoing packets. The design was extended to support multiple + reassembly buffers, each associated with the reassembly tag and source + address. This assures that there can be be no corruption of the + reassembly once it has started. + - 6LoWPAN PktRadio: Now radio agnostic. All IEEE 802.15.4 dependencies + have been removed or isolated so that 6LoWPAN can be used with any + kind of packet radio. This involved things like: (1) generalizing + the representation of radio MAC meta-data, (2) changes to handle + variable-length radio addresses, (3) removal of all explicit IEEE + 802.15.4 types, references, and interfaces, (4) a new radio driver + interface to return 'capabilities' of the drvier. + - ICMPv6: Update so that ICMPv6 can be used with 6LoWPAN. + - IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC + addresses. + - PF_IEEE802154 Address Family: Add support for the PF_IEEE802154 + address family socket type. This socket is similar to the PF_PACKET, + "raw" packet address family except that: (1) it supports only + SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4 + MAC-based radios. This address family permits simple access to IEEE + 802.15.4 IOCTLs and frame-level network transfers. + + * Other Common Device Drivers: + + - Dynamically configurable USB composite devices: We developed a huge + Changeset over a year ago to make USB Composite configuration + dynamical and be able to instantiate the CDC/ACM multiple times inside + this device. We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically. + I've changed the interface for some USB-Functions to receive also the + dynamic configuration. From Frank Benkert. + - Franks' change remained on a branch until all issues were resolved. + the current version in Master is complete and ready for use. + - power: battery_charger: add ioctl for charging input current. From + Juha Niskanen. + - SMPS driver: Add generic upper-half driver for SMPS. From Mateusz + Szafoni. + - LED Driver: Add support for inverted LEDS. From Jeff. + - LED Driver: Add lightness correction for RGB LED driver. From Jeff. + - LTC4151 Driver: Add driver for LTC4151 current and voltage monitor. + From Giorgio Groß. + - Serial TERMIOS: tcdrain() implementation based on a new term ioctl. + From Sebastien Lorquet. + - Serial TERMIOS: Add support for TCFLUSH. From Sebastien Lorquet. + - syslog: Add option to use the CLOCK_MONOTONIC for time stamping. From + Jussi Kivilinna. + - HC-SR04 Driver: Add support to HC-SR04 distance sensor. From Alan + Carvalho de Assis. + - COMP Driver: Add poll support. From Pekka Ervasti. + - BQ2429X Driver: add driver for TI BQ2429X battery charger. From Juha + Niskanen. + - ADC Driver: Add poll support. From Juha Niskanen. + - BCH Driver: Add poll support. From Jussi Kivilinna. + - RTC Driver: Extend the RTC framework with an alarm read ioctl + (RTC_RD_ALARM). Through it consumer could get configuration settings + about previously scheduled hardware alarms (active status, hours, + minutes, seconds). From Boris Astardzhiev. + + * Simulation + + - sim/ipforward: Add an IP forwarding configuration using TUN devices + and apps/examples/tun. + - Console: Add non blocking read to devconsole driver. From Simon + Piriou. + - Networking: Poll for TX frames to speed up driver. From Simon Piriou. + - pf_ieee802154: Add configuration for testing PF_IEEE802154 address + family sockets. + - ARM Simulator: Adds necessary functionality to build Simulator under + ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not + save/restore floating point registers. From Nickolay Semyonov. + + * MicroChip/Atmel SAML21 Drivers: + + - SAML21 I2C driver. Developed for and contributed with permissin from + Filament company. From Alan Carvalho de Assis. + - SAMD/L21 USB Driver: Add a USB driver. Developed for Filament Inc. + by Offcode, LTD. From Janne Rosberg. + + * MicroChip/Atmel SAMv7 Boards: + + - SAMV71-XULT: Add support for the MRF24J40 radio and create a + mrf24j40-starhub configuration. + - SAME70-Xplained: Add MRF24J40 support. + + * NXP Freescale Kinetis Drivers: + + - Kinetis USB Improvements: usbdev clean up ensuring proper use of HW. + Rework suspend and resume logic so they perform properly. Made attach + and detach functions optional. As they do not make sense for a bus + powered device. From David Sidrane. + - Kinetis SPI driver: From David Sidrane. + - Kinetis: I2C driver added I2C3, reference counting and reset. + Refactored the driver to support reference counting and reset added + I2C3. From David Sidrane. + - Kinetis RTC: Implementation of the alarm read function. + + * NXP Freescale Kinetis Boards: + + - configs/teensy-3.x USB: Define USBOTG-FS Read from FLASH access in + board config. Allow the board config to define the USBOTG-FS to have + Read access to FLASH. From David Sidrane. + - configs/teensy-3.x: Removed call to khci_usbattach. The call is not + need by the driver if CONFIG_USBDEV_BUSPOWERED=y. On a USB powered device if we are running we are attached. From David Sidrane. + - freedom-k66f: Use SPI driver. Initalize SPI1 on connector J6. No + real use, as of yet. From David Sidrane. + + * NXP Freescale LPC43xx: + + - LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. From + Alan Carvalho de Assis. + + * NXP Freescale LPC4xx Boards: + + - configs/Bambino: Add protected mode configuration to Bambino board. + From Alan Carvalho de Assis. + + * On Semiconductor LC823450 + + - LC823450: Initial support for ON Semiconductor LC823450. From Masayuki + Ishikawa. + - LC823450: eMMC/SD and USB support for LC823450. From Masayuki Ishikawa. + + * On Semiconductor LC823450 Boards + + - LC823450-XGEVK: LC823450-XGEVK board support. From Masayuki + Ishikawa. + - LC823450-XGEVK: Add eMMC/SD and USB support. From Masayuki Ishikawa. + + * STMicro STM32: + + - STM32 L4: Add support for the STM32L475 family. + - STM32 L4 RCC: Enable ADC clock source. From Juha Niskanen. + - STM32: Allow clock frequencies > 168 Mhz on stm32f427/429. We need + to enable the power overdrive for this case. This change allows the + required bits to be set in proper sequence. It also modifies the + local register access operations to allow more than 16-bit registers. + From Sebastien Lorquet . + - STM32 F4: Add support for STM32F433RC. From Alan Carvalho de Assis. + - STM32 F7: Add new configuration option for enabling flash ART + Accelerator and flash prefetcher. From Jussi Kivilinna. + + * STMicro STM32 Drivers: + + - STM32 TIM: Add the set counter function for stm32 timers. From + Sergey Ustinov. + - STM32 HRTIM: Update HRTIM definitions. Add HRTIM driver. From + Mateusz Szafoni. + - STM32 HRTIM: Add HRTIM character driver. From Mateusz Szafoni. + - STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer + logic, enable DAC triggering. From Mateusz Szafoni. + - STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni. + - STM32 HRTIM: Add burst mode configuration. From Mateusz Szafoni. + - STM32 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to STM32. + - STM32 DAC: Add support for HRTIM triggering. Separate dma buffer + configuration for channels. From Mateusz Szafoni. + - STM32 DAC: Conditional logic for timer triggering, fix TSEL + configuration when HRTIM, DMA request remapping, Add DMA buffers + initialization logic. From Mateusz Szafoni. + - STM32 DAC: Support external triggering for DMA transfer. From Mateusz + Szafoni. + - STM32 L1 TIM: Add base address for TIM11. From Juha Niskanen. + - STM32 F4 FLASH: Enable/disable the flash write protection on any + sector. I have verified it to work on the STM32 F427. From Sebastien + Lorquet. + - STM32 F4 Clocking: To use an external oscillator module (not just a + crystal) with the STM32F4, one needs to enable the HSEBYP bit in the + RCC_CR register. This change allows an integrator to define + STM32_RCC_CR_HSEBYP in their board.h file if they want this + configuration. From Jeff. + - STM32 F4 USB: I'm working on bringing up USB full-speed support on + STM32F405.  My board does not include a USB power switch, VBus + sensing, over current detection, or ID pin. This commit add a + config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable + VBus sensing and control.  I also sneaked in a change to disable the + configgpio call for the ID pin, which is only used in OTG mode which + isn't supported yet.  The only pins that need to be initialized should + be OTGFS_DP and OTGFS_DM. From Jeff. + - STM32 FLASH: Add CONFIG_STM32_STM32F469 support. From David Sidrane. + - STM32 COMP: Add default INM configuration and some missing COMP + 1,3,5,7 code. From Mateusz Szafoni. + - STM32 F33: Add missing SYSCFG CFGR3 definitions. From Mateusz Szafoni. + - STM32 L4 Serial: Allow configuring Rx DMA buffer size. From Juha + Niskanen. + - STM32 L4 COMP: Input minus pin extended selection. From Juha Niskanen. + - STM32 L4 COMP: Bind to upper half comp driver. From Pekka Ervasti. + - STM32 L4 DAC: Port from STM32. Add ADC register definitions. From + Juha Niskanen. + - STM32 L4 DAC: Add option for routing DAC output to ADC. Actually + write something to the DAC DMA buffer. From Juha Niskanen. + - STM32 L4 DAC: Separate DMA buffer configuration for channels. From + Juha Niskanen. + - STM32 L4 ADC: Implement peripheral. From Juha Niskanen. + - STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to + - STM32 F7 I2C4: I2C4_SDA can also be on GPIO PB7. From Titus von + Boxberg. + internal SRAM. From Titus von Boxberg. + - STM32 F7 LTDC: Option for DSI output, inconsistency: the stm32f746 + does not feature a DSI interface. compilable with LTDC_INTERFACE and + LTDC_USE_DSI. From Titus von Boxberg. + - STM32 F7 Clocking: Added functions for DSI clock source selection. + From Titus von Boxberg. + - STM32 F7 Clocking: Enable APB2 DSI clock. From Titus von Boxberg. + - STM32 F7 LTDC: No board specific dithering values used; corrected + dithering init. Corrected LIPOS/LIPCR calculation. Change only + polarity bits in LTDC_GCR. From Titus von Boxberg. + - STM32 F7 Reset: Added function for reset. From Titus von Boxberg. + - STM32 F7 DMA: DMA add dcache alignment check in stm32_dmacapable. In + the case dcache write-buffed mode is used (not write-through) buffer + alignment is required for DMA transfers because a) + arch_invalidate_dcache could lose buffered writes data and b) + arch_flush_dcache could corrupt adjacent memory if the maddr and the + mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE + boundaries. From David Sidrane. + - STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA. There is no + documantation for the STM32F7 that limits DMA on 1 bit vrs 4 bit + mode. From David Sidrane. + - STM32 F7 SDMMC: SDMMC add dcache alignment check in + dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not + used. + - STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to + STM32F7. + + * STMicro STM32 Boards: + + - STM32F103-Minimum: Add GPIO device driver example. From Alan + Carvalho de Assis. + - STM32F103-Minimum: Add small hello example for STM32F103-Minimum + board. From Alan Carvalho de Assis. + - STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR + Flash. From Alan Carvalho de Assis. + - STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash + partition is enabled and (2) Update the README.txt file with info + needed to get SmartFS working. From Alan Carvalho de Assis. + - Nucleo-F334R8: Add HRTIM initialization. From Mateusz Szafoni. + - Nucleo-F334R8: UART2 is default serial port (STLINK Virtual Port). + From Mateusz Szafoni. + - Clicker2-STM32: Add a configuration that was used with the MRF24J60 + for 6loWPAN testing. + - Clicker2-STM32: Allow both IEEE 802.15.4 MAC character and network + devices to be registered. + - Clicker2-STM32: Add configurations to support the endpoint and hub + roles in a star topology. + - Clicker2-STM32: Add support for per-function-call stack checking. + From Anthony Merlino. + - Clicker2-STM32: Configure EDBG SPI CS just to make that it is + disabled. + - STM32F4 Discovery: Add logic to register the button driver and the + user led driver if so configured. From Jan Pobrislo. + - STM32F4-Discovery: Add a configuration for testing libc++. From Alan + Carvalho de Assis. + - B-L475E-IOT01A: Add support for the STMicro B-L475E-IOT01A board. + From Simon Piriou. + - B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module. Add + a configuration for testing sprit radio. + - B-L475E-IOT01A: Add configurations to support a star topology. + - B-L475E-IOT01A: add basic support for external Macronix QuadSPI flash + memory. From Simon Piriou. + - B-L475E-IOT01A: Enable UDP broadcast test in the spirit-starhub + configuration. + - STM32F334-DISCO: Add STM32F334-DISCO basic support. From Mateusz + Szafoni. + - STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev. + - STM32L476-Disco: Add a knsh configuration that may be used to test + the PROTECTED build mode. + - STM32F769I-DISCO: Initial port to STM32F769I-DISCO. From Titus von + Boxberg. + + * C Library/Header Files: + + - Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will + always be unique. + - Math Library: Port gamma() and lgamma() from FreeBSD to NuttX. From + Alan Carvalho de Assis. + - C++: Compilation with recent C++ compiler needs an overloaded delete + operator that includes a size_t size argument. New sized delete + operators are only for C++14 and above. + + * Build/Configuration System: + + - Initial clang compile. From Goran Mekic. + - Add CLANG definitions in Kconfig and Toolchain.defs. + - drivers/wireless/ieee802154: Moved radios to individual + sub-directories. From Anthony Merlino. + - Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou. + - Add Gwenhael's change to Makefile.win and update README.txt to + described the new make target. + - All defconfig files are now in the compressed format created with + 'make savedefconfig.' The original .config file can be reconstituted + using 'make olddefconfig.' + - Build System: It is no longer necessary to have a unique Make.defs + file for each configuration. A board may share a common Make.defs + file in the scripts directory. Duplicate Make.defs files removed; + common Make.defs file moved to the scripts/ sub-directory for each + board. + - Networking: Move INET socket interface out of net/sockets to its own + directory net/inet. + + * Tools: + + - testbuild.sh: Added -x to fail build on errors for continous + integration (CI). On CI we want to know ASAP of a failure. From + David Sidrane. + - Improve configure.sh behavior: (1) enable to call from top directory. + (2) enable to designate direct path for config. (3) install .gdbinit + if the target has. From Hidetaka Takano. + - Update tools/configure.c to same functionality as configure.sh. Add + an array of optional file names. Currently, .gdbinit is the only + optional file but other things like IDE-specific project files might + need to be copied as well. + - tools/configure.sh will now copy Eclipse project files if they are + present in the board directory file. + - Update configure.sh, configure.bat, configure.c: With compressed + format, part of the installation requires that we run 'make + olddefconfig' to restore the uncompressed defconfig format. Also, + while I was at it, I also added options to select host platform on + configure command line. + - tools/refresh.sh: Now runs make savedefconfig before copying the new + defconfig file in place; Also, added a new option --defaults. Since + the number of defaults that you now have to answer is so large, the + option lets you just accept the default values. So it works just like + --silent but still prompts you for the decision to save or discard the + new defconfig file. + - tools/refresh.sh: Update so that it can find the Make.defs file in + the new location. + + * NSH: apps/nshlib: + + - NSH Library: Add a Telnetd command. This is needed when network + initialization is deferred. In that case, telnet daemon cannot be + started until the network is finally initialized. The telnetd command + was added just for that case: So that the telnet daemon can be + started from the NSH command line after the network is configured. + - NSH Library: Misc changes needed for PktRadio support. + - NSH Library: Extend ifconfig command so that it can set variable + length packet radio addresss. + - NSH Library: Update addroute and delroute command. The would support either + IPv4 or IPv6, but not both. Allow expression of the netmask in IPv4 CIDR or + IPv6 slash notation. This really reduces the pain of using the commands, + especially for IPv6. + - NSH Library: Add a route command that will dump the content of routing table. + + * Examples/Tests: apps/examples: + + - examples/udp: Add configurable network device name; Add option to + suppress network initialization which is not needed if started by NSH + or for 6LoWPAN. + - examples/udp: Fix registration as a built-in program; Change some + naming to make room for a second target. Current one endpoint is the + target and one is the host. This will (eventually) allow two targets + to be both endpoints of the test. Change build so that both server + and client can be on a target, rather than one on the target one on + the host PC. Server IP address may not be provided on the command line. + - examples/udp: Port numbers need to be configurable to work with + 6LoWPAN. Need to bind the client socket to a port number. This was + not required before so is a apparently a change in the UDP packet + dispatch logic. + - examples/udp: Enable testing with the broadcast address. + - examples/nettest: Support target boards on both ends of the test. + Separate out network initialization so that it may be used by both a + target server and a target client. Fix client/server naming + confusion; Add command line option to select the server address on the + target. Add support for both enpoints on target boards vs. one on a + target and one on the host PC. + - examples/nettest: The send buffer size is now a configuration option. + - examples/nettest: Loopback option should be available in Kconfig for + PktRadio. + - examples/keypadtest: REMOVED and warehoused in the Obsoleted + repository. This was just a bad clone of apps/examples/hidkbd for a + keypad driver that was removed years ago. It also uses illegal + function calls into the OS. So it has no purpse: It is redundant, it + uses illegal interfaces, and is a test for non-existent code. + - examples/ipforward: Add an IP forwarding example using only TUN + devices. Test extended to test forwarding of ICMPv6 multicast messages. + - Implement powermonitor example for ltc4151 current and voltage + monitor. From Giorgio Groß. + - examples/pf_ieee802154: Add for testing PF_IEEE802154 sockets. Add + PANID to command line options; Cannot bind to address zero... There is + no counterpart to INADDR_ANY for these radios (not now at least). + - examples/dac: add DAC example. From Juha Niskanen. + + * Network Utilies: apps/netutils: + + - netutils/telnetc: This a port of libtelnet to NuttX. + - netutils/telnetd and users of telnetd: Add support for IPv6. + - netutils/thttpd: Remove the netstats demo. This depends on an + illegal function call and cannot be supported. That example could be + replaced with logic that uses the procfs network entries as was done + for NSH which had the same issue. But I am too lazy to implement that. + - netutils/netlib: Add support for PktRadio IOCTL commands. + - netutils/netlib: Add a helper to decode short addresses. + + * Wireless Utilies: apps/wireless: + + - wireless/ieee802154/i8sak: Rewrote i8sak to be test CLI for IEEE + 802.15.4 MAC layer. From Anthony Merlino. + - wireless/ieee802154/i8sak: Updates to i8sak for + association/beacon-enabled changes to IEEE 802.15.4. From Anthony + Merlino. + - wireless/ieee802154/i8sak: Add option to make it easy to send large + frame for testing purposes. From Anthony Merlino. + - wireless/ieee802154/i8sak: Add scan command. From Anthony Merlino. + - wireless/ieee802154/i8sak: Add coordinfo command allowing you to + poll various attributes related to the coordinator. From Anthony + Merlino. + - wireless/ieee802154/i8sak: Add a option to retry on failures to the + assoc command (usually meaning tht the coordinator is not yet up). + - iwireless/ieee802154/8sak: Add reset command to reset the MAC layer. + Adds option to assoc command -t to specify how long to wait for a + response from the Coordinator. From Anthony Merlino. + - ieee802154/i8sak: Adds command to trigger regdump of radio. From + Anthony Merlino. + + * System Unitilities (apps/system) + + - apps/system/composite: Update to apps/system/composite assocated with + big changes to the composite device logic. From Frank Benkert. + - apps/system/composite: Remove CDC/ACM and MSC configuration logic. + This belongs in the OS composite initialization. Add and argument so + that you can select the USB composite configuration to be attached. + Restore USB tracing; remove unused field in a structure. Remove + configuration settings that are no longer used. Fix configuration + selecting.. was setting the port number, not the configure ID. Also + add a configuration option to select the default configuration. + - apps/system/composite: Add a configuration option to the boardctl() + calls to support multiple composite device configurations dynamically. + - apps/system/composite: Remove references to USBMSC. There still + dependencies on CDC/ACM in the serial USB trace output. + - apps/system/telnet: Add Telnet Chat deamon and and client from + libtelent. + + * Platform-Specific Support (apps/platform) + +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: + + - Fix ELF loader up_checkarch on ARM arch. From Cristian Condurache. + - pthread_mutex_unlock(): Missing check for the case where + pthread_mutex_lock() is called when the mutex is not locked. In that + case, it would increment the underlying semaphore above 1. This is + the fix for a problem noted by initialkjc@yahoo.com. + - sig_timedwait(): Pending signal structure used after it has been + releasd. From anonymous Bitbucket Issue 59. + - mm_mallinfo: do heap end debug assert check with heap semaphore held. + From Jussi Kivilinna. + - sched/: Fix return value in sched_setaffinity(). From Masayuki + Ishikawa. + - Work Queues: work_queue() must cancel existing work prior to queuing + new work, otherwise the work queue list structure can become + corrupted. Problem noted by Pascal Speck. + - waitpid(): Corrects two problems when CONFIG_SCHED_HAVE_PARENT + + CONFIG_SCHED_CHILD_STATUS are enabled: (1) Was erroring out if the + waited for task had already exited, and (2) was not freeing resources + when a wait was completed. From Boris Astardzhiev. + + * File System/Block and MTD Drivers: + + - VFS poll(): Fix timeout calculation. From Jim Paris. + - VFS poll(): Fix poll for regular files and block devices. Open Group + documentation says that poll (and select) support regular files and + that 'Regular files shall always poll TRUE for reading and writing'. + From Jussi Kivilinna. + - VFS epoll(): Fix epoll_wait function. From Simon Piriou. + - Smart FS: Fix wrong freeing of device structure and use-after-free + issues on error paths. From Jussi Kivilinna. + - MTD FLASH drivers: The byte write method of several drivers had a + cloned error: It was not locking the bus while performing byte write + operations. + - MTD M2PX: If we READ while a write/erase is pending, the command is + ignored and the write/erase continues. If we dont catch this situation + we will return garbage to the user because the flash will not execute + the command. So READ MUST wait for write completion, and before that, + the bus must be locked since it's a precondition to calling + waitwritecomplete(). From Sebastien Lorquet. + - MTD FLASH drivers: Clone Sebastien Lorquet's m25px change to at25, + is25xp, ramtron, and sst25xx. + - MTD W25: Add missing locking and fix SPI_SELECT usage for + w25_unprotect. From Jussi Kivilinna. + - MTD W25: Wait for BUSY flag to clear in w25_readid and + w25_unprotect. W25Q128 datasheet says that all instructions expect + 'Read Status Register' and 'Erase/Program Suspend' are ignored when + BUSY flag in status register is '1'. Therefore wait for busy flag to + clear in w25_readid() and w25_unprotect(). From Jussi Kivilinna. + - Automounter: FS_AUTOMOUNTER should depend on SCHED_LPWORK. From + Nickolay Semyonov. + + * Networking/Network Drivers: + + - TCP Listen: Throw error when error happens in the tcp_listen + function. From Roland Takacs. + - Nework Device Management: Do not search net device when all-zeros + address is used. From Roland Takacs. + - Network Device Management: Fix a error in netdev_register(); it was + not handling device names properly when TUN is the only network device. + - Network Device Management: Fix netdev_dev_lladdrsize(). In some + configurations, it could return the wrong size for the address of a + packet radio. + - Network Device Management: Fix typo for 802.11 devices in + netdev_register(). Was being masked before because depended on + CONFIG_NET_MULTLINK. + - TUN Driver: Use critical section instead of semaphore in + tun_ifdown(). From Masayuki Ishikawa. + - TUN Driver: Do all polling on worker thread. Otherwise, the stack + gets very deep. + - TUN Driver: Currently cannot support TAP mode unless Ethenet is + enabled. + - netdb: Fixed buffer size used for sending DNS queries should depend + on the configured DNS name size. From Ritjaina. + - UDP networking: The TTL (time to live) was not being set in the IPv4 + or IPv6 header unless the UDP socket was bound. + - UDP Networking: Fix a copy-paste error that could effect networking + when both IPv4 and IPv6 are enabled. + - UDP Networking: When upd_input() cannot process a packet, it returns + ERROR so that network drivers may try calling ipv4_input() later. In + this case, it must also set d_len to zero. Otherwise, all network + drivers will assume tht there is also an outgoing packet. This + results in a gratuitous ARP. + - TCP Networking: Correct some issues that prevent TCP from working + correctly when both IPv4 and IPv6 are enabled. + - TCP Networking: TCP disconnection callbacks are not retained in a + list. This will support mutiple callbacks per lower-level TCP + connection structure. That is necessary for the cae where a socket is + dup'ed and shares the same lower-level connection structure. NOTE: + There still needs to be a call to tcp_start_monitor() when the socket + is dup'ed. + - TCP Networking: Start the network monitor for a socket when a TCP + socket is dup'ed. + - TCP Networking: If one of the dup'ed socket's is closed, then network + monitor resources associated with that one socket must be recovered. + Also, in the event that socket is being used on one thread, but then + closed on another, any threads waiting for events from the socket + should be informed of the closure. That latter requirement is not + implemented because current data structures do not support it. + - TCP Networking: Fix a race condition. The accept() operation is + performed with the network locked. However, the network is unlocked + BEFORE the connected state is set. Therefore, a context switch may + occur and the socket may no longer be connected when it is marked so. + Noted by Pascal Speck. + - Network routing tables: Fix a compilation error when IPv6 and + routing are enabled. + - Network procfs: Fix some spacing when both IPv6 and IPv4 are enabled. + - Network Local Sockets: Fix accept for local stream sockets. From + Jussi Kivilinna. + - Network Local Sockets: Fix server lc_waitsem overflow. From Jussi + Kivilinna. + - IPv6 Networking: Remove comparisons to the address with all ones + set. IPv6 does not support broadcast addresses and certainly not in + that form. Replace with multicast addresses beginning with 0xff02. + - ICMPv6 Networking: Fix a compilation issue with + CONFIG_NET_ICMPv6_AUTOCONF=y. From Masayuki Ishikawa. + - Networking: Fix net_lock returning ERROR when instead of real error + code on failure. From Jussi Kivilinna. + - IGMPv2 Networking: Remove special support for interrupt level + processing (there is none) and fix some timer cancellation logic. In + many files, correct comments. There is no interrupt level processing + in the networking layer. + + * Wireless/Wireless Drivers: + + - IEEE 802.15.4 MAC: Need counting protection on the logic that + releases the notification resources. Otherwise, notification handlers + may be operating with a stale pointer. + - IEEE 802.15.4 MAC: Improves internal timer logic to handle work + serially. Before, the MAC timer used a watchdog to schedule work with + the high priority worker queue. However, since everything in the MAC + is supposed to be serialized through the use of the high priority work + queue, but the timer uses a watchdog, there are some unintended + consequences. To simplify, we now use the delayed work feature of the + work queue. From Anthony Merlino. + - IEEE 802.15.4 Network Driver: Update RX statistics in network driver. + - IEEE 802.15.4 MRF24J40 Driver: Minor timing fix. Matches recommended + value in datasheet. Splits up driver into multiple files to make it + easier to navigate. Fixes issue with non-beacon enabled mode. From + Anthony Merlino. + - IEEE 802.15.4 MRF24J40 Driver: Fix a bug causing radio to cease + transmitting. From Anthony Merlino. + - IEEE 802.15.4 MRF24J40 Driver: Fixes issues with sleeping for beacon + enabled networking. From Anthony Merlino. + - EEE 802.15.4 MRF24J40 Driver: Fix math error for calculating sleep + count values. From Anthony Merlino. + - IEEE 802.15.4: Fix timing issues for beacon enabled coordinators and + endpoints. From Anthony Merlino. + - iIEEE 802.15.4: Fix issue with association on beacon-enabled + networking. From Anthony Merlino. + - 6LoWPAN: Correct a few addressing issues. Also reserve two bytes at + the end of the frame for the FCS. + - 6LoWPAN: Fixes needed when extended addressing is enabled; broke short + addressing. Loopback driver needs to initialize the MAC meta data; + Address decompression logic must have the MAC address to handle the + most common compression cases. Fix a src/dest address confusion and + other addressing problems. + - 6LoWPAN: Add missing IPv6 address creation to HC1 decode logic. Fix a + typo in an index that prevented use with HC1 and extended addresses. + - 6LoWPAN: TCP logic was not obeying MTU packet size limitations. + - 6LoWPAN: Major re-architecting of TCP logic to properly handle TCP + stuff like ACKs and TDP windowing which were not properly covered in + the initial design. + - 6LoWPAN: HC06, copy TCP header as though it were data. TCP packet + reassembly now seems to work OK. + - 6LoWPAN: Fix duplicate and bad memcpy in loopback driver. + - 6LoWPAN: Fix a misconception about HC06 16-bit IPv6 address + compression. + - 6LoWPAN: TCP send logic was returning a failure in one case when, in + fact, the send was successful. + + * Common Drivers: + + - USB MSC: Use struct instead of pointer to the struct as sizeof + argument in memset in usbmsc.c. Otherwise it leads to error: argument + to sizeof in memset call is the same pointer type struct usbmsc_lun_s + * as the destination. From Oleg Evseev. + - USB MSC: Add missing logic to define endpoints. The composite + changes broke the the non-composite, USB MSC only case because it omitted the critical setup when USB MSC was not part of the composite. + - USB CDC/ACM. Fix several known problems resulting from merge of USB + composite device. That merge now breaks some of the non-composite USB + devices. + - Button Driver: Interrupts weren't enabled since nothing updates them + after btn_poll() marks the file descriptor structure as being polling. + From Jan Pobrislo. + - ADC Driver: Fix some data alignment issues in the ADC driver. + - I2C Drivers: Handle I2C_TRANSFER return value consistently. Some I2C + peripherals transfers return zero on success, others number of + completed transfers. Make drivers robust against this. From Juha + Niskanen. + - COMP Driver: Fix compilation errors when poll disabled. From Mateusz + Szafoni. + + * Simulation: + + - Simulation: Fix mkdir issue in GNU target. From Simon Piriou. + - Simulation: x86 stack needs to be aligned to 16-byte boundaries. + - Simulation: Fix building 32-bit simulation on 32-bit X86. From Jussi + Kivilinna. + + * ARM: + + - ARM: The older ARM7 and ARM9 configurations were determining CFLAGS + based on the GCC version 4.x.x or not. That needx to be extended for + 5.x.x and 6.x.x which also behave like 4.x.x. + + * ARMv7-M: + + - Fixed ARMv7-M Toolchain setting. Cortex-M4 only have Single + Precision FPU. From Hidetaka Takano. + - ARMv7-M syscall logic: Clear bit 0 in PC settings. Bit 0 is the + thumb mode indication and should not be set in the PC. This extra bit + has not caused problems in the past, but seeing it set in the PC is + unnerving. + + * Expressif ESP32: + + - Fix ESP32 gpio enable reg and default UART pin. Modify default UART + pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim. + + * Microchip/Atmel SAMD21 Drivers: + + - SAMD21: Fix some SPI-related issues. From Matt Thompson. + - SAMD21 SPI: I was having issues with the bus freezing up .. slaves + holding SDL low.. so I rewrote a good portion of the interrupt logic + based on the application notes from Atmel. One major improvement is + using the RXNACK flag in the STATUS register, which indicates that no + device responded to an address packet. Assuming that the chip will + always give an interrupt status, I believe it's possible to eliminate + the timer as well. From Matt Thompson. + - SAMD/L21: Need to preserve errno value across syslog() call. + - SAMD21: Changes needed to get USB working. From Matt Thompson. + + * Microchip/Atmel SAMv7 Drivers: + + - SAMv7 TWIHS: TWIHS driver add reference counting. From David Sidrane. + - SAMv7 CAN: We discovered a problem with the samv7 mcan driver which + results, under some circumstances, in a very high CPU load. The + problem occurs, and is easily reproducible, if the device is connected + to a CAN network with a wrongly configured CAN speed (baud rate). In + our tests we set the CAN speed of the device to 1000000 and the speed + of the other CAN nodes to 500000. The device is restarted and sends a + CANopen "bootup message" to the CAN network. This results in huge + amount of errors messages on the CAN bus, probably because of the CAN + feature for acknowledging error messages. The error messages can’t be + read by the device because of the misconfigured CAN speed, instead the + CAN chip reports lots of errors, which are reported to the application + which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). The CAN + errors are reported from the CAN chip via interrupts and thus the + interrupt load is very high in this scenario. To fix the problem the + driver now disables each RX error interrupt after it is occurred. The + RX error interrupts are turned back on if at least one CAN message is + received successfully. From Stefan Kolb. + - SAMv7 CAN: I discovered while working on the SAMV7 mcan driver that + the implementation of the CAN error handling is suboptimal. In the + current implementation the many errors are implemented as pending + errors. But those errors are not pending, the errors occurred and are + gone directly afterwards. This commit changes the described behavior + and simplifies the handling of CAN errors. From Stefan Kolb. + + * Microchip/Atmel SAMv7 Boards: + + - SAMv71-XULT: Fix MRF24J40 interrupt GPIO number. + + * NXP/Freescale Kinetis: + + - Kinetis MPU: Disable MPU when not in protected mode. The hardware + reset state of the the MPU precludes any bus masters other then DMA + access to memory. Unfortunately USB and SDHC have there own DMA and + will not have access to memory in the default reset state. This change + disabled the MPU if present on system startup. From David Sidrane. + - Kinetis MPU: Fixed warning for kinetis_mpudisable. Missing header + file added. From David Sidrane. + - Kinetis SIM: Ensure isolation of clock dividers for 0 value case. + This fixes a bug were a SoC does not have a clockdivN register and + passes a 0 for the init value. This prevents overflow of the 0 + decremented to -1 (0xffffffff) spilling over to other clockdivN + fields. From David Sidrane. + + * NXP/Freescale i.MX6 Drivers: + + - i.MX6: Fix a wrong parameter passed when calling irq_attach() in + imx_serial.c. From Masayuki Ishikawa. + - Based on Masayuki's change, I review all serial driver vector + attachment. I Found one additional error and updated all relevant + drivers to current interrupt parameter passing. + + * STMicro STM32: + + - STM32 F410 Kconfig: Fix peripherals available on the STM32 F410. + This also adds a select for STM32_HAVE_DAC1 present on this STM32 + flavor. From Gwenhael Goavec-Merou. + - STM32 L4 DMA: Correct USART3_RX bad channel definition. From Juha + Niskanen. + - STM32 L4 PWR: Correct PWR_SR2 REGLPS and REGLPF bits, add port I + registers. Also remove duplicate section from Kconfig. From Juha + Niskanen. + - STM32 F7: do not enable read-modify-write on DTCM. "AN 4667 - STM32F7 + Series system architecture and performance" recommends to disable + read-modify-write on DTCM: "If the DTCM-RAM is used as data location + and the variables used are byte or/and halfword types, since there is + no ECC management in this RAM on the STM32F7 Series, it is recommended + to disable the read-modify-write of the DTCM-RAM in the DTCM interface + (inthe DTCMCR register) to increase the performance." From Jussi + Kivilinna. + + * STMicro STM32 Drivers: + + - STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu + Nevalainen.. + - STM32 ADC: Invalidate dma buffer before use. Missing invalidation + caused old samples being fetched from cache. From Jussi Kivilinna. + - STM32, STM32L4, STM32F7 ADC: Fix channel 18 sample time. From Juha + Niskanen. + - STM32 DAC: Fix some configuration logic. When STM32_NDAC is greather + than 1, then second channel is always DAC1OUT2. From Mateusz Szafoni. + - STM32 DAC: Fix compilation when DMA disabled for channel. From + Mateusz Szafoni. + - STM32 F0: Fix some funny shifts in DAC header files. From Juha + Niskanen. + - STM32 F1 RTC fixes: (1) Compile issues because of missing RTC_MAGIC + #defines, (2) missing functionality based on RTC_MAGIC in RTC based on + stm32_rtcounter.c, (3) IRQ setup from up_rtc_initialize was later + reset in up_irqinitialize, (4) write access to backup registers + without enabling access to backup domain, (5) possible races in + set/cancel alarm. tested with STM32F103C8 only. device now wakes up + from forced STANDBY mode by alarm. From Leif Jakob. + - STM32/STM32 L4 PWM: While attempting to output a 70 MHz square wave + from the timer output of a STM32 clocked at 140 MHz, found that the + reload calculation was off by one. This correction does allow the + output up to 70 MHz. I am not sure this affects most users + generating slow PWM but for frequencies close to the PCLK, the + difference becomes significant. From JM. + - STM32 L4 I2C: Set I2C SDA and SCL pins to open drain mode. From Pekka + Ervasti. + - STM32 L4 I2C: I2C4 was writing to wrong RCC registers. From Juha + Niskanen. + - STM32 L4 DAC: Report transfer as completed in DMA callback. Without + this even O_NONBLOCK writes block the calling task if DAC was using + DMA. From Juha Niskanen. + - STM32 L4 COMP: comparators share RCC enable bit with SYSCFG. From + Juha Niskanen. + - STM32 L4 ADC: Correct EXTSEL macros. From Juha Niskanen. + - STM32 L4 TIM: TIM15,16,17 are always in APB2. From Juha Niskanen. + - STM32 F7 I2C: Set I2C4 SDA and SCL pins to open drain mode. From Juha + Niskanen. + - STM32 F4 RTCC: ISR register and write protection fix. From Eetu + Nevalainen. + - STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier + between writing to DMA TX descriptor and restarting DMA TX. Avoid + calling work_queue on pollwork if it's already queued, just skip a + poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to + PB13 not to PG14. From savinz. + - STM32 F7: Added missing config option for register value debugging. + From Titus von Boxberg. + - STM32 F7: No FSMC, only FMC for STM32F7. From Titus von Boxberg. + - STM32 F7: HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular + FMC RAM type. From Titus von Boxberg. + - STM32 F7: STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is + not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S. + From Titus von Boxberg. + - STM32F7: Some STM32F7 builds failed in build testing due to undefined + STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was + not including chip/stm32_memorymap.h. + - STM32 F7: dcache write-buffed mode is used (not write-through) buffer + alignment is required for DMA transfers because a) + arch_invalidate_dcache could lose buffered writes data and b) + arch_flush_dcache could corrupt adjacent memory if the buffer and the + bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries. From David + Sidrane. + + * STMicro STM32 Boards: + + - STM32F103-Minumum SPI: SPIDEV_WIRELESS used when this has + changed to SPIDEV_CONTACTLESS. From Nicolas Estibals. + - configs/: a few more places where SPIDEV_WIRELELSS should be + SPIDEV_CONTACTLESS. + - STM32F103-Minumum: Fix a BUG when reading from output pin. We need + a different read_ops to read from output pin. This patch fixes the + issue. From Alan Carvalho de Assis. + - STM32F103-Minumum: Use separated read_ops for GPIO interrupt pins. + From Alan Carvalho de Assis. + - STM32F103-Minumum: Fix compiler error in MCP2415 logic. + - STM32F746G-DISCO: Fix for compilation of STM32F746G-DISCO. From Ivan + Ucherdzhiev. + - STM32F746G-DISCO: Fix for stm32f746g-disco board for button support + with interrupt. This change is tested with buttons app example and it + is working with interrupts (signals). I tried the test with polling + but at this point it doesn't work. From Ivan Ucherdzhiev. + + * Build System + + - Fix -Werror=implicit-fallthrough on gcc7. From Julien Lecoeur. + - configs/Board.mk: Remove comment form end of line. In windows native + build, it appears to be trying to make that an extra parameter to the + AR command. From Jeff. + - configs/Board.mk: Remove quotes from CONFIG_ARCH_FAMILY. Causes + problems with Windows native build. From Jeff. + - Makefile.win would only create uboot images for ARM. MIPS support + also needed. From Lwazi Dube. + + * C Library/Header Files: + + - C++: Fix C++ __guard implementation for ARM. The standard C++ ABI + that most platforms follow defines __guard to be 64 bits. The existing + implementation of libxx_cxa_guard.cxx follows this. However, the + 32-bit ARM C++ ABI defines it as 32 bits instead, and changes the + meaning slightly so only the lowest bit is used. This matters because + GCC creates guard symbols without regards to what libxx_cxa_guard.cxx + says. So on ARM, gcc allocates 4 bytes, but __cxa_guard_release + writes 8 bytes, zeroing out another unlucky variable nearby. Fix it + by special-casing 32-bit ARM in libxx_cxa_guard. From Jim Paris. + - C++: In cwchar it uses CONFIG_LIBC_WCHAR to only export the wc/mb + functions. When a build does not want to use wide or multibyte char + CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the + wc/mb functions when defined. Regardless of the stat of + CONFIG_LIBC_WCHAR the non mb/wc definitions such as mbstate_t, + wint_t, wctype_t need to be exported. From David Sidrane. + - C Library: Fix an error in mkstemp() the could result in an infinite + loop. From Alan Carvalho de Assis. + - C Library: (1) Fix an error in mkstemp() the could result in an + infinite loop. (2) Fix for wrong output in some cases. For Example: + (a) input: "FILEXX", output: "FILE00" and repeats same output for + further invocations of mkstemp(). But, the ouput has to be FILE01, + FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000", + for next invocation "FILE200000" and so on. But it's good, if the + ouput goes like FILE000001, FILE000002, ..., FILE000101, ... From + Lokesh B V. + - C Library: gethostbyname_r: Fix check for space in buffer. + - C Library: inet_ntop() was printing negative values for fields >127. + - Math Library: Fix wrong ouput in modf() API. The sign of integral + part given by the modf() should be same as sign of input. But for + inputs between 0 and 1, the sign of integral part was not same as + sign of input. From Lokesh B V. + - Math Library: Fix wrong ouput in ceil() API. Ex:for input x = 1.0, + the output should be 1.0, but the ouput was 2.0. From Lokesh B V. + + * Tools + + - tools/testbuild.sh: Fix missing $ before variable name. + - tools/mkdeps.c: Eliminate a warning. MAX_PATH may already be defined + in included system files. From Jeff. + + * Applications: apps/ + + - All apps/ Makefiles: Add .PRECIOUS: apps/libapps.a to every + Makefile. Hopefully this will end awkward problems when you Control-C + out of a build and libapps.a is deleted. + - platform/Makefile: More attempts to fix for Windows native build. + Backslash as a delimiter causes problems in pattern subsitutions. + + * NSH: apps/nshlib: + + - NSH network initialization: Fix some ieee 802.15.4 initialization + logic. It should not set the saddr or panid; those cannot be + hard-coded but must come from the coordinator. Re-factor a function + that has gotten too big and too complex. Do not set the IP address + for 6loWPAN. The 6loWPAN stack uses IP address that derive from the + ieee 802.15.4 addressing and cannot be (safely) configured by the user. + - NSH Library: Fix copy-paste typo in nsh_usbconsole.c. From Oleg + Evseev. + - NSH Library: fix size of 6LoWPAN extended address. + - NSH Library: Fix build break in nsh_command.c with IPv4/IPv6 dual + stack. From Masayuki Ishikawa. + - NSH Library: Correct parsing of ifconfig so that you can specify the + HW address without specifying the IP address. + + * Examples/Tests: apps/examples: + + - examples/smart: Fix some compilation errors. Obviously this test has + not been used in a LONG time. + - examples/udp: Renaming some files to prevent name collision in + libapps.a. Fix naming of a configuration setting. + - examples/nettest: Renaming some files to prevent name collision in + libapps.a + - examples/nximage: Remove unused global variable. + - examples/nsh: Remove APPNAME, PRIORITY, and STACKSIZE settings from + Makefile to avoid showing nsh in Builtin Apps. From Masayuki Ishikawa. + + * Network Utilies: apps/netutils: + + - netutils/tftpc: Missing header file causes errors in some + configurations. + - netutils/tftpc: TFTPC depends on CONFIG_NET_IPv4. + - netutils/netlib: Fixes to work when only USRSOCK is enabled. + - netutils/netlib: Fix netlib_nodaddrconv() so that its return type is + the same as other address conversion functions. + - netutils/netlib: If only PF_IEEE802154 socket family is enabled, then + must use SOCK_DGRAM. + - netutils/ftpc: Fix some memory leaks. From Boris Astardzhiev. + - netutils/thttpd: Fix a malformed if condition detected by GCC 6.x.x. + - netutils/dhcpd: Prevent buffer overflow in dhcpd_addoption. offset + represents distance from start of option buffer. So this should be + changed current option pointer minus start of buffer. From EunBong + Song. + + * Wireless Utilies: apps/wireless: + + - wireless/ieee802154/i8sak: Need to increment the next_saddr after + each successful association. + + * System Unitilities (apps/system) + + - correct copy-paste typo in comments in composite_main.c From Oleg + Evseev. + - system/dhcpc: The DHCPC renew command did not build correctly due to + naming problems. Noted by Masayuki Ishikawa. + - system/dhcpc: Fix warning about renew_main.o appear twice in rule. + + * Tools (apps/tools): + + - tools/mkkconfig.bat: Use %cd% instead of %~dp0 for usage of APPSDIR + in this batch file. + - tools/mkkconfig.bat: Remove quotes in echo. These were begin + Echo'ed and generating double quots in the output. From Jeff. + - Windows build fixes: tools/mkkconfig.bat - switch APPSDIR path to + use forward slashes for kconfig-frontends. interpreters/ficl - + Reorder some targets that causes GNUwin32 make to behave badly. From + Jeff.