Get in Touch
 Duration 14 hours

Course Outline

Foundations of Embedded Rust

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

Tooling, Build, & Debug Processes

  • Integrating cargo, cargo-embed, probe-run, and OpenOCD workflows
  • Flashing and debugging using hardware probes like ST-Link and JLink
  • Addressing CI requirements for embedded Rust firmware builds

Hardware Abstraction and Peripheral Interaction

  • Exploring embedded-hal traits and driver design patterns
  • Utilizing peripheral access crates (PACs) and device crates (svd2rust)
  • Creating and implementing HAL drivers and board support crates (BSCs)

Memory Safety, Concurrency, & Real-Time Performance

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

Error Management, Testing, & Reliability

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

Performance, Power, & Resource Optimization

  • Benchmarking, measuring, and refining hot paths for performance
  • Applying code size reduction techniques and linker scripts
  • Implementing power management strategies and low-power design patterns

Deployment, Security, & Ecosystem Standards

  • Establishing secure boot, firmware signing, and update protocols
  • Navigating supply-chain considerations and dependency management
  • Planning the migration from C firmware to Rust and accessing community resources

Recap and Future Pathways

Requirements

  • Solid grasp of fundamental Rust principles, including ownership, borrowing, and lifetimes
  • Proven experience in developing complex Rust applications (intermediate level)
  • Knowledge of embedded systems concepts such as memory-mapped I/O, interrupts, and peripheral interaction

Target Audience

  • Embedded firmware engineers seeking to integrate Rust into their workflow
  • Software engineers with a Rust background aiming to transition into low-level system development
  • Technical leads assessing the suitability of Rust for embedded product development

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories