Skip to content
CEC Semester Twenty Six 2024

Writing Microcontroller Drivers in Rust

Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
October 21,
2024
Introduction to Rust
This session will explore why Rust makes sense for embedded systems. We’ll explore where C, C++, and Rust each fit. Attendees will then learn what features of Rust make it an ideal candidate for embedded systems development. We will discuss the Rust toolchain and prepare attendees to write their own Rust code.
Course Resources
Special Educational Materials
The Top 3 C++ Editors for Raspberry Pi – maker.io
GPIO C++ Library Tips For The Raspberry PI – maker.io
Intro to Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debug with Picoprobe - DigiKey – Video
October 22,
2024
The Peripheral Access Crate
This session will explore using the svd2rust tool to generate a Peripheral Access Crate (PAC) for any Arm Cortex-M microcontroller. Attendees will learn how to use the tool and configure their own driver library for use in Rust.
Course Resources
Special Educational Materials
The Top 3 C++ Editors for Raspberry Pi – maker.io
GPIO C++ Library Tips For The Raspberry PI – maker.io
Intro to Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debug with Picoprobe - DigiKey – Video
October 23,
2024
PAC Deep Dive
This session will examine the PACs at a deeper level, examining the techniques used to create them. Attendees will learn about Rust techniques that they can use to improve their own code or write their own custom drivers.
Course Resources
Special Educational Materials
The Top 3 C++ Editors for Raspberry Pi – maker.io
GPIO C++ Library Tips For The Raspberry PI – maker.io
Intro to Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debug with Picoprobe - DigiKey – Video
October 24,
2024
Writing a Rust Application
This session will guide developers through creating a Rust application using the Cortex-M QuickStart template. Attendees will learn how to import their PAC and configure an embedded target.
Course Resources
Special Educational Materials
The Top 3 C++ Editors for Raspberry Pi – maker.io
GPIO C++ Library Tips For The Raspberry PI – maker.io
Intro to Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debug with Picoprobe - DigiKey – Video
October 25,
2024
Writing Hello World
This session will teach attendees how to write a “Hello Blinky” and “Hello World!” application. Attendees will use the PAC they created to blink an LED and print “Hello World!” to the terminal.
Course Resources
Special Educational Materials
The Top 3 C++ Editors for Raspberry Pi – maker.io
GPIO C++ Library Tips For The Raspberry PI – maker.io
Intro to Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debug with Picoprobe - DigiKey – Video
Instructor
Jacob Beningo
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software

Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 300 articles on embedded software development techniques, has published several books, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan.