Get in Touch
 Duration 14 hours

Course Outline

Introduction to Embedded Rust

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

Tooling, Build, and Debugging Processes

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

Hardware Abstraction and Peripheral Interaction

  • Analyzing embedded-hal traits and driver design patterns
  • Working with Peripheral Access Crates (PACs) and device crates via svd2rust
  • Creating and utilizing HAL drivers and Board Support Packages (BSPs)

Memory Safety, Concurrency, and Real-Time Systems

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

Error Management, Testing, and Reliability

  • Applying 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, and Resource Optimization

  • Benchmarking, measuring, and optimizing critical code paths
  • Techniques for reducing code size and managing linker scripts
  • Strategies for power management and low-power design patterns

Deployment, Security, and Ecosystem Best Practices

  • Implementing secure boot, firmware signing, and update mechanisms
  • Considering supply-chain security and dependency management
  • Planning the migration of C firmware to Rust and utilizing community resources

Conclusion and Further Steps

Requirements

  • A solid grasp of fundamental Rust concepts, including ownership, borrowing, and lifetimes
  • Proficiency in writing complex Rust applications (intermediate level)
  • Knowledge of embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals

Target Audience

  • Embedded firmware engineers seeking to integrate Rust into their workflow
  • Software developers with Rust experience aiming to transition into low-level systems
  • Technical leaders assessing the suitability of Rust for embedded product development

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories