Get in Touch
 Duration 14 hours

Course Outline

Introduction to Embedded Rust

  • Exploring the no_std, core, and broader embedded Rust ecosystem
  • Selecting appropriate targets and interpreting target triples
  • Configuring rustup, cargo, and specialized target toolchains

Tooling, Build & Debug Workflows

  • Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
  • Performing flashing and debugging via hardware probes (ST-Link, JLink)
  • Addressing CI considerations for embedded Rust firmware builds

Hardware Abstraction and Peripheral Interaction

  • Analyzing embedded-hal traits and standard driver patterns
  • Utilizing Peripheral Access Crates (PACs) and device crates (svd2rust)
  • Developing and integrating HAL drivers and board support crates (BSCs)

Memory Safety, Concurrency & Real-Time Systems

  • Implementing safe patterns for shared state and mutable references within interrupts
  • Applying RTIC and alternative concurrency models for real-time applications
  • Optimizing heap versus stack usage, allocators, and minimizing dynamic allocation

Error Handling, Testing & Reliability

  • Adopting effective error handling strategies in constrained environments
  • Conducting unit tests on the host and integration tests on hardware
  • Performing fault analysis, logging, and implementing post-mortem strategies

Performance, Power & Resource Optimization

  • Benchmarking, measuring, and optimizing critical code paths
  • Reducing code size through techniques and linker script adjustments
  • Implementing power management strategies and low-power design patterns

Deployment, Security & Ecosystem Best Practices

  • Securing boot processes, firmware signing, and update strategies
  • Navigating supply-chain risks and managing dependencies effectively
  • Planning the migration of C firmware to Rust and leveraging community resources

Summary and Next Steps

Requirements

  • A solid grasp of core Rust concepts, including ownership, borrowing, and lifetimes
  • Demonstrated experience in writing complex Rust programs (intermediate level)
  • Foundational knowledge of embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals

Target Audience

  • Embedded firmware engineers seeking to adopt Rust
  • Software engineers with existing Rust experience looking to transition into low-level systems
  • Technical leaders assessing the feasibility of Rust for embedded product development

Number of participants


Price per participant

Testimonials (1)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories