Get in Touch

Course Outline

Getting Started with Embedded Rust

  • An overview of the no_std, core, and embedded Rust ecosystems.
  • Selecting a target and comprehending target triples.
  • Configuring rustup, cargo, and target-specific toolchains.

Tooling, Build & Debug Workflow

  • Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows.
  • Flashing and debugging using hardware probes like ST-Link and JLink.
  • Considering CI integration for building embedded Rust firmware.

Hardware Abstraction and Peripheral Access

  • Understanding embedded-hal traits and driver design patterns.
  • Utilizing Peripheral Access Crates (PACs) and device crates (svd2rust).
  • Developing and using HAL drivers and board support crates (BSCs).

Memory Safety, Concurrency & Real-Time

  • Implementing safe patterns for shared state and mutable references within interrupts.
  • Applying RTIC and other concurrency models for real-time systems.
  • Managing heap vs. stack usage, allocators, and avoiding dynamic allocation.

Error Handling, Testing & Reliability

  • Adopting error handling patterns suitable for constrained environments.
  • Conducting unit testing on the host versus integration testing on hardware.
  • Performing fault analysis, logging, and post-mortem analysis.

Performance, Power & Resource Optimization

  • Benchmarking, measuring, and optimizing critical code paths.
  • Applying code size reduction techniques and managing linker scripts.
  • Implementing power management strategies and low-power design patterns.

Deployment, Security & Ecosystem Best Practices

  • Establishing secure boot, firmware signing, and update strategies.
  • Addressing supply-chain concerns and dependency management.
  • Creating a roadmap for migrating C firmware to Rust and utilizing community resources.

Summary and Next Steps

Requirements

  • A solid grasp of core Rust concepts, including ownership, borrowing, and lifetimes.
  • Practical experience writing non-trivial Rust programs (intermediate level).
  • Familiarity with embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals.

Target Audience

  • Embedded firmware engineers seeking to adopt Rust.
  • Software engineers with Rust experience looking to transition into low-level systems.
  • Technical leads evaluating Rust for embedded product development.
 14 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories