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
- Introduction to the no_std, core, and embedded Rust ecosystem.
- Selecting targets and interpreting target triples.
- Configuring rustup, cargo, and target-specific toolchains.
Tools, Build, and Debugging Processes
- Utilizing cargo, cargo-embed, probe-run, and OpenOCD workflows.
- Flashing and debugging via hardware probes (ST-Link, JLink).
- Addressing CI requirements for embedded Rust firmware builds.
Hardware Abstraction and Peripheral Interaction
- Exploring embedded-hal traits and driver design patterns.
- Working with Peripheral Access Crates (PACs) and device crates (svd2rust).
- Developing and utilizing HAL drivers and Board Support Crates (BSCs).
Memory Safety, Concurrency, and Real-Time Systems
- Implementing safe patterns for shared state and mutable references within interrupts.
- Applying RTIC and other concurrency models for real-time applications.
- Managing heap versus stack usage, allocators, and avoiding dynamic allocation.
Error Handling, Testing, and Reliability
- Strategies for error handling in constrained environments.
- Conducting unit tests on the host and integration tests on hardware.
- Performing fault analysis, logging, and post-mortem reviews.
Performance, Power, and Resource Optimization
- Benchmarking, measuring, and optimizing critical code paths.
- Techniques for reducing code size and managing linker scripts.
- Implementing power management and low-power design patterns.
Deployment, Security, and Ecosystem Best Practices
- Managing secure boot, firmware signing, and update strategies.
- Addressing supply-chain issues and dependency management.
- Planning the migration from C to Rust and exploring community resources.
Wrap-Up and Future Directions
Requirements
- Comprehension of fundamental Rust principles: ownership, borrowing, and lifetimes.
- Practical experience creating complex Rust applications (intermediate level).
- Knowledge of embedded systems concepts: memory-mapped I/O, interrupts, and peripherals.
Target Audience
- Embedded firmware engineers interested in adopting Rust.
- Software engineers with Rust backgrounds transitioning to low-level systems.
- Technical leaders assessing Rust for embedded product development.
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.