Last week, the Zephyr Project introduced the first long term support (LTS) release of Zephyr OS, Zephyr 1.14.0 LTS. This release marks an important technical milestone for the community and is intended to be a more stable, certifiable option for product makers and developers. You can download Zephyr 1.14.0 LTS, see the complete release notes here and check out the announcement here.
- 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.
- Enhancement of the native POSIX port by adding UART, USB, and display drivers. Based on this port, we added a simulated NRF52832 SoC which enables running full system, multi-node simulations, without the need of real hardware.
- Applied MISRA-C code guideline on the kernel and core components of Zephyr. MISRA-C is a well established code guideline focused on embedded systems and aims to improve code safety, security and portability.
- Addition of an experimental BLE split software Controller with Upper Link Layer and Lower Link Layer for supporting multiple BLE radio hardware architectures.
- Introduction of the west tool for management of multiple repositories and enhanced support for flashing and debugging.
- 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.
- Added support for application user mode, application memory partitions, and hardware stack protection in ARMv8m
Improvements and Subsystem Overhauls
- 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).
- Overhaul of the Network packet net-pkt API and moved the majority of components and protocols to use the BSD socket API, including MQTT, CoAP, LWM2M, and SNTP.
- The power management subsystem has been overhauled to support device idle power management and move most of the power management logic from the application back to the BSP.
- Introduction of major updates and an overhaul to both the logging and shell subsystems, supporting multiple back-ends, integration of logging into the shell, and delayed log processing.
This release would not have been possible without the hard work and skill of the 250 developers who contributed code over the last 6 months. We would also like to thank the countless project management, documentation, marketing, administrative and leadership team members from Zephyr Project member companies who contributed to this joint initiative. Finally, we owe a debt of gratitude to the family, friends and support networks of everyone who participated in the creation and release of Zephyr 1.14.0 LTS.
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.
This is an exciting time to get involved with the Zephyr Project. We invite you to try out Zephyr 1.14.0 LTS. You can find our Getting Started Guide here. If you are interested in contributing to the Zephyr Project please see our Contributor Guide. Join the conversation or ask questions on our Slack channel or Mailing List.