Course Outline

Getting Started with Embedded Rust

  • Overview of no_std, core, and embedded Rust ecosystem
  • Choosing a target and understanding target triples
  • Setting up rustup, cargo, and target toolchains

Tooling, Build & Debug Workflow

  • Using cargo, cargo-embed, probe-run, and OpenOCD workflows
  • Flashing and debugging with hardware probes (ST-Link, JLink)
  • CI considerations for building embedded Rust firmware

Hardware Abstraction and Peripheral Access

  • Understanding embedded-hal traits and driver patterns
  • Peripheral access crates (PACs) and device crates (svd2rust)
  • Writing and using HAL drivers and board support crates (BSCs)

Memory Safety, Concurrency & Real-Time

  • Safe patterns for shared state and mutable references in interrupts
  • RTIC and other concurrency models for real-time systems
  • Heap vs. stack usage, allocators, and avoiding dynamic allocation

Error Handling, Testing & Reliability

  • Error handling patterns in constrained environments
  • Unit testing on host vs. integration testing on hardware
  • Fault analysis, logging, and post-mortem strategies

Performance, Power & Resource Optimization

  • Benchmarking, measurement, and optimizing hot paths
  • Code size reduction techniques and linker scripts
  • Power management strategies and low-power design patterns

Deployment, Security & Ecosystem Best Practices

  • Secure boot, firmware signing, and update strategies
  • Supply-chain considerations and dependency management
  • Roadmap for migrating C firmware to Rust and community resources

Summary and Next Steps

Requirements

  • An understanding of core Rust concepts: ownership, borrowing, lifetimes
  • Experience writing non-trivial Rust programs (intermediate Rust)
  • Familiarity with embedded concepts: memory-mapped I/O, interrupts, peripherals

Audience

  • Embedded firmware engineers looking to adopt Rust
  • Software engineers with Rust experience transitioning to low-level systems
  • Technical leads evaluating Rust for embedded product development
 14 Hours

Number of participants


Price per participant

Testimonials (5)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories


Fatal error: Uncaught TypeError: _isl_get_excluded_site(): Return value must be of type ?array, none returned in /apps/hitra7/backdrop/modules/_custom/frontend/islc7/isl_common.inc:38 Stack trace: #0 /apps/hitra7/backdrop/modules/_custom/frontend/islc7/isl_common.inc(30): _isl_get_excluded_site() #1 /apps/hitra7/backdrop/modules/_custom/frontend/islc7/isl_common.inc(17): isl_get_excluded_site() #2 /apps/hitra7/backdrop/modules/_custom/frontend/islc7/islc7.module(51): get_outline_isls() #3 /apps/hitra7/backdrop/modules/_custom/frontend/islc7/islc7.module(7): islc_prepare_links() #4 /apps/hitra7/npfrontend/nptemplates/default.php(272): islc7_sites_links_array_v3() #5 /apps/hitra7/npfrontend/modules/course/course.php(143): require_once('...') #6 /apps/hitra7/npfrontend/core/routes.php(15): course_menu_callback() #7 /apps/hitra7/npfrontend/__index.php(81): require_once('...') #8 /apps/hitra7/npfrontend/index.php(15): include_once('...') #9 /apps/hitra7/index.php(66): include_once('...') #10 {main} thrown in /apps/hitra7/backdrop/modules/_custom/frontend/islc7/isl_common.inc on line 38