incubator-nuttx/Documentation/ReleaseNotes/NuttX-7.28

1102 lines
49 KiB
Plaintext

NuttX-7.28
----------
The 128th release of NuttX, Version 7.28, was made on January 19, 2019,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.28.tar.gz and
apps-7.28.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:
- Critical Section Monitor: Adds data collection logic in support of
pre-task monitoring critical sections and pre-emption state. From Gregory
Nutt
- Critical Section Monitor: Add support for global pre-emption and
global critical sections to monitor as suggested by Xiang Xaio. From
Gregory Nutt
- Interrupt Time: Measurement of interrupt handler duration used to
be available only in Tickless mode since it used the high resolution
Tickless timer to measure interrupt time. This change adds
CONFIG_SCHED_IRQMONITOR_GETTIME which, if enabled, will force the
interrupt duration calculation to use the same high-resolution,
platform-specific timer as is used with the Critical Section Monitor.
This leads to two improvements: (1) You can now measure interrupt
duration in non-Tickless mode, and (2) in either mode, the interrupt
duration and the critical section measures will use the same
high-resolution timer and should, therefore, never be any discrepancy
due to different clock sources. From Gregory Nutt
- Context Switching Protection: Add debug assertions before each call
to up_block_task() to assure that there is no attempt to block an
IDLE task. From Dave Marples
- init Task: Allow the init task priority to be configurable. From
David Sidrane
- pthreads: Implement pthread_key_delete(). This involves some minor
changes to the group data structure. From Gregory Nutt
* File Systems/Block and MTD Drivers
- ProcFS: Extended the process ID ProcFS output to show per-thread
maximum time for pre-emption disabled and maximum time within a
critical section. From Gregory Nutt
- NXFFS: Pass unrecognized IOCTL commands to the contained MTD
driver. From Daniel P. Carvalho
- LittleFS: Adds an initial port the ARM mbed littlefs to NuttX. This does
not include FLASH formatting utilities. Depends on CONFIG_MTD_BYTE_WRITE.
From lihaichen
- AT25 MTD Driver: Added support for AT25DF081A serial flash chip.
From Marc Rosen
- MTD Configdata Device: Extends the MTD configdata device with the
following features / additions:
1. Configurable option to use named config items instead of enumerated
ID/Instance numbers.
2. Ability to iterate through the existing configdata items in the
/dev/config device.
3. Ability to "unset" a configdata item.
4. Ability to perform "flash_eraseall" on the /dev/config device.
From Ken Pettit
* Networking/Network Drivers:
- Telnet Driver: Add NAWS and poll interface to telnet for screen size
negotiation used with termcurses. From Ken Pettit
* Wireless/Wireless Drivers:
- BLE HIC Core: Add second RX work function From Lwazi Dube
- BLE IOCTL Commands: Add SIOCBTCONNECT and SIOCBTDISCONNECT ioctl
commands From Lwazi Dube
- CC2564: Add cc2564 HCI UART driver. From Lwazi Dube
* Graphics/Display Drivers:
- Sitronix ST7032i: Add support to Alphanumeric Sitronix ST7032i
display From Alan Carvalho de Assis
- NXP TDA19988: This commit brings in a complete, but untested,
implementation of a driver for the TI TDA19988 HDMI Encoder. This encoder
is used on the Beaglebone Black board. Since this driver is untested, it
requires CONFIG_EXPERIMENTAL in the configuration. From Gregory Nutt
* Crypto:
- crypto/aes.c: This change provides an improved AES cipher API in
addition to the existing routines. The reasons for this new API are:
1) better performance, giving the possibility to avoid re-setting-up
the key for each AES block when the same key is used multiple times.
This is important for the current single user of AES, which is
related to storage and FTL. And 2) suitable for simultaneous use of
multiple AES keys, which will be required by the upcoming crypto
framework. It retains compatibility with the previous API, so there
is no need to change anything else right now. From Sebastien Lorquet
* Other Common Device Drivers:
- MMCSD SDIO: The mmcsd_sdio driver makes calls for dcache
invalidation through the chip specific architecture function
SDIO_DMARECVSETUP(). I changed the arch/arm/stm32f7 chips to use
arch_invalidate_dcache_by_addr() instead of arch_invalidate_dcache().
This commit includes additional changes to mmcsd_sdio.c. I
created SDIO_DMADELYDINVLDT() (DMA delayed invalidate) to
invalidate store-into mode dcaches after the DMA transfer. I
have been using SDIO_DMADELYDINVLDT() for several weeks now and
it has fixed the problems that I previously reported regarding
non-cache aligned buffer invalidation errors (for my store-through
dcache). However, it does not permit use of unaligned DMA buffers
for store-into mode dcaches.
SDIO_DMADELYDINVLDT() is a NoOp unless the chip specific Kconfig
file selects CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT. I have modified
all the stm32f7 chips to select it. From Bob Feretich
- SPI Lower Half Interface: Extend the HW features supported by SPI.
It now supports a deferred DMA trigger hardware configuration. From
Dave Marples
- DS28E17 1-Wire Driver: Optimize I2C write followed by read to same
address. From Juha Niskanen
- LMP92001: Add support for the TI LMP92001 Multi-channle DAC/ADC
device. From Abdelatif Guettouche.
- EEPROM Character Driver: Add support to Microchip AT24CM02 From
Alan Carvalho de Assis
- Microchip MCP73871: Add support to Microchip MPC73871 Battery Charger.
From Alan Carvalho de Assis
- MCP7941x: Add support for the Microchip MCP741x external RTC. From Ouss4
- Sensirion SCD30: Driver for Sensirion SCD30 CO2 sensor. From Jussi
Kivilinna
- Sensirion SGP30: Driver for Sensirion SCD30 gas sensor. From Jussi
Kivilinna
- Sensirion SPS30: Driver for Sensirion SCD30 particulate matter sensor.
From Jussi Kivilinna
- USB CDC/ACM Device: When implemented usb cdc on nrf52840, I found
some issues with cdc driver:
1. Lost data when receiving buffer is full;
2. Low-water mask implement issue;
3. Re-flush cdc buffer when enabling
4. Serial dma is conflict with cdc , modify the serial.h
From Levin Li
* MIPS32:
- Configuration System: Allow Penguino for windows for the Windows
Ubuntu platform as well.
* Maxim Integrated MAX326xx
- MAX32660: Support for the MAX32660 was added (along with partial
support for other members of the MAX326xx family). The initial port
includes Clock configuration, timer, GPIO pin configuration, ICC,
and UART. Additional untested drivers are complete and ready for
testing: DMA, GPIO interrupts, SPI0 Master, TC, WDT. The following
drivers are not yet implemented: I2C and I2S.
* Maxim Integrated MAX326xx boards
- MAX32550-EVSYS: Basic support for the Maxim Integrated MAC3X660
EVSYS is included. A basic NSH configuration is available and is
fully functional. Includes unverified support for an SPI0-based
SD card.
* Microchip/Atmel SAMD21/L21 Drivers:
- SAMD21/L21: Adds a complete ADC header file for SAMD21 and a partially
complete ADC header file for the SAML21. From Alexander Vasiliev
- SAMD21/L21: Export sam_i2c_master_initialize(int bus) to be used by
board config. From Alan Carvalho de Assis
* Microchip PIC32MZ Drivers:
- PIC32MZ I2C: Add support for the I2C bus. From Ouss4
* ARMv7-A
- ARMv7-A MMU: Use TLBIMVA vs TLBIMVAAIS to invalidate the Cortex-A8
cache. From Petro Karashchenko
* ARMv7-M
- Cortex-M7 Cache: This commit adds a new function
arch_invalidate_dcache_by_addr(). It takes the same parameters as
arch_invalidate_dcache(), but performs invalidation of only the lines
in cache that need to be invalidated. This new function could be
used as a a direct replacement for arch_invalidate_dcache(). From
Bob Feretich
- ARMv7-M: In the current implementation we only use very high
priority interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but
that means there are loads of lower priority ones that are
effectively unused. I have *not* changed the semantics of these
levels but have 'shifted' them to be based around the midpoint of the
available interrupts (0x80) rather than at the top end....that allows
for interrupts to be defined above (or, indeed, below) them as needed
by the application. This should have no functional effect on
existing code but adds in a clean capability to define higher
priority interrupts. From Dave Marples
* Broadcom BCM2708:
- BCM2708: Remove all support for the BCM2708/2835. This was added
only for support of the RaspberryPi Zero board which was previously
removed. The support was minimal and unverified. The removed files
can still be found in the Obsoleted directory. From Gregory Nutt
* Broadcom BCM2708 Boards:
- Raspberry Pi Zero: Remove the partial support for the Raspberry Pi
Zero. This port was started with the best of intentions but was
never completed. The board support can still be found in the
Obsoleted repository. From Gregory Nutt
* Nordic NRF52 Boards:
- Improve LED handling #if~#endif in nrf52_autoleds.c and
nrf52_userleds.c
Add Adafruit Feather nRF52 board LED support
Add Adafruit Feather nRF52 board
Add nrf52-generic
Replace 'pca10040' with 'generic'
Copy from nrf52-pca10040 to nrf52-generic
From Zou Hanya
* NXP i.MX RT Drivers:
- i.MXRT: Add PIT, GPT, and QIMER(TMR) header files From David Sidrane
- i.MXRT: Add FLEXPWM. From David Sidrane
- i.MXRT: Add ADC chip header From David Sidrane
- i.MXRT Build: Include up_systemreset and up_stackcheck.c From David Sidrane
- i.MXRT GPIO: Add GPIO Support Input daisy selection. From David Sidrane
- i.MXRT Serial: Support independent input and output flow control. From
David Sidrane
- i.MXRT USB: Use single define for USB pin definitions. From David Sidrane
- IMXRT106X: Add FLEXCAN3 to pinmux header file. From David Sidrane
* NXP Freescale i.MX RT Boards:
- IMXRT1050-EVK: GPIO device driver support added and tested by
Pavlina Koleva and Ivan Ucherdzhiev. From Pavlina Koleva
* On Semi LPC23450:
- LPC23450: Add support for SPI flash boot. Also, remove unnecessary
code for the SPI flash boot. From Masayuki Ishikawa
* On Semi LPC23450 Boards:
- LC823450-XGEVK: Add linker script for SPI flash boot. From
Masayuki Ishikawa
- LC823450-XGEVK: Enable NFS client for RNDIS configuration. Also, some
stack size were adjusted to work with NFS From Masayuki Ishikawa
* Simulation
- Critical Section Monitor: Add low level timer support for simulation. From
Gregory Nutt
* STMicro STM32:
- Configuration: Simplify ARM core selection logic From Mateusz Szafoni
- Configuration: USB Host is an option. From David Sidrane
- STM32 L0: Brings in initial support for the STM23 L0. From Mateusz
Szafoni
* STMicro STM32 Drivers:
- STM32 ADC: Configurable ADC DMA mode (one shot mode, circular
mode). From Mateusz Szafoni
- STM32 ADC: Start conversion on startup is now possible if TIM
triggering selected. This can be useful to start ADC TIM conversion
for ADC IPv2 when opening ADC device.
- STM32 DAC: Unified naming for DAC interfaces From Mateusz Szafoni
- STM32 DMA: Add interfaces to interact with high priority DMA
interrupts. From Mateusz Szafoni
- STM32 DMA: Use STM32 DMA IP core version instead of chip family
names. From Mateusz Szafoni
- STM32 DMA: Add support for DMA v1 CSELR support. From Mateusz Szafoni
- STM32 HRTIM: Do not enable timers on startup if option from Kconfig
selected and add interface to enable/disable timers. From Mateusz
Szafoni
- STM32 PWM: Add timer enable/disable and frequency update to
low-level ops. From Mateusz Szafoni
- STM32 SPI: Implements the new deferred DMA trigger feature. From
Dave Marples
- STM32 F0 Build: Rename the stm32f0 directory to stm32f0l0 to make a
space for STM32 L0. Rename files, functions and defines, removing
the f0_ from the names in order to make them MCU agnostic. From
Gregory Nutt
- STM32 F0 GPIO: Add support for GPIO EXTI. From Mateusz Sfafoni
- STM32 F2 FLASH: stm32_flash_writeprotect() supported the same for
STM32F20XX as STM32F4XXX From Anthony Merlino
- STM34 F7 DMA: stm32f7 enable separate DMA per SPI configuration
From Daniel Agar
- STM32 F7 QEncoder: Ported the QEncoder from F4 to F7. From Eduard
Niesner
- STM32 F7 SPI: Port Dave Marples STM32 deferred trigger enhancement
to the STM32 F7 SPI drivers. From Gregory Nutt
- STM32 H7 SPI: Port Dave Marples STM32 deferred trigger enhancement
to the STM32 H7 SPI drivers. From Gregory Nutt
- STM32 L4 SPI: Port Dave Marples STM32 deferred trigger enhancement
to the STM32 L4 SPI drivers. From Gregory Nutt
* STMicro STM32 Boards:
- B-L072Z-LRWAN1: Add basic support for b-l072z-lrwan1. Nucleo boards
use as default ST LINK MCO as clock input from MCU and for this
HSEBYP must be enabled. From Mateusz Szafoni
- Nucleo-F103RB: Add board support. From Mateusz Szafoni
- Nucleo-F103RB: Add ADC and PWM examples. From Mateusz Szafoni
- Nucleo-F207ZG: Add board support. From Mateusz Szafoni
- Nucleo-F207ZG: Add ADC and PWM examples. From Mateusz Szafoni
- Nucleo-F302R8: Add high priority ADC interrupts example to the
'highpri' configuration. From Mateusz Szafoni
- Nucleo-F334R8: Add support for ADC injected sequence to the 'highpri'
configuration, add triggering from TIM1. From Mateusz Szafoni
- Nucleo-F334R8: Add example for the SPWM generation (custom STM32 PWM
usage). From Mateusz Szafoni
- Nucleo-F767ZI: Use on board USB UART as default console. Board is powered
by USB which can be used as UART link for upload and console. Previously
it was set to use Arduino shield which developer may not have. From Phil
Coval
- Nucleo-F767ZI: Add ethernet config based on nsh configuration plus
stm32f769i-disco/nsh-ethernet. From Phil Coval
- Nucleo-L073RZ: Add basic support for nucleo-l073rz. Nucleo boards
use as default ST LINK MCO as clock input from MCU and for this
HSEBYP must be enabled. From Mateusz Szafoni
- Nucleo-L152RE: Add board support. From Mateusz Szafoni
- STM32F4 Discovery: Add timing support for the critical section
monitor using the DWT CYCNT register. From Gregory Nutt
- STM32F4 Discovery: If the Critical Section Monitor, modify the
ITM_LAR register to assure that the DWT cycle counter is enabled.
Suggested by Dave Marples. From Gregory Nutt
- STM32F4 Discovery: Add board support to display ST7032i From Alan
Carvalho de Assis
- STM32F4 Discovery: Add loadable application build support in
Make.defs From Masayuki Ishikawa
- STM32F4 Discovery: Update RNDIS configuration: (1) Add NFS and adjusted
stack size for usermain and telnetd client. (2) Add support for loadable
application and ping. From Masayuki Ishikawa
- STM32F4 Discovery: Update nsh configuration: (1) Add
CONFIG_BOARD_INITIALIZE=y, (2) Add CONFIG_EXAMPLES_HELLO=y. From Masayuki
Ishikawa
- STM32F429I-DISCO: Add high priority ADC interrupts example to the
'highpri' configuration. From Mateusz Szafoni
- configs/nucleo-l073rz: Support for nrf24l01. From Mateusz Sfafoni
* TI CCxx:
- CC13x0 family and CC13x2/CC26x2: Basic, minimal support was added
for these two chip families. This is a Work-In-Progress: There is
just enough logic in place to support a simple NSH configuration.
However, the port is still missing certain, necessary hooks into the
TI ROM-based 'DriverLib'. As a result, the support is not fully code
complete and is totally untested. Support for the CC26x2, which is
nearly identical to the CC13x2 is fragmentary. Stay tuned.
Hopefully full support will be available in NuttX 7.29.
* TI CCxx Boards:
- LAUNCHL-CC1312R1: Board support is available for the TI
LAUNCHL-CC1312R1. That board support consists only of an unverified
NSH configuration. The primary purpose of this port for the time
being is simply support the core architecture bring-up.
* TI AM335x:
- AM335x: Adds initial support for the TI AM355x family.
- AM335x: Add minimal wdog logic needed to disable the watchdog timer.
Otherwise, the board is rebooted after certain time expires while NuttX is
running. From Petro Karashchenko
- AM335x: Switch to DMTimer2 for system tick generation. U-Boot does not
enable DMTimer1ms clocks hence it is not possible to use it until
implementation in am335x_clockconfig.c is ready. From Petro Karashchenko
* TI AM335x Boards:
- Beaglebone Black: Initial port for BeagleBone Black board support
(TI AM335x family based on Cortex-A8). Includes a basic functional NSH
configuration . From Petro Karashchenko
* TI Tiva:
- LM3S9B92: Add support for LM3S9B92. From Lwazi Dube
* TI Tiva Drivers:
- Tiva HCI UART: Port bluetooth HCI uart interface from stm32 to tiva
From Lwazi Dube
* TI Tiva Boards:
- TM4C1294-Launchpad: Add IRQBUTTONS support to tm4c1294 launchpad.
From Lwazi Dube
* Tools:
- tools/convert-comments.c: Add a tool to convert C++-style comments
to C89 C-style comments. From Gregory Nutt
- tools/detab.c: Add detab.c which will convert all tabs in a file to
spaces. From Gregory Nutt
- tools/lowhex.c: Add lowhex.c that will convert hexadecimal constants
in a file to use lower case representation. From Gregory Nutt
- tools/mkconfig.c: Add definitions to distinguish between tristate
'y' and 'm' options. From Gregory Nutt
- tools/nxstyle.c: Add logic to detect long lines. From Gregory Nutt
- tools/nxstyle.c: Add -h for help. From Gregory Nutt
* Libraries/Header Files:
- include/nuttx/lcd/edid.h: Add EDID definitions From Gregory Nutt
- libs/libc/netdb: Make DNS retries configurable From Juha Niskanen
- libs/libc/netdb: Harden query logic against DNS spoofing. This
commit implements most of the RFC 5452 guidelines for making DNS more
resilient. We now verify response matches against what was queried
and use unpredictable query IDs. It is also checked that response
come from correct DNS server. Also fixes a buffer overflow when
querying hostnames longer than CONFIG_NETDB_DNSCLIENT_NAMESIZE. From
Juha Niskanen
- libs/libc/netdb: Support multiple IP addresses per hostname From
Juha Niskanen
* NSH: apps/nshlib:
- apps/nshlib: Add support to use SLCD as NSH Console From Alan Carvalho de
Assis
- apps/nshlib: Add support for CROMFS start-up script. From David Sidrane
- apps/nshlib: Add var expansion in NSH parse. From Daniel Agar
- apps/nshlib: Display built-in apps using multi-column mode like the NSH
commands. From Ken Pettit
- apps/nshlib: In all multi-column help output, calculate an optimal column
width rather than using a hard-coded width that may or may not be
appropriate. Also make the number of rows presented dependent upon the
maximum width of the widest column. From Gregory Nutt
- apps/nshlib: Adds addroute command options for setting default gateway.
Like 'addroute default <ipaddr> <interface>'. From Anthony Merlino
* Examples/Tests: apps/examples:
- apps/examples/battery: Add Battery Charger Monitor Example From Alan
Carvalho de Assis
* System Utilities: apps/system
- apps/system/configdata: Adds an "cfgdata" command which allows
manipulation of the /dev/config items via the command line. One such use
for this utility would be to set a "macaddr" configdata item, etc. The
utility is sort-of like a u-boot env variable edit function:
For instance, to set a "macaddr" when the new CONFIG_MTD_CONFIG_NAMED
option is selected, you would do:
nsh> cfgdata set macaddr [0xfc 0x01 0x0b 0x45 0xa1 0x12]
(The brackets denotes an array of bytes)
nsh> cfgdata set hostname myboard
or using the old ID,INSTANCE numeric method:
nsh> cfgdata set 0,0 [0xfc 0x01 0x0b 0x45 0xa1 0x12]
(The brackets denotes an array of bytes)
nsh> cfgdata set 1,0 myboard
You can also display all config items:
nsh> cfgdata print all
Name Len Data
macaddr 6 0xFC 0x01 0x0B 0x45 0xA1 0x12
hostname 8 myboard
From Ken Pettit
- apps/system/critmon: Add a daemon to monitor critical section usage. From
Gregory Nutt
- apps/system/nsh: Set NSH priority if the NSH task was scheduled at a
different priority than the configured priority. From Gregory Nutt
- apps/system/nxplayer: Introduce CONFIG_NXPLAYER_MAINTHREAD_STACKSIZE. From
Masayuki Ishikawa
- apps/system/termcurses: Addition of termcurses libraries in
apps/system/termcurses From Ken Pettit
- apps/system/vi: New feature additions
1. Vi startup feature to prepend the current working directory to the
supplied filename if it does not start with '/' absolute path
specifier. This allows editing files in the current directory
without needing to fully qualify the filename.
2. Standard '~' empty screen line characters for proper identification
of empty '\n' only lines at the end of the file.
3. Moving into insert or append mode now prints '--INSERT--' in the
status line and clears it upon exit.
4. Integration with termcurses to detect special keystrokes and to
handle terminal type differences. Haven't yet converted all vt100
print codes to termcurses equivalents.
5. Support for up, down, left, right arrows, page-up, page-down keys in
command mode.
6. Added 'b' command to move cursor 'b'ack to previous word. Honors the
command repeat value for multiple word moves.
7. Added 'w' command to move cursor to next 'w'ord. Honors the command
repeat value for multiple word moves.
8. Added 'f' and 't' commands to find characters on the current line.
Honors the command repeat value.
9. Added the find 'n'ext command to repeat the previous find operation.
10. Added the 'H', 'M', and 'L' commands to move the cursor to top,
middle and bottom of the display.
11. Extended yank/paste to manage a paste buffer with character mode in
addition to line mode. Character mode allows cut / paste of
individual characters or groups of characters vs. full lines.
12. Added support in the 'd'elete and 'y'ank commands for character mode
deletions such as 'dw', 'dfa', '2yw', etc.
13. Added support in paste routine for multiple paste using command value
argument.
14. Added support for the 'D' and 'C' delete and change to end of line
commands.
15. Added support for 's'ubstitute key ('x' followed by insert mode).
16. Modified yank / paste allocation scheme to avoid repeated alloc and
free of paste buffer. Uses a minimum allocation size scheme and only
does free / realloc when paste does not fit. If the paste is smaller
than the current allocation and the current allocation is larger than
the threshold, then the buffer is freed and a smaller buffer
allocated. Otherwise the existing buffer is used.
17. Support for 'P'aste before current cursor position.
18. Support for '?' reverse search mode.
19. Support for 'J'oin next line with current line command.
20. Printing of current row,col in status line of display.
21. Command repeat '.' support for commands that modify text.
22. Support in replace / insert mode for arrow keys, PGUP / PGDN, HOME,
and END. Using these will cause the command repeat buffer to reset
such that only the last text addition after a cursor movement is saved.
23. Added 'X' delete previous command.
24. Added "gg" go to top of document command sequence.
25. Added "ZZ" save and quit command (equivalent to :wq).
26. Implemented '^' goto first non-whitespace on current line, along with
'+' and '-' goto first non-whitespace on next / previous line.
27. Added CR / LF goto first non-whitespace on next line in command
mode. From Ken Pettit ?
* Network Utilities: apps/netutils:
- apps/netutils/webserver: The webserver/httpd app is was broken when script
support was enabled (CONFIG_NETUTILS_HTTPD_SCRIPT_DISABLE). The root cause
has been tracked down to the "Content-length" not being available ahead of
time in this case (length of -1 passed to send_headers() ). On the other
hand, the server closing the socket does not result in FIN being sent to
the browser either (FIN not supported by NuttX yet).
Simple solution: Add support for HTTP Chunked Encoding to webserver/httpd.
The change is simple. It adds a configuration option to enable chunked
encoding. When enabled, the implementation will auto-detect the cases where
content length is not available ahead of time, and will automatically
engage chunked encoding transfers.
Without this patch, the browser/client hangs forever, as it is expecting
more data. With this patch, the browser displays the content. From Vlado
Vidovic
* Wireless Utilities: apps/wireless:
- apps/wireless/bluetooth/btsak: Add connect and disconnect commands to
btsak. From Lwazi Dube
* Graphic Utilities: apps/graphics:
- apps/graphics/pdcurs34: Integration of termcurses into pdcurses, plus
pdcurses updates for multi-thread support From Ken Pettit
- apps/graphics/pdcurs34: Adds a configuration option to pdcurses to enable
line-drawing character (ALTCHARSET) when using the short 16-bit chtype.
This is done by limiting the characters to 7-bit ASCII values and using the
8-th bit as the A_ALTCHARSET bit. This allows a significant RAM savings 4K
- 20K depending on terminal size) while still allowing the nicer
line-graphic characters for border drawing. From Ken Pettit
* Testing: apps/testing:
- apps/testing/ostest: Add test for pthread-specific data. From Gregory
Nutt
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:
- Assertions: Identify the running task correctly when dumping task
state information. It takes time to switch to the target task after
g_readytorun has been modified. If panic/assert happen during this
period, the dump will contain the incorrect and confusing information
due to the difference between the real running task and the return
value of this_task(). This change resolve this problem by adding
g_running_task to track the real running task through the context
switch. From Xiang Xiao
- Assertions: Correct duplicated logic from commit
dbf01d12b7321d1b48b68d3b69842a853b049376. Checking for PID == zero
is not a valid way to test for the IDLE task in all configurations!
This is only true in the single CPU configuration. In multiple CPU
configurations, there will be a separate IDLE task for each CPU with
a different PID and an alternative check must be used. NOTE: The
logic fixed in some places still lacks sufficient intelligence in SMP
mode to find the right stack for the CPU IDLE thread and could still
show the wrong stack. From Gregory Nutt
- Interrupt Prioritization: Remove all driver-specific logic that may
set the interrupt priority to anything but the default. There is no
good reason to change the interrupt priority unless you just want to
debug a difficult problem. OR if you want to use high priority
interrupts. In that case the specific interrupt priorities will need
to be set by board-specific logic. From Gregory Nutt
- Memory Management: Revert "This patch prevent heap corruption as in
below case." This solution to the problem noted by EunBong Song
results in major memory fragmentation and out-of-memory
conditions on the PX4 platform. On that platform the lower priority
work queue is very low priority and essentially never runs when the
system is busy. As a result, the systems gets slowly starved of
memory until failures and bad behaviors begin to occur. From Gregory Nutt
- Memory Management: This is a replacement for EunBong Song's reverted
change. This change adds (1) logic in getpid() to return an error instead
of the PID if the (apparent) currently executing task is not marked as
RUNNING. Then (2) mm_trysemaphore() (the root implementation of both
kmm_trysemaphore() and umm_trysemaphore()) will know that the (apparent)
running task cannot be the holder of the semaphore. How could the
non-running task be trying to get the MM semaphore? I think only in the
exact scenario that Eunbong Song has described. So this new solution
should provide the same protection as the original change but without the
bad consequences to memory usage. From Gregory Nutt (with corrections
from David Sidrane)
- Memory Management: In implementation of calloc(), verify that the number of
elements times the size of an element will not overflow type size_t. This
is required by the SEI CERT C coding style and resolves anonymous Bitbucket
Issue #139 From Gregory Nutt
- sigtimedwait(): Remove unnecessary disable of pre-emption. From
Gregory Nutt
- _exit(): Update all architecture-specific _exit() implementations
so that they correctly call the scheduler instrumentation layer for
the new task that runs when the old one exits. This missing
instrumentation was confusing the Critical Section Monitor logic with
uses this instrumentation to track the state of critical sections.
From Gregory Nutt
- sched_foreach(): sched_foreach() should not have to hold the
critical section over the entire traversal. It should be acceptable
to simply only the critical section while one entry is being
processed (the caller can always call sched_foreach within a critical
section is greater stability is needed). From Gregory Nutt
- task_spawn(): Correct description of input parameters to
task_spawn_exec(). Noted by: JeongchanKim From Gregory Nutt
* Crypto:
- crtypo/: This change:
Avoids the use of up_aesinitialize() entirely, which resolves
dependency problems, because this function does not make sure that
an actual hardware aes implementation was made available: each SoC
is now responsible to ensure the AES hardware is initialized before
first use. This applies to lpc43xx, stm32 and sam34.
Remove definitions of the NEVER used aes_init and aes_update
operations. The new AES API will be more suitable.
From Sebastien Lorquet
* File System/Block and MTD Drivers:
- opendir(): Corrects a problem with opendir() noted by Petteri
Aimonen in Bitbucket Issue 132: "opendir() fails for FAT filesystem
with trailing slash in path". I see the following behaviour on NuttX
7.26, where I have SD card mounted on /flash and a directory called
"frm" on it:
opendir("/flash") returns (DIR *) 0x1000c580
opendir("/flash/") returns (DIR *) 0x1000c5d0
opendir("/flash/frm") returns (DIR *) 0x1000c620
opendir("/flash/frm/") returns (DIR *) 0x0
From POSIX specs for opendir(): "A pathname ... that ends with one or
more trailing slashes shall be resolved as if a single dot character
( '.' ) were appended to the pathname." So for mount points,
opendir() works correctly, but for FAT32 filesystem it fails to open
directory if the path has a trailing slash...
NOTE: You would not see this problem if you call opendir() indirectly
in NSH (like 'ls -R /') because NSH contains logic to remove trailing
'/' characters from paths. From Gregory Nutt
- dup()/dup2(): dup() and dup2() were broken some time back.
fs_dupfd() was return returning OK on success, not the file
descriptor of the duplicated fd. From David Sidrane
- ProcFS: Remove the unnecessary critical section From Xiang Xiao
- CROMFS: Fix hardfault. From David Sidrane
- SmartFS MTD Driver: Fix smart_write_alloc_sector sector size mapping.
Was not correctly calculating the encoded sector size for small (256)
byte or large (>= 4096 byte) sectors. Noted by Daniel P. Carvalho.
Fix from Ken Pettit
- AT25 MTD Driver: Fixed missing opening parenthesis. From Marc Rosen
- MTD Configdata MTD Driver: Check return value mtdconfig_readbytes().
From Jussi Kivilinna
- S25FL1 MTD Driver: Minor change for the s25fl1 QSPI FLASH driver which
fixes additional sectorshift vs. pageshift confusion. From Ken Pettit
* Networking/Network Drivers:
- All network drivers! Change pre-processor logic that selects the
high priority work queue or gives preferential treatment to the high
priority work. All network logic must run on the low priority work
queue! Or suffer the consequences. From Gregory Nutt
- Socket Clone/Dup: On a failure to start the TCP monitor, the cloned
socket is closed but is not properly freed, leaving it attached to a
TCP connection structure with the wrong reference count. From
Gregory Nutt
- ARP: Fix whitespace after ARPHRD_IEEE80211 in ARP header file. From
Daniel Agar
- 6LoWPAN: Fixes decompression of ipaddr from MAC address. The logic
used to populate the IP from the radio address should match
sixlowpan_ipfromsaddr/sixlowpan_ipfromeaddr From Anthony Merlino
- 6LoWPAN: Fixes logic surrounding the Universal/Local bit. This bit
represents whether the IID is locally/globally administered. The U/L
bit is bit 1 of the MSB of the EUI-64. It should only be inverted in
cases where there is a full EUI-64. In cases where the IID is derived
from say, a short address, this bit should be forced to 0, indicating
that it is locally administered. See:
https://tools.ietf.org/html/rfc4291#section-2.5.1
https://tools.ietf.org/html/rfc4944#section-6
https://tools.ietf.org/html/rfc2464#section-4
From Anthony Merlino
- 6LoWPAN: IEEE802.15.4 stores and uses addresses in little endian
order. From Anthony Merlino
- 6LoWPAN: Address comment regarding avoiding double lookup of address
context. From Anthony Merlino
- 6LoWPAN: Record and restore d_buf on entry/exit of sixlowpan_input.
This avoids an issue where d_buf gets set to NULL by 6LoWPAN, and
then is used by forwarding logic from another network interface
before getting set back to the drivers internal buffer. From Anthony
Merlino
- 6LoWPAN: sixlowpan_input should always return 0 if the incoming frame was
consumed. From Anthony Merlino
- TUN Driver: Fixes a problem reported by Masayuki Ishikwawa: Recently I
noticed that ARP response packet is corrupted when I tried to run
bluekitchen with the latest tun.c in TAP mode. If I revert commit
8193c28e9126c9cb89042e80d6ebab7485a831e4, then it works again. From Xiang
Xiao
- Telnet Driver: Add missing logic to set read event flags in poll()
method. From Ken Pettit
* Wireless/Wireless Drivers:
- BLE: Fix uninitialized variables. From Lwazi Dube
- BLE GATT header file: Fix struct name. From Lwazi Dube
- BLE GATT: Remove unnecessary GATT ioctls From Lwazi Dube
* Graphics/Display Drivers:
- ST7032: Fix seek method. Was not taking into account the offset for the
SEEK_END case. Did not account for negative offsets. On errors, it was
clobbering the filep->f_pos setting. From Gregory Nutt
- PCF8574 Backpack: Fix seek method. Had the same problems as noted for
ST7032 driver. From Gregory Nutt
* Common Drivers:
- Button Upper Half: Fix two bad NULL checks From Juha Niskanen
- PWM Interface: Remove dependency on CONFIG_PWM for the upper-half
PWM header. This allows compilation for the lower-level PWM drivers
even if the upper-half PWM logic is not used. From Mateusz Szafoni
- Various I2C Drivers: In most I2C drivers, correct upper index value
in I2C trace dump. Eliminates the extra NONE event from the trace
dump output. From Ouss4
- Battery Gauge: Add missing initialization of semaphore. From Alan
Carvalho de Assis
- Batter Charger: Add missing initialization of semaphore. From Alan
Carvalho de Assis
- MCP73871: Fix Microchip MCP73871 Battery Charger driver to register
correctly as a battery charger. The first element of a 'struct
battery_charger_dev_s' should be a pointer to operations structure. From
Alan Carvalho de Assis
- MCP794xx: Fix MCP794xx driver to wait for OSCRUN and fix tm_year. From
Abdelatif Guettouche
- Numerous files: Fixes usage of CONFIG_BIG_ENDIAN; should be
CONFIG_ENDIAN_BIG From Anthony Merlino
* ARMv7-A:
- ARMv7-A MMU: Fix end address calculation for mmu_invalidate_region() API
From Petro Karashchenko
* ARMv7-M:
- ITM: Fix missing space causing macro issues From Alan Carvalho de
Assis
- Common Exception Handlers: This commit changes the lazy and non-lazy
exception handler to remove a couple of cpsid instructions from them
on ARMv7-m. If my understanding is correct then these interrupt
manipulations aren't doing anything anyway because prioritization
stops secondary interrupts arriving and, even if they did work, they
would have introduced race conditions for the period of time between
the interrupt arriving and further interrupts being disabled. From
Dave Marples
- MPU/Protected Mode Build: Revert "arch/arm/armv7-m: MPU:
mpu_log2regionceil needs take into account the offset too". Masayuki
Ishikawa reports that this commit breaks ALL PROTECTED mode builds. It
violates the basic requirements of the use of the MPU in protected mode.
Those basic requirements are:
1. The MPU region must be aligned to the base address of the memory
region being mapped (it may NEVER extend before the memory region).
That is, the following MUST always be zero: (base & ((1 << l2size) - 1))
2. The MPU region must never extend beyond the end of the memory region.
That is, the following must be true: size >= (1 << l2size)
From Gregory Nutt
* Microchip PIC32MX Drivers:
- PIC32MX Ethernet: Fix a comparison in a debug assertion. Should be
<= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt
* Microchip PIC32MZ:
- PIC32MZ chip.h Header: Add a missing " in an error message. From Ouss4
* Microchip PIC32MZ Drivers:
- PIC32MZ Ethernet: Fix a comparison in a debug assertion. Should be
<= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt
* Microchip/Atmel SAMD21/L21
- SAMD21/L21: Corrects behavior of the I2C_M_NOSTART flag. Also adds
a release a bus on RXNACK and corrects typo priv->flags to msg->flags
as priv->flags is never set. From Alexander Vasiliev
- SAMD21/L21: Fix SAMD2L2 arch to use calibrated oscillator value. Now
SAMD20 and SAMD21 should work fine without external crystal. Note that
SAML21 Xplained board has an external crystal and doesn't need this change,
unless you don't want to use the crystal. From Alexander Vasiliev
- SAMD21/L21 I2C Master: Adds calculation of a timeout and disables
interrupts in case of error. From Alexander Vasiliev
* Microchip/Atmel SAMD21/L21 Boards
- SAML21-Xplained: Fix removed MAXCOARSESTEP from saml21-xplained board.
From Alan Carvalho de Assis
* Microchip/Atmel SAMD51/Ex
- SAMD51/Ex: Alexander Vasiliev's fix to the SAMD21 I2C Master (commit
b1110ba91c549572e94c24ebed202643233deee3) should probably also be
applied to the SAMD51 I2C Master which is identical. From Gregory Nutt
* Microchip/Atmel SAMV7
- SAMV7 Serial: Fix case where TTYS0 is not defined. From Ken Pettit
* Maxim Integrated MAX326xx
- MAX326xx: WFI instruction in IDLE loop seems to interfere with
stability. Commented out for now. Needs to be investigated further.
From Gregory Nutt
* NXP i.MXRT Drivers:
- i.MXRT FLEXPWM: Correct duplicated definitions From David Sidrane
- i.MXRT SERIAL: Fix TTYS0 defined definitions of higher numbered ports
From David Sidrane
- i.MXRT LPSPI: Removed unused clock, that borked the build. From David
Sidrane
- i.MXRT LPI2C: I2C Reset rework From David Sidrane
* On Semi LC823450:
- LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. This
change fixes heap size and also implements up_addregion(). From
Masayuki Ishikawa
- LC823450: Fix go_os_start() in lc823450_start.c. I found a bug in
go_os_start() that it returns immediately because it does not compare
r1 to zero. This commit fixes this bug. Also, this commit fixes its
description. From Masayuki Ishikawa
- Other Architectures: Masayuki Ishikawa's change to go_os_start() was
also to all MCU-specific start-up functions that support
go_os_start(). From Gregory Nutt
* On Semi LC823450 Boards:
- LC823450-XEVK: Fix IOB params in rndis/defconfig. These parameters
work for HTTP audio streaming. From Masayuki Ishikawa
- LC823450-XGEVK: Change RNDIS MAC address assignment in rndis
configuration. In previous implementation, mac[0] was assigned to
0xaa for RNDIS host to avoid MAC address conflicts with RNDIS
device.. However, I noticed that this assignment causes a random MAC
address generation on ubuntu16.04 or later which is inconvenient to
set up network interface. This new assignment scheme fixes this
issue. From Masayuki Ishikawa
- LC823450-XGEVK: Fix overlapped memory settings in memory.ld. From
Masayuki Ishikawa
* STMicro STM32 Drivers:
- STM32: Remove redundant STM32 family definitions from chip.h header
file. It is already done in arch/arm/src/stm32/Kconfig From Mateusz
Szafoni
- STM32 ADC: There is no DMA CFG bit for the basic IPv1 ADC. From
Mateusz Szafoni
- STM32 ADC: Refactor adc_reset. It should be easier to maintain this
code if it's divided into smaller functions From Mateusz Szafoni
- STM32 F0 Clocking: Fixes the problem in GPIO port clocks. Only port
A clock was enabled although the comment states otherwise. From Juha
Paalijärvi
- STM32 F7 I2C: I2C out of bounds access on priv->msgv. Error in if
statement. It was checking for msgc > 0. If message count is 1, only
index 0 is valid on priv->msgv. Therefore random values in memory
were used to set next_norestart. From David Sidrane
- STM32 H7 I2C: Applied David Sidrane's I2C fix to the identical logic
for STM32 H7. From Gregory Nutt
- STM32 L4 I2C: Applied David Sidrane's I2C fix to the identical logic
for STM32 L4. From Gregory Nutt
* STMicro STM32 Drivers:
- STM32 ADC: Fix RCC reset logic. From Mateusz Szafoni
- STM32 ADC: Fix compilation errors for chips with one ADV TIM. From
Mateusz Szafoni
- STM32 DMA: Add missing DMA channel configuration.
- STM32 PWM: STM32 MOE is not being appropriately handled for PWM for
advanced timers. It is only ever reset and so no PWM train is
generated. This change addresses this. Noted by Dave Marples. From
Mateusz Szafoni
- STM32 PWM: Fix compilation errors if the upper-half PWM logic is not
enabled. From Mateusz Szafoni
- STM32 SPI: STM32F446 & STM32F469 correct PC1 SPI assignments From
David Sidrane
- STM32 TIM: Fix compilation error if there is no TIM8. From Mateusz
Szafoni
- STM32 F0: Fix GPIO EXTI lines assignment for STM32 M0. From Mateuz Szafoni
- STM32 F3 I2C: Remove the extra NONE event from the trace dump
output. From Ouss4
- STM32 F4 I2C: Remove the extra NONE event from the trace dump
output. From Ouss4
- STM32 F7 I2C: Use clock_t for ticks instead of uint32_t to hold system
time. From Jussi Kivilinna
- STM32 L4 I2C: Use clock_t for ticks instead of uint32_t to hold system
time. From Jussi Kivilinna
* STMicro STM32 Boards:
- STM32F429I-DISCO: Fix lvgl demo removing STM32_FB_CMAP. From Alan
Carvalho de Assis
- STM32VL Discovery: Fix SRAM and FLASH size in the linker script.
There is STM32F100RB with 8KB RAM and 128KB FLASH on the STM32VL
Discovery kit. Invalid memory size could cause a hard fault. From
Matous Pokorny
- STM32VL Discovery: Fix memory size configuration and documentation.
There is STM32F100RB instead of STM32F100RC on the STM32 VL Discovery
kit. From Matous Pokorny
- Viewtool-STM32F107: Change RNDIS MAC address assignment in rndis
configuration. In previous implementation, mac[0] was assigned to
0xaa for RNDIS host to avoid MAC address conflicts with RNDIS
device.. However, I noticed that this assignment causes a random MAC
address generation on ubuntu16.04 or later which is inconvenient to
set up network interface. This new assignment scheme fixes this
issue. From Masayuki Ishikawa
* TI Tiva:
- Tiva LM/TM4C Start-Up: Remove option CONFIG_TIVA_BOARD_CLOCKCONFIG. It is
not used and unnecessary. Fix some naming. up_clockconfig() is
inappropriate. Change tiva_clockconfig() to tiva_clock_reconfigure()
then we can change up_clockconfig() to tive_clock_configure(). From
Gregory Nutt
- Tiva LM/TM4C GPIO Interrupts: Fix tiva gpio interrupts From Lwazi Dube
- Tiva LM/TM4C: Improve GPIO interrupt support by removing unnecessary,
hard-coded per-MCU defines and using the existing Kconfig configuration
options instead. From Lwazi Dube
* TI Tiva Drivers:
- Tiva TM4C Serial: After commit
51b78034ac8d1fdf598107bf4093f0beccd5b80b, my tiva console does not
work - enter key produces garbage characters. This commit fixes the
problem for me. From Lwazi Dube
* C Library/Header Files:
- include/dsp.h: Fix missing semicolon error in dsp.h From MYAPICI
- include/nuttx/compiler.h: Correct support of C-version-specific features.
Cannot depend on GCC version because -std=c89 may be used on comomand
line. Need instead to use __STDC_VERSION__ to determine if a feature is
supported. Also add conditional support inline, depending on C99. From
Gregory Nutt
- libs/libc/stdio: fread() should always set EOF if fewer than the
requested number of bytes was not read. Per Anthony Merlino. From
Gregory Nutt
* Build System:
- sched/irq/Make.defs: Fix warning about irq_csection.o appearing
multiple times in the same rule. From Gregory Nutt
* Tools:
- tools/gencromfs.c: "gencromfs.c:1171:3: warning: ignoring return
value of 'asprintf'", declared with attribute warn_unused_result
[-Wunused-result]. From David Sidrane
- tools/gencromfs.c: Fix build on macOS. From David Sidrane
* NSH Library: apps/nshlib:
- apps/nshlib: Fixes an error in the NSH parser. There was a bug when
executing an nsh shell script which contains a redirection. When the
command in the script is executed, it sets the vtbl->np.np_redirect flag
(as it should), but then doesn't restore it, leaving it set at the end of
the script execution. Then the vtbl->np.np_redirect flag is set when the
'sh' command completes, causing a restore from un-initialized variables,
thus leading to a crash. See the code snippet below for an example test
case.
Test case:
NuttShell (NSH)
nsh> mkrd -s 1024 40
nsh> mkfatfs /dev/ram0
nsh> mount -t vfat /dev/ram0 /tmp
nsh> echo "echo 1 > /dev/null" > /tmp/test.sh
nsh> cat /tmp/test.sh
echo 1 > /dev/null
nsh> sh /tmp/test.sh
...
The nsh prompt doesn't get printed. You can type a couple of commands,
but then the system will crash because of bad pointers. From Ken Pettit
- apps/nshlib: Fix buffer overrun when redirected to a file. SAVE_SIZE
must be the same as sizeof(struct serialsave_s). From Masayuki Ishikawa
* System Utilities: apps/system:
- system/system.c: Fixes build error; There is no result variable, use
errcode instead. From Anthony Merlino
- apps/system/vi: Bug fixes:
1. Deletion of last line in file using 'dd' caused infinite loop
searching for 'nextline'. Fixed.
2. Insertion of line above 1st line using 'O' caused line to be
inserted on 2nd line. Fixed.
3. Paste buffer from 'dd' was being free'd after the 'p'aste operation,
preventing multiple paste opportunity. Fixed.
4. The cursor was not being bound to the line end and was allowed to
'hover' over the '\n' EOL character. This caused weird (relative to
standard vi) insertion locations and cursor movement with 'a'ppend
and 'i'nsert. Fixed.
5. The 'vi_shrinkpos' position didn't take the end of file pointer into
account when calculating 'curpos', 'prevpos' variables causing
weirdness when deleting things near the end of the file. Fixed.
6. The 'yy'ank command was improperly deleting the text from the
document instead of simply yanking to the paste buffer. Fixed.
7. The 'dd'elete line function was not copying the deleted line to the
paste buffer as part of the delete operation. Fixed.
8. The bottom line of the screen was sometimes being used for document
text and other times for command / find entry. Fixed by reserving
the bottom the bottom line for status / command only.
9. When scrolling up / down through a file, the cursor position was not
preserved and moved further and further to the left column based on
the line lengths of the lines visited. Fixed.
10. The display was being COMPLETELY redrawn with each keystroke,
causing the responsiveness to be unbearable. Fixed. Added logic to
dynamicall indicated which portions of the screen need to be updated
(full display, current line to end of screen, current line only,
none).
11. The individual display line updates were being performed a character
at a time by calling the vi_putch() function, causing slow
performance, especially in telnet or USBCDC sessions where there is
a lot of overhead per packet. Fixed by calling vi_write() instead
with a block of characters with breaks as needed for TAB exansion.
12. The forward delete 'x' operation allowed deletion through '\n'
characters causing lines to be joined. This is different from
standard vi where 'x' at the end of a line performs a delete
backward operation. Fixed.
13. When in 'ex' or find sub-modes (':' or '/' bottom line modes),
hitting backspace with empty text did not return the operation to
command mode like it does in standard vi. Fixed.
14. Performing a 'find' opertation would only search from the current
cursor position to the end of the file and did not wrap like in
standard vi. Fixed.
15. Loading a file that was larger than the initial text allocation
would force a call to 'vi_extendtext', marking the file as modified
when in fact it hadn't even been loaded yet. Fixed.
16. Combined vi_insert_mode and vi_replace_mode into a single function
to save code space since they are nearly identical routines.
17. In command mode, backspace was deleting characters which is
different from standard vi. Backspace in command mode normally
simply moves the cursor left / to the previous line. Fixed.
18. Added code to handle boundary conditions when the file is new and
commands are applied to an empty file.
19. Fixed vi_shrinktext so it doesn't allocate a zero-length buffer when
the last character in the file is deleted.
20. The 'x' command was not copying to the paste buffer. Fixed.
21. Fixed parsecolon routine to properly deal with ":wq" command sequence.
From Ken Pettit
* Wireless Utilities: apps/wireless:
- apps/wireless/bluetooth/btsak: 'bt bnep0 info' outputs a reversed addr. It
should print BDAddr: aa:bb:cc:dd:ee:ff instead of BDAddr:
ff:ee:dd:cc:bb:aa. From Lwazi
- apps/wireless/bluetooth/btsak: Fix some errors in btsak. From Lwazi Dube
- apps/wireless/bluetooth/btsak/btsak_main.c: Fix address parsing. From
Lwazi Dube
- apps/wireless/bluetooth/btsak: Remove unnecessary gatt get commands. From
Lwazi Dube
- apps/wireless/bluetooth/btsak/btsak_scan.c: Fix reversed address. From
Lwazi Dube
- apps/wireless/ieee802154/i8sak: Fixes issues related to re-running
daemon. Releases lock when releasing daemon. Re-sets daemon_shutdown so
that a subsequent daemon launch does not immediately return. From Anthony
Merlino