Get in Touch
 Duration 14 hours

Course Outline

Introduction to Embedded Rust

  • Overview of no_std, core, and the embedded Rust ecosystem
  • Selecting a target and comprehending target triples
  • Configuring rustup, cargo, and target toolchains

Tooling, Build & Debug Workflows

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

Hardware Abstraction and Peripheral Interaction

  • Comprehending embedded-hal traits and driver patterns
  • Peripheral access crates (PACs) and device crates (svd2rust)
  • Developing and utilizing HAL drivers and board support crates (BSCs)

Memory Safety, Concurrency & Real-Time Operations

  • Safe patterns for shared state and mutable references within interrupts
  • RTIC and alternative concurrency models for real-time systems
  • Heap versus stack usage, allocators, and avoiding dynamic allocation

Error Handling, Testing & Reliability

  • Error handling patterns in constrained environments
  • Unit testing on the host versus integration testing on hardware
  • Fault analysis, logging, and post-mortem strategies

Performance, Power & Resource Optimization

  • Benchmarking, measurement, and optimization of hot paths
  • Code size reduction techniques and linker scripts
  • Power management strategies and low-power design patterns

Deployment, Security & Ecosystem Best Practices

  • Secure boot, firmware signing, and update strategies
  • Supply-chain considerations and dependency management
  • Roadmap for migrating C firmware to Rust and community resources

Conclusion and Next Steps

Requirements

  • A solid grasp of core Rust concepts: ownership, borrowing, and lifetimes
  • Experience in writing non-trivial Rust programs (intermediate level)
  • Familiarity with embedded concepts: memory-mapped I/O, interrupts, and peripherals

Target Audience

  • Embedded firmware engineers aiming to adopt Rust
  • Software engineers with Rust experience looking to transition to low-level systems
  • Technical leads assessing Rust for embedded product development

Testimonials (1)

Related Categories