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
Initiating Embedded Rust
- An overview of the no_std, core, and embedded Rust ecosystem
- Selecting targets and interpreting target triples
- Configuring rustup, cargo, and target-specific toolchains
Tooling, Build, and Debugging Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD workflows
- Flashing and debugging via hardware probes (ST-Link, JLink)
- Addressing CI considerations for embedded Rust firmware builds
Hardware Abstraction and Peripheral Access
- Comprehending embedded-hal traits and driver design patterns
- Utilizing Peripheral Access Crates (PACs) and device crates (svd2rust)
- Developing and implementing HAL drivers and Board Support Crates (BSCs)
Memory Safety, Concurrency, and Real-Time Systems
- Establishing safe patterns for shared state and mutable references within interrupts
- Implementing RTIC and other concurrency models for real-time contexts
- Managing heap versus stack usage, allocators, and minimizing dynamic allocation
Error Handling, Testing, and Reliability
- Adopting error handling strategies suitable for constrained environments
- Comparing unit testing on the host with integration testing on hardware
- Executing fault analysis, logging, and post-mortem strategies
Performance, Power, and Resource Optimization
- Conducting benchmarks, measurements, and optimization of hot paths
- Applying code size reduction techniques and linker scripts
- Implementing power management strategies and low-power design patterns
Deployment, Security, and Ecosystem Best Practices
- Enforcing secure boot, firmware signing, and update protocols
- Addressing supply-chain risks and managing dependencies
- Planning the migration from C to Rust and exploring community resources
Wrap-up and Future Steps
Requirements
- A solid grasp of core Rust concepts, including ownership, borrowing, and lifetimes
- Practical experience writing non-trivial Rust programs (intermediate level)
- Familiarity with embedded systems concepts such as memory-mapped I/O, interrupts, and peripherals
Target Audience
- Embedded firmware engineers seeking to integrate Rust into their workflows
- Software engineers with Rust experience transitioning to low-level system development
- Technical leads assessing Rust for embedded product development
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.