Today, the Zephyr Project is happy to announce a new release of the Zephyr Open Source RTOS for embedded devices, version 1.11.
The breakneck pace of development has not stopped, and this new release introduces multiple features and enhancements that take Zephyr closer to its goal: to be the RTOS of choice in the embedded industry for companies and makers alike.
Among the headline features in this release, we are proud to introduce a native Microsoft Windows development environment. While many Zephyr users develop on UNIX-like platforms like GNU/Linux and macOS, we are fully aware that a lot of embedded developers rely on and trust Microsoft Windows as their operating system of choice. As a result, we have been building up support for it over the last few releases leading to this present one, which is the first to be completely buildable on Microsoft’s popular platform. Instead of relying on emulation layers to ensure maximum performance and seamless interaction with other native development tools, we rely on the power of the CMake build system and the Python scripting language to deliver a build system that is scalable, future-proof and completely cross-platform.
Additionally, this release introduces a new connectivity technology originally designed by Google and Nest, the Thread protocol. This has been a longstanding requested feature, and we have integrated the popular OpenThread implementation into Zephyr, allowing users to seamlessly interact with Thread networks using the already familiar Zephyr networking APIs and reusing the existing 802.15.4 drivers available.
A few high-profile features have percolated from “big”, full-blown operating systems into Zephyr in this version: Symmetric Multi Processing (also known as SMP) is now available for the Tensilica Xtensa architecture, allowing the kernel to run on more than one CPU core concurrently. In the same line, the already existing support for thread-level memory protection, previously available only on the x86 architecture, now can be enabled on the Arm and ARC architectures.
Additionally, IEEE POSIX support for the PS352 (Realtime Controller Product Standard) profile is nearing completion, with the majority of the APIs now covered. Zephyr does not intend to overlap in features and functionality with GNU/Linux, but these additions help transition existing codebases to embedded microcontrollers.
Sometimes developers do not want to go through the “modify, build, program” cycle in order to iterate quicker on a new piece of code that they might be working on. The new “native POSIX” board allows Zephyr to be compiled as a native Linux application, and debug it using the vast array of tools available to Linux application developers. This not only helps when coding and debugging new features, but it can also be used to profile and examine in detail execution paths and memory usage. It essentially turns embedded software development into desktop application development, and is a nice complement to our already existing QEMU emulation support.
Finally, one of the most requested features has made its way into the project: over-the-air device firmware upgrades (OTA DFU) using Bluetooth Low Energy. The integration of a new framework to support this (MCUmgr) alongside the familiar MCUboot bootloader allows Zephyr images to be sent and programmed over a BLE connection, as well as adding a management layer that is able to access the filesystem and retrieve kernel statistics remotely.
We invite you to download Zephyr 1.11 today and try out all the exciting new features along with many others (initial Armv8-M support, a new lightweight storage layer, additional boards supported) that would be too long to list here. Your feedback is extremely welcome in our path to make Zephyr better than ever.
Download the Zephyr 1.11 here: https://github.com/zephyrproject-rtos/zephyr/releases
A sincere thank you to all those in the community who contributed. This release would not have been possible without your contributions!
Additional Zephyr resources:
- How to contribute: https://www.zephyrproject.org/developers/how-to-contribute/
- Supported Boards: http://docs.zephyrproject.org/boards/boards.html
- Code: https://github.com/zephyrproject-rtos/zephyr
- Website: https://www.zephyrproject.org/