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.
Duration 14 hours
Course Outline
Introduction to Embedded Rust
- Exploring 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 & Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
- Flashing and debugging via hardware probes such as ST-Link and JLink
- Addressing CI pipeline considerations for embedded Rust firmware builds
Hardware Abstraction and Peripheral Interaction
- Mastering embedded-hal traits and driver design patterns
- Utilizing Peripheral Access Crates (PACs) and device crates generated by svd2rust
- Creating and utilizing HAL drivers and board support crates (BSCs)
Memory Safety, Concurrency & Real-Time Systems
- Implementing safe patterns for shared state and mutable references within interrupts
- Adopting RTIC and other concurrency models tailored for real-time applications
- Managing heap versus stack usage, allocators, and strategies to avoid dynamic allocation
Error Handling, Testing & Reliability
- Applying effective error handling patterns in constrained environments
- Conducting unit testing on the host versus integration testing on hardware
- Performing fault analysis, logging, and post-mortem investigations
Performance, Power & Resource Optimization
- Benchmarking, measuring, and optimizing critical code paths
- Reducing code size through linker scripts and optimization techniques
- Implementing power management strategies and low-power design principles
Deployment, Security & Ecosystem Best Practices
- Managing secure boot, firmware signing, and update procedures
- Addressing supply-chain risks and dependency management
- Planning the roadmap for migrating C firmware to Rust and accessing community resources
Conclusion and Future Directions
Requirements
- Understanding of core Rust concepts: ownership, borrowing, and lifetimes.
- Experience writing non-trivial Rust programs (intermediate Rust proficiency).
- Familiarity with embedded concepts: memory-mapped I/O, interrupts, and peripherals.
Target Audience
- Embedded firmware engineers looking to adopt Rust.
- Software engineers with Rust experience transitioning to low-level systems.
- Technical leads evaluating Rust for embedded product development.
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.