Rust Embedded

}
3 Days

Available On-Site

Available Virtually

Contact Us for Open Enrollment
f

Customizable

Rust Embedded is a course designed to help Rust developers get up and running with embedded development. Rust is often associated with safety, but in the embedded world, sometimes those safety mechanisms are in conflict with typical embedded system development. The embedded world has its own tooling and concerns. This course covers tools and techniques for developing embedded software in Rust. The approach is driven by best practices and the preservation of Rust’s many safety-oriented mechanisms. Upon completion, engineers will be ready to build high quality embedded software in Rust with support for improved safety over traditional languages.

Day one moves from environment setup and no_std fundamentals into building and debugging programs with QEMU and the STM32F3DISCOVERY board. It then covers peripherals through the borrow checker and singletons. The day closes by applying static guarantees with typestate programming and zero-cost abstractions. Day two focuses on portability through hardware abstraction layers and concurrency techniques such as interrupts, critical sections, and atomic operations. It also covers collection types suited to constrained memory and design patterns drawn from the Rust API guidelines. Day three rounds out the course for engineers coming from C, covering C/C++ interoperability and techniques for optimizing code for speed and size. It closes with a look at building WASM applications with Rust.

Lab work for this course uses the STMicroelectronics STM32F3DISCOVERY development board based on the ARM Cortex-M architecture. The board and Mini-USB cable are included with the course. Attendees must provide their own laptops.

Who Should Attend

(Embedded Systems) Developers

What Attendees Will Learn

Upon completing Rust Embedded, attendees will be able to:

  • Set up an embedded Rust development environment, including no_std
  • Build and debug embedded Rust programs using QEMU and STM32
  • Work with peripherals using the borrow checker and singletons
  • Apply static guarantees using typestate programming and zero cost abstractions
  • Apply hardware abstraction layers (HAL) for portability
  • Apply concurrency techniques, including interrupts, mutexes, and critical sections
  • Use Rust collections and manage memory in embedded systems
  • Apply embedded Rust design patterns and API guidelines
  • Apply C/C++ interoperability techniques in embedded Rust
  • Optimize embedded Rust for speed and size
  • Build WASM applications with Rust

Prerequisites

Attendees must have taken RX-M’s Rust Introduction or Foundation course or have equivalent knowledge. Familiarity with developing and debugging embedded systems in another language such as C or C++ is highly recommended but not absolutely required.

Delivery

Available for Instructor-Led (ILT) in-person/onsite training or Virtual Instructor-Led training (VILT) delivery.

Each attendee will require the ability to ssh into a cloud hosted virtual machine (provided with the course). In environments where SSH is not possible, local lab VMs or browser accessible lab systems can be provided. For web-based delivery, participants require an Internet-connected computer capable of teleconferencing.

Related Instructor-Led (ILT & VILT) Training Courses

Angular (3-5 Days)

C Advanced (2 Days)

C++ Advanced (2 Days)

C++ Foundation (3 Days)

C++ Intermediate (2 Days)

C++ Introduction (2 Days)

Go Advanced (2 Days)

Go Foundation (3 Days)

Go Introduction (2 Days)

Java Advanced (2 Days)

Java Foundation (3 Days)

Play (2 Days)

Python Advanced (2 Days)

Qt Foundation (3 Days)

R Foundation (2 Days)

Rust Embedded (3 Days)

Rust Foundation (3 Days)

Scala Foundation (3 Days)

If you are interested in other Cloud Native, AI, programming, or other courses, check out the full course list or search our entire catalog:

Secret Link