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
- 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
14 Hours
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.