Course Outline
Getting Started with Embedded Rust
- Overview of no_std, core, and embedded Rust ecosystem
- Choosing a target and understanding target triples
- Setting up rustup, cargo, and target toolchains
Tooling, Build & Debug Workflow
- Using cargo, cargo-embed, probe-run, and OpenOCD workflows
- Flashing and debugging with hardware probes (ST-Link, JLink)
- CI considerations for building embedded Rust firmware
Hardware Abstraction and Peripheral Access
- Understanding embedded-hal traits and driver patterns
- Peripheral access crates (PACs) and device crates (svd2rust)
- Writing and using HAL drivers and board support crates (BSCs)
Memory Safety, Concurrency & Real-Time
- Safe patterns for shared state and mutable references in interrupts
- RTIC and other concurrency models for real-time systems
- Heap vs. stack usage, allocators, and avoiding dynamic allocation
Error Handling, Testing & Reliability
- Error handling patterns in constrained environments
- Unit testing on host vs. integration testing on hardware
- Fault analysis, logging, and post-mortem strategies
Performance, Power & Resource Optimization
- Benchmarking, measurement, and optimizing hot paths
- Code size reduction techniques and linker scripts
- Power management strategies and low-power design patterns
Deployment, Security & Ecosystem Best Practices
- Secure boot, firmware signing, and update strategies
- Supply-chain considerations and dependency management
- Roadmap for migrating C firmware to Rust and community resources
Summary and Next Steps
Requirements
- An understanding of core Rust concepts: ownership, borrowing, lifetimes
- Experience writing non-trivial Rust programs (intermediate Rust)
- Familiarity with embedded concepts: memory-mapped I/O, interrupts, peripherals
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 (5)
He answers my questions very well explained.
Khaled Almarzooqi - Beamtrail
Course - Circuits and Electronics Fundamentals
Sean was a dynamic speaker and the hands-on exercises were very interesting and I can see how they will be really applicable.
Temira Koenig - Yeshiva University
Course - Raspberry Pi for Beginners
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
Trainer was really kind and knowledgeable, going the extra mile to explain things that I didn't know
Felix - Microchip Technology Inc
Course - Embedded C Application Design Principles for Automotive Professionals
The aquisition of useful knowlwdge and clarification of some things I was not sure of peviously.