|
via Udemy |
Go to Course: https://www.udemy.com/course/embedded-rust-for-absolute-beginners/
Looking to add another embedded programming language to your arsenal? Give Rust a shot - you won't be disappointed!!This course is your starting point for using Rust on microcontrollers, even if you are new to embedded systems. This is a fully hands on course that takes you from scratch into real world embedded Rust development on STM32. Each video builds on the previous, helping you progress step-by-step, from writing bare metal code to advanced topics like FFI, crates, driver development, and traits. Ideal for those new to Rust and embedded systems.Why Rust for embedded?Rust prevents many common memory issues (like null pointer dereferencing, buffer overflows, and use-after-free errors) through:Ownership model: Rust's strict rules around ownership, borrowing, and lifetimes prevent most accidental memory misuse.Type safety: Rust's type system ensures that you access data correctly and helps prevent certain types of invalid memory access by enforcing strict variable usage patterns.Thanks to Cargo, Rust's official package manager, you can easily add features by simply including external libraries, or "crates," which are like plug-and-play components.What will you learn?Here's what you will master in this course:A beginner-friendly introduction to Rust, tailored for embedded systemsComplete toolchain setup for cross-compiling, flashing, and debuggingDebugging and logging with defmt and probe-rs for real-time tracingHigh-level peripheral programming with STM32 HAL crateStep-by-step, build a real-world Flappy Bird game application using RustInterface with real sensors (MPU6050) to control game mechanicsClean, modular coding practices and hardware abstractionBuild hardware-agnostic drivers using the embedded-hal traitsWriting and understanding your own linker scripts and startup codeBuilding generic embedded code using Rust generics and traitsSafe and seamless Rust + C integration through FFIConfidence to write robust, reusable, and production-grade embedded firmware in RustHardware Requirements Note: If you already have a microcontroller development board, we recommend continuing with it. This course is designed with such thoroughness that the concepts and steps can be applied to most development boards though some minor adjustments may be needed. But, if you prefer to use the exact same board as the instructor for a smoother experience, you can check out the recommended hardware1) Microcontroller development board Option-1. STM32F303-Based Board The course primarily utilizes Fastbit STM32 Nano board which is based on the STM32F303 microcontroller and onboard MPU6050 sensor.Option 2. Any STM32 Microcontroller Board You can use any development board featuring an STM32 microcontroller. The course content is designed to be adaptable, allowing you to follow along with the specific STM32 board you have available.2) SWD-Based Debugger An SWD (Serial Wire Debug) based debugger is required for programming and debugging your STM32 microcontroller. This tool is essential for loading your programs onto the microcontroller and for debugging your projects in real-time.3) LCD shield In one of the projects, you will need a TFT LCD module for experimentation. This course uses the Fastbit 1.28" TFT LCD with an 8-bit parallel interface, based on the GC9A01 LCD driver. However, you are free to use the same or a similar compatible module4) MPU6050 sensorSoftware requirements VS Code STM32CubeIDE