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
- Survey of the no_std, core, and embedded Rust ecosystems
- Selecting a target and interpreting target triples
- Configuring rustup, cargo, and target-specific toolchains
Tooling, Build & Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
- Flashing and debugging via hardware probes (ST-Link, JLink)
- Addressing CI requirements for building embedded Rust firmware
Hardware Abstraction and Peripheral Access
- Grasping 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 Systems
- Implementing safe patterns for shared state and mutable references within interrupts
- Employing RTIC and other concurrency models for real-time applications
- Managing heap vs. stack usage, allocators, and avoiding dynamic allocation
Error Handling, Testing & Reliability
- Adopting error handling patterns suited to constrained environments
- Conducting unit testing on the host and integration testing on hardware
- Performing fault analysis, logging, and post-mortem reviews
Performance, Power & Resource Optimization
- Benchmarking, measuring, and optimizing critical code paths
- Applying code size reduction techniques and linker scripts
- Implementing power management strategies and low-power design patterns
Deployment, Security & Ecosystem Best Practices
- Establishing secure boot, firmware signing, and update mechanisms
- Addressing supply-chain considerations and dependency management
- Planning the migration of C firmware to Rust and leveraging community resources
Conclusion and Future Steps
Requirements
- A solid grasp of core Rust concepts: ownership, borrowing, and lifetimes
- Practical experience writing non-trivial Rust programs (intermediate level)
- Familiarity with embedded systems concepts: memory-mapped I/O, interrupts, and peripherals
Target Audience
- Embedded firmware engineers aiming to adopt Rust
- Software engineers with Rust experience transitioning into low-level systems
- Technical leads assessing Rust for embedded product development
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.