|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/embedded-rust-for-absolute-beginners/
课程评论:没有评论
课程名称:嵌入式Rust开发与STM32:绝对初学者 课程概述:想要为你的技能库增加另一种嵌入式编程语言吗?那就来试试Rust吧——你不会失望的!本课程是你在微控制器上使用Rust的起点,即使你对嵌入式系统是全新的。此课程完全以实践为基础,从零开始,带你进入真实的嵌入式Rust开发,专注于STM32。每个视频都是在前一个视频的基础上构建,循序渐进,从编写裸金属代码,到高阶主题如FFI、包、驱动开发和特征,特别适合Rust和嵌入式系统的新手。 为什么选择Rust进行嵌入式开发?Rust通过以下方式防止常见的内存问题(如空指针解引用、缓冲区溢出和使用后释放错误): - 所有权模型:Rust严格的所有权、借用和生命周期规则防止大多数意外的内存错误。 - 类型安全:Rust的类型系统确保您正确访问数据,并通过强制严格的变量使用模式帮助防止某些类型的无效内存访问。 此外,得益于Cargo,Rust的官方包管理器,你可以通过简单地包含外部库或“crate”轻松添加功能,这些就像即插即用的组件。 你将学到什么?通过本课程,你将掌握: - 针对嵌入式系统的友好入门介绍 - 完整的工具链设置,用于交叉编译、闪存和调试 - 使用defmt和probe-rs进行实时跟踪的调试和日志记录 - 使用STM32 HAL crate进行高层外设编程 - 步步构建一个真实世界的Flappy Bird游戏应用程序 - 与真实传感器(如MPU6050)接口,以控制游戏机制 - 干净、模块化的编码实践和硬件抽象 - 使用embedded-hal特性构建硬件无关的驱动程序 - 编写和理解自己的链接脚本和启动代码 - 使用Rust泛型和特性构建通用嵌入式代码 - 通过FFI实现安全和无缝的Rust + C集成 - 对用Rust编写强健、可重用和生产级嵌入式固件的信心 硬件要求:如果你已经有一个微控制器开发板,推荐继续使用你手上的设备。本课程十分详尽,课程概念和步骤适用于大多数开发板,但可能需要一些小调整。如果你希望使用与讲师相同的开发板以获得更顺畅的体验,可以查看推荐的硬件: 1) 微控制器开发板:主要使用基于STM32F303微控制器的Fastbit STM32 Nano板,该板配有MPU6050传感器。你也可以选择任何配有STM32微控制器的开发板。 2) 基于SWD的调试器:编程和调试STM32微控制器需要一款基于SWD的调试器。这是将程序加载到微控制器和实时调试项目所必需的工具。 3) LCD模块:在某些项目中,你将需要一个TFT LCD模块进行实验。课程使用的Fastbit 1.28" TFT LCD具有8位并行接口,基于GC9A01 LCD驱动器,但你也可以使用相同或相似的兼容模块。 4) MPU6050传感器 软件要求:VS Code、STM32CubeIDE
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