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
- Overview of no_std, core, and the embedded Rust ecosystem
- Selecting a target and comprehending target triples
- Configuring rustup, cargo, and target toolchains
Tooling, Build & Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
- Flashing and debugging via hardware probes (ST-Link, JLink)
- CI considerations for compiling embedded Rust firmware
Hardware Abstraction and Peripheral Interaction
- Comprehending embedded-hal traits and driver patterns
- Peripheral access crates (PACs) and device crates (svd2rust)
- Developing and utilizing HAL drivers and board support crates (BSCs)
Memory Safety, Concurrency & Real-Time Operations
- Safe patterns for shared state and mutable references within interrupts
- RTIC and alternative concurrency models for real-time systems
- Heap versus stack usage, allocators, and avoiding dynamic allocation
Error Handling, Testing & Reliability
- Error handling patterns in constrained environments
- Unit testing on the host versus integration testing on hardware
- Fault analysis, logging, and post-mortem strategies
Performance, Power & Resource Optimization
- Benchmarking, measurement, and optimization of 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
Conclusion and Next Steps
Requirements
- A solid grasp of core Rust concepts: ownership, borrowing, and lifetimes
- Experience in writing non-trivial Rust programs (intermediate level)
- Familiarity with embedded concepts: memory-mapped I/O, interrupts, and peripherals
Target Audience
- Embedded firmware engineers aiming to adopt Rust
- Software engineers with Rust experience looking to transition to 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.