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 the no_std, core, and broader embedded Rust ecosystem.
- Selecting appropriate targets and understanding target triples.
- Configuring rustup, cargo, and specific target toolchains.
Tooling, Build, and Debug Workflows
- Leveraging cargo, cargo-embed, probe-run, and OpenOCD integration.
- Flashing and debugging via hardware probes such as ST-Link and JLink.
- Addressing CI/CD pipeline considerations for building embedded Rust firmware.
Hardware Abstraction and Peripheral Interaction
- Exploring embedded-hal traits and standard driver patterns.
- Utilizing Peripheral Access Crates (PACs) and device crates generated by svd2rust.
- Creating and utilizing Hardware Abstraction Layer (HAL) drivers and Board Support Crates (BSCs).
Memory Safety, Concurrency, and Real-Time Systems
- Implementing safe patterns for managing shared state and mutable references within interrupts.
- Applying RTIC and alternative concurrency models tailored for real-time systems.
- Managing heap versus stack usage, allocators, and strategies to avoid dynamic allocation.
Error Handling, Testing, and Reliability
- Adopting error handling patterns suitable for resource-constrained environments.
- Distinguishing between host-based unit testing and hardware-based integration testing.
- Employing fault analysis, logging mechanisms, and post-mortem investigation strategies.
Performance, Power, and Resource Optimization
- Conducting benchmarks, measuring performance, and optimizing critical hot paths.
- Applying code size reduction techniques and managing linker scripts.
- Implementing power management strategies and low-power design patterns.
Deployment, Security, and Ecosystem Best Practices
- Configuring secure boot processes, firmware signing, and update mechanisms.
- Addressing supply-chain security and managing dependencies effectively.
- Planning the migration of C firmware to Rust and utilizing community resources.
Summary and Future Pathways
Requirements
- A solid grasp of fundamental Rust concepts, including ownership, borrowing, and lifetimes.
- Demonstrated proficiency in writing non-trivial Rust programs (intermediate level).
- Working knowledge of embedded systems principles, such as memory-mapped I/O, interrupts, and peripherals.
Target Audience
- Embedded firmware engineers seeking to integrate Rust into their workflow.
- Software engineers with Rust expertise transitioning into low-level systems development.
- Technical leaders evaluating Rust for embedded product development initiatives.
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.