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 the no_std, core, and embedded Rust ecosystem.
- Choosing a target platform and understanding target triples.
- Setting up rustup, cargo, and target toolchains.
Tooling, Build & Debug Workflow
- Utilizing workflows with cargo, cargo-embed, probe-run, and OpenOCD.
- Flashing and debugging using hardware probes such as ST-Link and JLink.
- Continuous Integration (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 generated via svd2rust.
- Writing and utilizing HAL drivers and Board Support Crates (BSCs).
Memory Safety, Concurrency & Real-Time
- Safe patterns for managing shared state and mutable references within interrupts.
- RTIC and other concurrency models suitable for real-time systems.
- Differences between heap and stack usage, allocators, and strategies to avoid dynamic allocation.
Error Handling, Testing & Reliability
- Error handling patterns tailored for constrained environments.
- Unit testing on the host versus integration testing on hardware.
- Fault analysis, logging mechanisms, and post-mortem strategies.
Performance, Power & Resource Optimization
- Benchmarking, measurement techniques, and optimizing critical code paths.
- Techniques for reducing code size and understanding linker scripts.
- Power management strategies and low-power design patterns.
Deployment, Security & Ecosystem Best Practices
- Secure boot processes, firmware signing, and update strategies.
- Supply-chain considerations and dependency management.
- Guidance on migrating from C firmware to Rust, along with available community resources.
Summary and Next Steps
Requirements
- A solid understanding of core Rust concepts, including ownership, borrowing, and lifetimes.
- Hands-on experience writing non-trivial Rust programs at an intermediate level.
- Familiarity with embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals.
Audience
- Embedded firmware engineers looking to adopt Rust.
- Software engineers with existing Rust experience who are transitioning to low-level systems.
- Technical leads evaluating the use of Rust for embedded product development.
14 Hours
Testimonials (2)
Trainer's way of explaining
Deepak Tiwari - Beamtrail
Course - Circuits and Electronics Fundamentals
The trainer was very interactive and steadily paced.