Written by Maureen Helm, Zephyr Project Chair of the Technical Steering Committee and Software Architect at NXP
On behalf of the Zephyr Project, I am pleased to announce the release of Zephyr OS 2.4.0! This release brings major enhancements in the kernel, Bluetooth and networking subsystems, and the CMake build infrastructure. It also brings a significant reduction in technical debt and begins to set the stage our second LTS release next spring.
The kernel added initial support for virtual memory management, device memory-mapped I/O APIs, and reduced memory requirements for kernel thread stacks when user mode is enabled. Hardware stack protection was enabled by default on select boards to make it easier to detect stack overflows, which would otherwise fail in sometimes unobvious ways.
The networking subsystem switched over to the TCP2 implementation as the default, allowing for better network protocol testing than the previous TCP implementation. The Bluetooth subsystem introduced host-level support for periodic advertisement and isochronous channels, laying the groundwork for Bluetooth LE audio support in a future release.
The CMake build infrastructure underwent a major overhaul to abstract away differences between various toolchains and make it possible to add support for more diverse toolchains, including commercial toolchains like IAR and Arm Compiler. Existing support for GCC was migrated to the new abstraction and new support for the ARC MetaWare toolchain was introduced.
In preparation for next year’s LTS2, we fixed a large backlog of low priority bugs and updated our release quality criteria to ensure a new backlog doesn’t reappear. Early on in the release cycle these more aggressive criteria seemed difficult to achieve, but the community maintained relentless focus to reduce technical debt and accomplish this important milestone. Also for LTS2, we settled on a set of MISRA-based coding guidelines and a plan to implement them for safety certification.
Thank you to everyone that contributed features, documentation, testing, infrastructure, and bug fixes to this release! And a warm welcome to the new contributors and community members that have recently joined the Zephyr Project!
If you are interesting in joining the project, 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 Mailing List.