Get in Touch

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

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories