Skip to main content
BlogIndustry ConferenceZephyr Developer Summit

Pushing the Boundaries: Zephyr’s Role in Revolutionizing MCUs

By July 16, 2024No Comments
Zephyr developer summit 2024, North America

The Embedded Open Source Summit took place from April 16-18 in Seattle, Washington, alongside the Open Source Summit North America. The Zephyr Developer Summit was part of the EOSS, aimed at developers using or considering Zephyr in embedded products. This year, we concentrated on supporting topics relevant to Zephyr users, upstream contributors, and maintainers.

More than 860 individuals from 721 organizations across 46 countries registered for the EOSS conference. The Zephyr track featured over 50 technical sessions, both in-person and on-demand, focusing on users, upstream developers, and maintainers.

Videos from the Zephyr Developer Summit are available on the Zephyr Project YouTube channel. We will highlight a few videos each week in a blog for easy access.

Zephyr developer summit 2024, North America

Today we are featuring:

Warp Pipe: Library for Simulation-Driven Development of PCIe Devices Based on Zephyr – Karol Gugala, Antmicro & Chris Friedt, Tenstorrent

Warp Pipe is an open source library co-developed by Antmicro and Meta Platforms for the simulation-driven development of PCIe devices integrated with Zephyr. It facilitates the construction of complex PCIe networks, allowing for the simulation of both Linux and Zephyr nodes across various architectures, including ARM and RISC-V, with tools like Qemu and Renode. The library is essential for test-driven development, providing mechanisms for packetizing and depacketizing PCIe transactions and supporting advanced traffic monitoring and analysis with tools such as Wireshark.

The session, led by Karol Gugala of Antmicro and Chris Friedt from Tenstorrent, shares insights into the motivations for developing Warp Pipe, emphasizing the necessity for offloading accelerators and fast interconnects like PCIe in modern computing environments. They explore the challenges of software development for hardware that is still under design, highlighting the benefits of simulation to test and develop software concurrently with hardware.

Warp Pipe enhances the testing and development process by supporting dynamic, simulated environments that mix different processor architectures and operating systems, reflecting the library’s versatility and wide applicability in designing and testing PCIe devices. This library not only speeds up the development process but also increases the accuracy and efficiency of simulations, making it a pivotal tool in the development of Zephyr-powered PCIe devices.

Extending Zephyr Based Applications at Runtime with LLEXT – Tom Burdick, Intel

In his talk, Tom Burdick from Intel presented on LLEXT, a subsystem in Zephyr that facilitates the dynamic extension of Zephyr-based firmware by loading and linking ELF files at runtime. This capability supports modular application development, enabling the incorporation of plugin-like functionality.

Tom provided a comprehensive walkthrough of how ELF loading works within Zephyr, explaining the handling of headers, sections, and relocations. He covered the importance of memory management, detailing how LLEXT manages executable and read-write memory. The presentation also shared insights into symbolic linking, discussing the need to map names to addresses dynamically.

Potential use cases for LLEXT include creating plugins for audio, video, or sensor processing pipelines, isolated and updatable processes, multi-tenant firmware, and dynamically loadable drivers. Tom noted current limitations such as the absence of built-in signing mechanisms, debugging complexities, and the need for Application Binary Interface (ABI) stability.

Emphasizing the collaborative nature of LLEXT’s development, he credited contributions from various developers and invited further enhancements. He also addressed questions on architecture support, build processes, memory configuration, and comparisons to other extension models like WebAssembly and CHRE (Context Hub Runtime Environment).

Overall, the talk highlighted LLEXT’s potential to significantly enhance the flexibility and extensibility of Zephyr-based applications, paving the way for more dynamic and modular firmware development.

Extending Cloud Native Beyond the “Linux Barrier” to MCUs – Jason Shepherd & Stephen Berard, Atym

At the Zephyr Developer Summit, Jason Shepherd and Stephen Berard introduced Project Ocre, an initiative under the Linux Foundation designed to extend cloud-native development to microcontroller-based edge devices. With initial code contributions from Atym, Ocre leverages Zephyr and WebAssembly to bring containerization and cloud-native principles to highly-constrained devices that lack the resources to run conventional cloud technologies like Linux, Docker, and Kubernetes.

Jason and Stephen began by highlighting the challenges of traditional embedded development, such as long development cycles, difficulty in managing diverse skill sets, and security issues. They emphasized the growing need for modern development approaches as edge devices become more capable and interconnected.

The core of the presentation focused on the Ocre architecture, which integrates Zephyr for its extensive board support and driver infrastructure, and WebAssembly for its lightweight, secure virtualization capabilities. This combination allows Ocre to support cloud-native development on devices with as little as 256 KB of memory. The speakers demonstrated Ocre’s ability to run containers in languages like C, Go, and Rust, and discussed how its container runtime mimics cloud environments with features such as storage, networking, and security managed through a thin shim.

They also showcased various use cases, including modular application development, dynamic updates without reboots, and improved security through container isolation and image validation. The session included live demonstrations, showing Ocre’s capabilities in handling real-time sensor data and running multi-container applications.

In addressing performance concerns, Stephen noted that while interpreted WebAssembly code runs slower than native code, ahead-of-time compilation can bring performance close to native levels. He also highlighted ongoing efforts to enhance memory management and security, aiming to make Ocre a robust solution for modern embedded development.

The talk concluded with an invitation for community involvement in the open source project, aiming for a code release in the near future and collaboration through the Linux Foundation and WebAssembly system interface groups. Jason and Stephen expressed their vision of making embedded development more accessible and aligned with cloud-native practices, opening up new possibilities for developers in the embedded space.

Overview of I3C – Ryan McClelland, Meta Reality Labs

Ryan McClelland from Meta Reality Labs delivered a comprehensive presentation on the MIPI I3C Basic v1.1.1 Specification at the Zephyr Developer Summit. His goal was to simplify the understanding of I3C for attendees, emphasizing its superiority and enhancements over I2C and SPI.

Ryan began by introducing I3C’s new terminologies and highlighting key differences such as higher bus speeds (up to 12 MHz standard and 33 MHz in certain modes), built-in pull-up resistors, dynamic address assignment, and in-band interrupts. He explained I3C’s compatibility with I2C devices and the backward compatibility features that allow I2C devices to function on an I3C bus.

The talk looked into the specifics of I3C within Zephyr, including current support and API helpers, device tree macros, and address assignment processes. Ryan also covered advanced I3C features like common command codes, provisional IDs, in-band interrupts, and the transition from I2C’s ACK/NACK to I3C’s T-bit.

In discussing future enhancements, he mentioned the potential for I3C Timing Modes, High Data Rates, and improved shell support within Zephyr. He highlighted ongoing developments such as controller handoff and the implementation of high data rate modes, as well as the emerging USB-I3C device class.

Zephyr Extensions: How to Dynamically Load an Application – Cedric Lescop, Schneider Electric

Cedric Lescop of Schneider Electric gave an insightful talk about a novel approach to dynamically loading applications in Zephyr using the LL EXT feature. This method enables applications or extensions to be loaded from the filesystem, thus avoiding the need for complete firmware reflashes during updates. Cedric emphasized the practical benefits of this approach, such as reduced time to market and lower verification efforts, making firmware updates more efficient and flexible.

He provided an overview of Schneider Electric’s internal needs that led to this innovation, including the demand for flexibility in industrial applications where monolithic firmware updates are cumbersome. The talk covered the state-of-the-art solutions explored by Schneider Electric, their limitations, and how LL EXT met their requirements.

Cedric detailed the technical enhancements made to the LL EXT feature, such as adding ARM instruction support, symbol export mechanisms, and a new backend for filesystem-based loading. He showcased a proof-of-concept demonstration where a CAN stack and a simple counter application were dynamically loaded onto an STM32 board, highlighting the practical implementation of this feature.

He also discussed the performance implications and cybersecurity concerns associated with dynamically loading extensions, proposing questions to the community about securing dynamically loaded code. Additionally, he shared insights into Schneider Electric’s internal process of contributing these enhancements back to the Zephyr community, emphasizing the importance of collaboration and open source contributions even for large industrial companies.

 

Watch the rest of the Zephyr Developer Summit videos here. The schedule and links to the PPT presentations can be found here. Photos from the EOSS can be found here.

For more information about the 2024 event, stay tuned by subscribing to the Zephyr quarterly newsletter or connect with us on @ZephyrIoT, Zephyr Project LinkedIn or the Zephyr Discord Channel to talk with community and TSC members.