Master safe, modern embedded systems in Rust with bare-metal, FFI, drivers, crates & projects on STM32 microcontrollers
What you'll learn
- Rust programming language from scratch
- Build your first bare-metal Rust application from scratch
- Learn how to set up the Rust toolchain for building firmware that runs on ARM Cortex-M microcontrollers
- Write your own linker script and startup file, and understand how memory layout and bootstrapping work in embedded Rust
- Use cargo-binutils to inspect and analyze ELF files
- Set up a modern and efficient workflow using VS Code to build, flash, and debug your Rust code with embedded targets
- Using and understanding core embedded Rust crates
- Log and debug efficiently in resource-constrained environments
- Get hands-on with ARM Cortex peripherals like SysTick and ITM using the cortex-m and cortex-m-rt crates
- Rust FFI: Create safe Rust APIs to interface with existing C libraries, making it easier to integrate Rust into existing C-based codebases
- Learn how to safely pass structs, strings, and enums between Rust and C while maintaining type safety and control
- Expose Rust functions to be callable from C, using unsafe and FFI concepts to manage cross-language interoperability safely
- Step-by-step, build a real-world Flappy Bird game application using Rust
- Build hardware-agnostic drivers using the embedded-hal traits, making your code portable across multiple microcontroller platforms.
- Interface with real sensors ( MPU6050) to control game mechanics
- Structure your code in clean, maintainable modules
- Use the STM32 HAL crate to easily configure and control your microcontroller’s peripherals with safe Rust abstractions
- Writing generic embedded code