By Nick Flaherty www.flaherty.co.uk
The Zephyr project now supports over 160 different board configuration spanning 8 architectures. All architectures are rigorously tested and validated using one of the many simulation platforms supported by the project: QEMU, Renode, ARC Simulator, and the native POSIX configuration.
It adds UART, USB, and display drivers to the native POSIX port, and based on this port, the developers added a simulated NRF52832 SoC which enables running full system, multi-node simulations, without the need of real hardware.
MISRA-C code guidelines were used on the kernel and core components of Zephyr to improve code safety, security and portability, and an experimental BLE split software Controller with Upper Link Layer and Lower Link Layers has been added for supporting multiple BLE radio hardware architectures.
Zephyr now has support for the x86_64 architecture. It is currently implemented only for QEMU targets, supports arbitrary numbers of CPUs, and runs in SMP mode by default, our first platform to do so. There is also added support for application user mode, application memory partitions, and hardware stack protection in ARMv8m.
An overhaul of the network packet net-pkt API means the majority of components and protocols now use the BSD socket API for IoT applications via MQTT, CoAP, LWM2M, and SNTP.
The power management subsystem has also been overhauled to support device idle power management and move most of the power management logic from the application back to the BSP.
The timing subsystem has been reworked and reimplemented, greatly simplifying the resulting drivers, removing thousands of lines of code, and reducing a typical kernel build size by hundreds of bytes. TICKLESS_KERNEL mode is now the default on all architectures.
The Symmetric Multi-Processing (SMP) subsystem continues to evolve with the addition of a new CPU affinity API that can “pin” threads to specific cores or sets of cores. The core kernel no longer uses the global irq_lock on SMP systems, and exclusively uses the spinlock API (which on uniprocessor systems reduces to the same code).
While this release marks the culmination of one of the largest and most ambitious efforts undertaken by the Zephyr Project to date, it is just the beginning. Work has already begun on a number of major initiatives including obtaining functional safety certification of the core OS.
Download Zephyr 1.14.0 LTS