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 Mac OS X 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.