Exploring Rust for Embedded Systems with Philip Markgraf

The Pragmatic Embedded Podcast · 30 Oct 2024 · 50m

What this episode covers

Philip Markgraf, an experienced software developer and technical leader, discusses his recent experience building an embedded device for Kelvin, a green energy company, using the Rust programming language. He contrasts Rust's memory safety, sophisticated type system, and excellent tooling with the complexities and legacy constraints of C and C++. Markgraf highlights how Rust's borrow checker and standardized libraries simplify development, improve reliability, and attract motivated engineers, while noting that adoption is still in the early stages for embedded systems compared to cloud computing.

Mentioned

Companies
Kelvin, STMicroelectronics, Nordic
Chips
ARM
Tools
Clippy, Rust Analyzer
Also
Rust, C, C++, Ada, Erlang, Embassy, Ferrocene

Other shows on the same ground, closest first.

  • Oxide and Friends · 2h 03m

    The Pragmatism of Hubris

    Cliff Biffle, principal engineer at Oxide Computer Company, explains the origins of Hubris, an embedded operating system designed for Oxide's rack-scale computers, drawing on his prior experience with Project Loon at Google. The team evaluated existing options like Tock and QNX but chose to build Hubris in Rust to ensure memory safety and value alignment, leveraging a software-hardware co-design approach to bypass the risks of secure FPGAs. Key technical decisions include using a minimal kernel, self-describing build archives, and advanced debugging tools like Humility to manage complex embedded systems without dynamic loading or self-hosting constraints.

  • Embedded.fm · 1h 10m

    248: I'm Not in Charge!

    Hosts Christopher White and Elecia White answer listener emails covering career transitions, tool selection, and embedded systems design. They discuss the value of generalist software experience for embedded roles, the importance of using established C++ safety standards like those from NASA and the F-35, and the practical benefits of tools like Beyond Compare and the Teensy Audio Library. The conversation also addresses the STEM vs. STEAM debate, the choice between bare-metal and RTOS for power efficiency, and the use of Tracery for generative art bots.

  • Embedded.fm · 56m

    256: Agglomeration

    Chris White and Elecia White discuss the ST Micro F1 series, comparing the use of HAL, Cube, and bare metal programming for embedded systems. They review the Hippocratic Oath for Connected Medical Devices from IAmTheCalvary.org and Make Magazine's tips for securing DIY IoT projects. The hosts also explore the Rockstar Programming Language specification, C++ expressiveness, and Elecia's recent work with Python and JSON.

  • Embedded.fm · 59m

    127: Chicken Equals Duck Plus One

    Hosts Elecia White and Christopher White discuss the future of programming languages in embedded systems, arguing that C's dominance is due to compiler optimization capabilities and industry inertia rather than technical superiority. They explore specific C features like the ISO 646.h header, review listener emails regarding career advice and tooling frustrations with OpenOCD, and examine hardware examples like the VoCore Linux board and the ESP8266 Wi-Fi chip.

  • Oxide and Friends · 1h 44m

    Across the Chasm with Rust

    Steve Klabnik and Luqman Aden, engineers at Oxide Computer Company, discuss the evolution of the Rust programming language, focusing on the stabilization of features like `let_chains` and `async/await` as the catalyst for crossing the chasm from early adopters to mainstream systems programming. They analyze how Rust's strict stability guarantees, enforced by tools like Crater, contrast with the burnout risks seen in other language communities, while highlighting specific language features such as inline assembly, const generics, and captured identifiers in format strings that improve developer experience. The conversation also covers the psychological shift required to trust the compiler, the importance of tooling like Rust Analyzer and Clippy, and the community's approach to managing experimental features via nightly builds and RFCs.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by The Pragmatic Embedded Podcast. The episode itself belongs to its publisher.