October XX, 2018 (Final)
October 23, 2018 (Planned)
Those can now be found in Apache Nimble repository. Transient dummies in core repository are provided for backward compatibility with existing targets.
Two new APIs were added to the log subsystem. They can be enabled by setting sysconfig variables LOG_STORAGE_INFO and LOG_STORAGE_WATERMARK, respectively, to 1.
set_watermark which allows setting the watermark on log (by index). This information is used to calculate the size of entries logged after the watermark, thus allowing the marking of last read item and unread items .
The watermark for each log is persisted in config and restored on reboot.
The option to keep statistics for the number of log entries written, logs filtered out because of log level settings, log entries dropped due to log collection not fetching (clearing) them on time, and errors while writing has been added. The sysconfig setting to enable this option is LOG_STATS.
Support has been added for encrypted flash (e.g. external SPI flash). The implementation allows you to encrypt by partitions. The hal_flash API exposes encrypt/decrypt operations on a pseudo flash device which is split into a common part and architecture-specific part. The first architecture-specific part supported is the Nordic nRFf51 and nRF52 platforms. Such a split allows the developer to leverage cryptographic hardware acceleration, if available in the platforms.
A common set of error codes for the I2C HAL and a new hw/util/i2cn
library (as in I2C-n logic for n retries) has been added. The dev-list discussion can be found here: https://lists.apache.org/thread.html/bd2b854cbf7d6e0811fff33177c85fa1435dff7f1fb3c8baab6061e0@%3Cdev.mynewt.apache.org%3E
The API enables the use of config_fcb engine as a generic key-value storage without the need to use config module. It makes it possible to read and write any key at any time and they are immediately persisted and loaded directly from FCB so there is no need to store them in RAM.
"Sensor error listeners" can be registered with a sensor. When a read from a sensor fails, all error listeners that match the read attempt are notified of the error.
Mbed TLS 2.13.0 introduces several new features improving DTLS support over low-bandwidth, high latency networks with high packet loss. It also has a security fix and other features.
https://tls.mbed.org/tech-updates/releases/mbedtls-2.13.0-2.7.6-and-2.1.15-released
SEGGER real-time transfer (RTT) which allows real-time communication on targets that support debugger memory accesses while the CPU is running has been updated:
An interface lock has been added for the sensor_itf
, led_itf
. It can be used for the interface structure for any driver e.g. the battery. If a BSP shares an interface particularly I2C, it can initialize and set a mutex for shared interface access.
The hw/mcu/nordic/nrf52xxx
package was refactored to cleanup the peripherals code in BSPs. Changes include:
hw/mcu
packagehw/mcu
package (to be used by hw/bsp
packages)Travis Continuous Integration (CI) can now be used to build and test Apache Mynewt on both Linux and OSX systems. The following can be performed:
newt test all -e net/oic/test,net/ip/mn_socket/test
newt build all
on simple targets prepared for all apps in mynewt-core
and mynewt-nimble
repositories. Most of these targets use nrf52840pdk BSPs and a few use other BSPs. The bletest
app is excluded as it is very outdated.
A HAL watchdog monitor has been added which tries to dump system state before HAL watchdog fires. A check has been added to check that the watchdog timeout is at least 4 seconds when this monitor is enabled.
The relevant syscfgs are OS_IDLE_TICKLESS_MS_MIN and OS_IDLE_TICKLESS_MS_MAX (in milliseconds).
A generic task-allocation mechanism has been added to the test/runtest
library. When a unit test needs a new task, it requests one from runtest. When a test completes, runtest suspends all the allocated tasks. The number of generic tasks are no longer limited to four and adding new unit tests is simpler.
SysView can now be used to trace/profile any user-defined events. Event identifier is any number selected by user - SysView client will match start/stop traces for each identifier and display execution time as well as run count.
Console handles queue of available line events and triggers flow control on UART automatically.
A transient package is an empty package that simply links to another package. It enables easier, backwards-compatible upgrade path when moving or renaming packages. It is defined by a simple pkg.yml file:
pkg.name: old-package pkg.type: transient pkg.link: @repo/target-package |
It is now possible to have two debug sessions open from the same machine. "newt debug" can now have a session with JLink as well as openocd simultaneously open. One example of its use is for debugging a BLE session between a central and a peripheral.
newt debug slinky_nrf52 --extrajtagcmd "-port 5431 -select usb=682148664" |
Newt now warns/returns an error if you use any repository that is incompatible with the current newt version.
>newt info Error: This version of newt (1.3.0) is incompatible with your version of the apache-mynewt-core repo (1.4.1); Please upgrade your newt tool to version 1.4.0 |
It will also warn/return error when you try to install/upgrade a repository to a version that is not compatible with current newt.
create-image
command to allow generation of encrypted images. RSA-OAEP encryption scheme is used to encrypt the AES-128 encryption key.-e <rsa-pub-key.pem>
B-L072Z-LRWAN1 BSP
Fanstel EV-BT840E
Nucleo-L476RG BSP