CEC Semester Twenty Three 2023
Embedded Software using RUST
Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
CEC Archives | CEC Semester Twenty Three 2023 | Embedded Software using RUST
February 27,
2023
Introduction to Rust for Embedded Systems
Selecting the right embedded software language is no longer as simple as just choosing C or C++. Rust, a memory-safe programming language offers an interesting use case to help businesses develop reusable, scalable, and higher quality software. In the session, we are going to explore Rust, its capabilities, and how it fits into embedded software development.
Course Resources
Special Educational Materials
How to Use Alternative Programming Languages In Eclipse – maker.io Blog
Fully Equipped Development Kits Simplify STEAM Education and Prototyping for Pros and Makers Alike – Blog
February 28,
2023
“Hello Rust!”, using QEMU
Before writing an application for hardware, it’s helpful to learn a language and the process using emulation. In this session, we will explore how to create a project, leverage Rusts cargo tools, and write a Rust application for the Arm Cortex®-M processor. Attendees will walk away understanding how to run an emulated Rust application and debug it using GDB.
Course Resources
Special Educational Materials
How to Use Alternative Programming Languages In Eclipse – maker.io Blog
Fully Equipped Development Kits Simplify STEAM Education and Prototyping for Pros and Makers Alike – Blog
March 1,
2023
“Hello Rust!”, using the STM32F3
With the understanding learned from using QEMU, we are now ready to deploy an application to hardware. In this session, we will deploy our first application to the STM32F3 Discovery board and debug it. In addition, we will learn about memory mapping registers using the microarchitecture, peripheral access (PAC), and HAL crates. Attendees will walk away understanding the fundamentals of memory-mapping registers.
Course Resources
Special Educational Materials
How to Use Alternative Programming Languages In Eclipse – maker.io Blog
Fully Equipped Development Kits Simplify STEAM Education and Prototyping for Pros and Makers Alike – Blog
March 2,
2023
Interfacing to Peripherals in Rust
A common activity in many embedded applications is to interface with the microcontroller’s peripherals. In this session, we will examine the differences between interfacing with an mcu’s registers in C and Rust. Attendees will learn about important Rust keywords, wrappers, exceptions, and more.
Course Resources
Special Educational Materials
How to Use Alternative Programming Languages In Eclipse – maker.io Blog
Fully Equipped Development Kits Simplify STEAM Education and Prototyping for Pros and Makers Alike – Blog
March 3,
2023
Becoming a Rust Expert
Rust is a complex language, one that will take time and effort to master, especially for embedded systems. In this session, we will explore some concepts in portability and concurrency, before discussing resources to help attendees master Rust.
Course Resources
Special Educational Materials
How to Use Alternative Programming Languages In Eclipse – maker.io Blog
Fully Equipped Development Kits Simplify STEAM Education and Prototyping for Pros and Makers Alike – Blog
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.