Course Outline
Introduction to Embedded Rust for Government
- Overview of the no_std, core, and embedded Rust ecosystem for government applications
- Selecting a target and understanding target triples in the context of public sector projects
- Setting up rustup, cargo, and target toolchains to align with government workflows
Tooling, Build & Debug Workflow for Government
- Utilizing cargo, cargo-embed, probe-run, and OpenOCD workflows for efficient development in public sector projects
- Flashing and debugging with hardware probes (ST-Link, JLink) to ensure reliability and accountability in government systems
- CI considerations for building embedded Rust firmware to meet government standards and compliance requirements
Hardware Abstraction and Peripheral Access for Government
- Understanding embedded-hal traits and driver patterns in the context of public sector hardware
- Utilizing peripheral access crates (PACs) and device crates (svd2rust) to enhance government project development
- Writing and using HAL drivers and board support crates (BSCs) for robust government applications
Memory Safety, Concurrency & Real-Time for Government
- Implementing safe patterns for shared state and mutable references in interrupts to ensure secure and reliable public sector systems
- Exploring RTIC and other concurrency models for real-time government applications
- Managing heap vs. stack usage, allocators, and avoiding dynamic allocation to meet stringent government performance requirements
Error Handling, Testing & Reliability for Government
- Adopting error handling patterns in constrained environments to enhance the robustness of government systems
- Conducting unit testing on host vs. integration testing on hardware to ensure compliance with government standards
- Implementing fault analysis, logging, and post-mortem strategies to maintain accountability and transparency in public sector projects
Performance, Power & Resource Optimization for Government
- Benchmarking, measurement, and optimizing hot paths to improve the efficiency of government applications
- Applying code size reduction techniques and linker scripts to meet stringent government resource constraints
- Implementing power management strategies and low-power design patterns to enhance sustainability in public sector projects
Deployment, Security & Ecosystem Best Practices for Government
- Ensuring secure boot, firmware signing, and update strategies to protect government systems from threats
- Addressing supply-chain considerations and dependency management to maintain integrity in public sector projects
- Outlining a roadmap for migrating C firmware to Rust and leveraging community resources to support government initiatives
Summary and Next Steps for Government
Requirements
- An understanding of core Rust concepts: ownership, borrowing, and lifetimes
- Experience in writing non-trivial Rust programs (intermediate level)
- Familiarity with embedded systems concepts: memory-mapped I/O, interrupts, and peripherals
Audience
- Embedded firmware engineers interested in adopting Rust for government applications
- Software engineers with Rust experience transitioning to low-level systems development
- Technical leads evaluating Rust for embedded product development within the public sector
Testimonials (5)
He answers my questions very well explained.
Khaled Almarzooqi - Beamtrail
Course - Circuits and Electronics Fundamentals
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
Trainer was really kind and knowledgeable, going the extra mile to explain things that I didn't know
Felix - Microchip Technology Inc
Course - Embedded C Application Design Principles for Automotive Professionals
The aquisition of useful knowlwdge and clarification of some things I was not sure of peviously.
Kenneth Mahoney - University of Glasgow
Course - Arduino: Programming a Microcontroller for Beginners
I genuinely enjoyed the trainer knowledge.