Zephyr Kernel 1.5.0

The Zephyr Engineering team is glad to announce the release of Zephyr Kernel 1.5.0. This is the first release to follow the 3-month release cadence. This release includes numerous fixes and support for major features. Additional changes include support for new drivers, sensors, and boards.

Major enhancements included with the release:

  • TCP Support

  • Integration of the Paho MQTT Library support with QoS

  • Flash Filesystem Support

  • Integration of the mbedTLS library for encryption

  • Improved BR/EDR support (for L2CAP, in particular).

  • Support for the Altera Nios II/f soft CPU architecture

A detailed list of changes since v1.4.0 by component follows:

Kernel

  • Added nano_fifo_put_list() APIs, which allows queuing a list of elements on a nanokernel FIFO.

  • Removed unused memory pool structure field.

  • Enhanced memory pool code.

Architectures

  • ARM: Updated to include floating point registers.

  • Altera Nios II/f soft CPU architecture support
    • Internal Interrupt Controller

    • Avalon Timer

    • Avalon JTAG UART (polling mode) as default for qemu-system-nios2, and 16550 UART as default for Altera MAX10.

Boards

  • Added Nios II QEMU board.

  • Added configuration for Altera MAX10 FPGA.

Drivers and Sensors

  • Sensors: Added driver for I2C HMC5883L magnetometer.

  • Sensors: Added driver for I2C TMP112 temperature sensor.

  • Sensors: Added driver for MAX44009 light sensor.

  • Sensors: Added driver for LPS25HB.

  • HAL: Updated QMSI drivers to 1.1

  • Added DMA QMSI shim driver.

  • Added Quark SE USB device controller driver.

  • Added suspend/resume to QMSI drivers.

  • Added Guard for critical sections of the QMSI drivers.

  • Added Zephyr File System API.

  • Added driver for ENC28J60 Ethernet SPI module.

Networking

  • TCP Support

  • Connection handling fixes in IP stack.

  • Allow sending zero length user data IP packet.

Network Buffers

  • New net_buf_simple API for light-weight on-stack (or static) buffers where a net_buf (and its associated pool) is overkill. The net_buf API now uses as an internal implementation detail net_buf_simple.

  • Add support for network buffer fragmentation.

  • Add more net_buf big endian helpers.

Bluetooth

  • Multiple fixes & improvements to the nble driver.

  • New API for dealing with Out of Band data (like the local address).

  • Various smaller fixes & improvements in many places.

Build and Infrastructure

  • Added “qemugdb” target to start a local GDB on port 1234.

  • Added script to filter known issues in the build output.

  • Sanity: Added “-R” option to build all test with assertions.

Libraries

  • File system: Imported Open Source FAT FS 0.12a code.

  • Encryption: Imported mbedTLS library.

  • Encryption: Updated TinyCrypt library to 2.0.

Documentation

  • Fixed all the documentations warnings during build.

  • Fixed several typos, trademarks and grammar.

  • Moved all the boards documentation to the wiki.

  • Moved Code Contribution documentation to the wiki.

  • Added package “ncurses” to the list of requirements.

  • Updated macOS instructions.

Test and Samples

  • Samples: Replaced old debug macro to use new SYS_LOG macro.

  • Added TMP112 sensor application.

  • Added Quark SE power management sample application.

  • Added DMA memory to memory transfer sample.

  • Added sample for MAX44009 light sensor.

  • Added MQTT publisher and subscriber samples.

  • Added mbedTLS sample client.