Get in Touch
 Duration 14 hours

Course Outline

Initiating Embedded Rust

  • An overview of the no_std, core, and embedded Rust ecosystem
  • Selecting targets and interpreting target triples
  • Configuring rustup, cargo, and target-specific toolchains

Tooling, Build, and Debugging Workflows

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

Hardware Abstraction and Peripheral Access

  • Comprehending embedded-hal traits and driver design patterns
  • Utilizing Peripheral Access Crates (PACs) and device crates (svd2rust)
  • Developing and implementing HAL drivers and Board Support Crates (BSCs)

Memory Safety, Concurrency, and Real-Time Systems

  • Establishing safe patterns for shared state and mutable references within interrupts
  • Implementing RTIC and other concurrency models for real-time contexts
  • Managing heap versus stack usage, allocators, and minimizing dynamic allocation

Error Handling, Testing, and Reliability

  • Adopting error handling strategies suitable for constrained environments
  • Comparing unit testing on the host with integration testing on hardware
  • Executing fault analysis, logging, and post-mortem strategies

Performance, Power, and Resource Optimization

  • Conducting benchmarks, measurements, and optimization of hot paths
  • Applying code size reduction techniques and linker scripts
  • Implementing power management strategies and low-power design patterns

Deployment, Security, and Ecosystem Best Practices

  • Enforcing secure boot, firmware signing, and update protocols
  • Addressing supply-chain risks and managing dependencies
  • Planning the migration from C to Rust and exploring community resources

Wrap-up and Future 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 integrate Rust into their workflows
  • Software engineers with Rust experience transitioning to low-level system development
  • Technical leads assessing Rust for embedded product development

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories