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 appropriate targets and interpreting target triples
- Configuring rustup, cargo, and specialized target toolchains
Tooling, Build & Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
- Performing flashing and debugging via hardware probes (ST-Link, JLink)
- Addressing CI considerations for embedded Rust firmware builds
Hardware Abstraction and Peripheral Interaction
- Analyzing embedded-hal traits and standard driver patterns
- Utilizing Peripheral Access Crates (PACs) and device crates (svd2rust)
- Developing and integrating HAL drivers and board support crates (BSCs)
Memory Safety, Concurrency & Real-Time Systems
- Implementing safe patterns for shared state and mutable references within interrupts
- Applying RTIC and alternative concurrency models for real-time applications
- Optimizing heap versus stack usage, allocators, and minimizing dynamic allocation
Error Handling, Testing & Reliability
- Adopting effective error handling strategies in constrained environments
- Conducting unit tests on the host and integration tests on hardware
- Performing fault analysis, logging, and implementing post-mortem strategies
Performance, Power & Resource Optimization
- Benchmarking, measuring, and optimizing critical code paths
- Reducing code size through techniques and linker script adjustments
- Implementing power management strategies and low-power design patterns
Deployment, Security & Ecosystem Best Practices
- Securing boot processes, firmware signing, and update strategies
- Navigating supply-chain risks and managing dependencies effectively
- Planning the migration of C firmware to Rust and leveraging community resources
Summary and Next Steps
Requirements
- A solid grasp of core Rust concepts, including ownership, borrowing, and lifetimes
- Demonstrated experience in writing complex Rust programs (intermediate level)
- Foundational knowledge of embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals
Target Audience
- Embedded firmware engineers seeking to adopt Rust
- Software engineers with existing Rust experience looking to transition into low-level systems
- Technical leaders assessing the feasibility of Rust for embedded product development
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.