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
Introduction to Embedded Rust Development
- Review of the no_std environment, core library functions, and the embedded Rust ecosystem
- Selection of target architectures and comprehension of target triples
- Configuration of rustup, cargo, and requisite target toolchains
Tooling, Build, and Debugging Workflows
- Utilization of cargo, cargo-embed, probe-run, and OpenOCD workflows
- Programming and debugging procedures using hardware probes, including ST-Link and J-Link
- Continuous integration considerations for embedded Rust firmware development
Hardware Abstraction and Peripheral Access
- Comprehension of embedded-hal traits and established driver patterns
- Implementation of Peripheral Access Crates (PACs) and device crates generated via svd2rust
- Development and utilization of Hardware Abstraction Layer (HAL) drivers and Board Support Crates (BSCs)
Memory Safety, Concurrency, and Real-Time Operations
- Safe practices for managing shared state and mutable references within interrupt handlers
- Implementation of RTIC and alternative concurrency models for real-time systems
- Management of heap and stack usage, allocation strategies, and mitigation of dynamic allocation
Error Handling, Testing, and Reliability Standards
- Implementation of error handling protocols within resource-constrained environments
- Conducting unit testing on host systems versus integration testing on hardware platforms
- Strategies for fault analysis, logging, and post-mortem review
Performance, Power Efficiency, and Resource Optimization
- Execution of benchmarks, measurement techniques, and optimization of critical code paths
- Techniques for reducing code size and management of linker scripts
- Strategies for power management and implementation of low-power design patterns
Deployment, Security, and Ecosystem Best Practices
- Implementation of secure boot processes, firmware signing, and update protocols
- Considerations for supply chain security and dependency management
- Guidance for migrating existing C firmware to Rust and overview of community resources
Summary and Next Steps
Requirements
**Prerequisites**
* Foundational knowledge of Rust principles, including ownership, borrowing, and lifetime management.
* Practical experience developing complex Rust applications at an intermediate proficiency level.
* Competence in embedded systems engineering, specifically regarding memory-mapped I/O, interrupt handling, and peripheral management.
**Target Audience**
* Embedded firmware engineers seeking to integrate Rust into their development workflows.
* Software engineers with established Rust expertise who are transitioning to low-level systems programming.
* Technical leadership teams assessing the viability of Rust for embedded product development initiatives.
This content is designed **for government** agencies and defense contractors requiring rigorous, secure, and reliable systems engineering practices.
14 Hours
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.