Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.