Get in Touch

Course Outline

Introduction to Embedded Rust Development

  • Comprehensive overview of the no_std environment, 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

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories