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
- Comprehensive overview of the
no_stdenvironment, core libraries, and the embedded Rust ecosystem - Selection of appropriate target architectures and analysis of target triple identifiers
- Configuration of development environments using rustup, cargo, and specific toolchains for each target
Tooling, Build Processes, and Debugging Workflows
- Implementation of workflows utilizing cargo, cargo-embed, probe-run, and OpenOCD for government applications
- Procedures for flashing firmware and conducting debugging operations with hardware probes (e.g., ST-Link, J-Link)
- Integration strategies for continuous integration (CI) systems specific to embedded Rust firmware development
Hardware Abstraction and Peripheral Access
- Examination of embedded-hal traits and established driver design patterns
- Navigating 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 Processing
- Secure coding patterns for managing shared state and mutable references within interrupt handlers
- Application of RTIC and alternative concurrency frameworks for real-time system requirements
- Management of heap versus stack resources, allocator configuration, and strategies to eliminate dynamic memory allocation
Error Handling, Testing, and System Reliability
- Implementation of error handling methodologies suitable for resource-constrained environments
- Differentiation between unit testing on host systems and integration testing on physical hardware
- Techniques for fault analysis, logging implementation, and post-mortem investigation strategies
Performance Optimization, Power Management, and Resource Efficiency
- Benchmarking methodologies, performance measurement, and optimization of critical code paths
- Techniques for reducing binary size and configuration of linker scripts
- Power management strategies and design patterns for low-power operational modes
Deployment, Security, and Ecosystem Best Practices
- Protocols for secure boot, firmware signing, and update mechanisms for government systems
- Evaluation of supply chain risks and dependency management practices
- Guidance on migrating existing C firmware to Rust and access to community resources
Summary and Recommended Next Steps
Requirements
- A thorough comprehension of fundamental Rust principles, including ownership, borrowing, and lifetime semantics.
- Practical experience developing complex Rust applications (intermediate proficiency).
- Knowledge of embedded systems concepts such as memory-mapped I/O, interrupt handling, and peripheral management.
Intended Audience
- Firmware engineers specializing in embedded systems who are integrating Rust into their workflows for government applications.
- Software developers with established Rust expertise transitioning to low-level system development.
- Technical leadership teams assessing the viability of Rust for secure and reliable embedded product development.
14 Hours
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.