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
- Exploration of the no_std, core, and broader embedded Rust ecosystem.
- Selecting appropriate targets and comprehending target triples.
- Configuring rustup, cargo, and the necessary target toolchains.
Tooling, Build, and Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD for efficient workflows.
- Executing flashing and debugging tasks using hardware probes such as ST-Link and JLink.
- Addressing CI requirements for building embedded Rust firmware.
Hardware Abstraction and Peripheral Interaction
- Analyzing embedded-hal traits and standard driver patterns.
- Utilizing Peripheral Access Crates (PACs) and device crates via svd2rust.
- Creating and deploying HAL drivers and board support crates (BSCs).
Memory Safety, Concurrency, and Real-Time Performance
- Implementing safe patterns for managing shared state and mutable references within interrupts.
- Applying RTIC and alternative concurrency models for real-time systems.
- Evaluating heap versus stack usage, allocators, and strategies to avoid dynamic allocation.
Error Handling, Testing, and System Reliability
- Adopting error handling strategies suited for constrained environments.
- Comparing unit testing on host systems with integration testing on hardware.
- Conducting fault analysis, logging, and developing post-mortem review strategies.
Performance, Power, and Resource Optimization
- Performing benchmarking, measurement, and optimization of critical code paths.
- Reducing code size through linker scripts and other techniques.
- Implementing power management strategies and low-power design principles.
Deployment, Security, and Ecosystem Standards
- Managing secure boot, firmware signing, and update mechanisms.
- Considering supply-chain security and dependency management practices.
- Planning the migration of C firmware to Rust and utilizing community resources.
Summary and Path Forward
Requirements
- A solid grasp of fundamental Rust principles, including ownership, borrowing, and lifetimes.
- Practical experience in developing complex Rust applications (intermediate proficiency).
- Knowledge of embedded systems concepts, specifically memory-mapped I/O, interrupts, and peripheral management.
Target Audience
- Embedded firmware engineers seeking to integrate Rust into their workflow.
- Software engineers with existing Rust expertise looking to transition into low-level systems.
- Technical leaders assessing the viability of Rust for embedded product development.
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.