【Udemy课程】精通嵌入式Rust裸机编程:FFI接口、Crate管理与项目实战 | Mastering Embedded Rust Bare Metal, FFI, Crates, Projects

【Udemy课程】精通嵌入式Rust裸机编程:FFI接口、Crate管理与项目实战 | Mastering Embedded Rust Bare Metal, FFI, Crates, Projects-幻仿编程
【Udemy课程】精通嵌入式Rust裸机编程:FFI接口、Crate管理与项目实战 | Mastering Embedded Rust Bare Metal, FFI, Crates, Projects
此内容为付费资源,请付费后查看
49.9
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费资源
资源分类: IT编程查看预览
最近更新: 2025-12-29文件内容: 视频+中英文字幕+配套课件
视频分辨率: 1080P 高清文件大小: 2.66GB
视频语言: 英语视频字幕: 中英字幕

幻仿编程 Udemy 付费课程,独家中英字幕 + 配套资料!
限时1折特惠!课程永久访问权,随时随地学习!

精通嵌入式 Rust:裸金属、FFI、Crates 与项目实战

掌握Rust中的安全、现代嵌入式系统,在STM32微控制器上使用裸机、FFI、驱动程序、机箱和项目

讲师:FastBit Embedded Brain Academy, Kiran Nayak


图片[1]-【Udemy课程】精通嵌入式Rust裸机编程:FFI接口、Crate管理与项目实战 | Mastering Embedded Rust Bare Metal, FFI, Crates, Projects-幻仿编程

你将学到的内容

  • 从零开始学习 Rust 编程语言
  • 从头构建你的第一个裸金属 Rust 应用
  • 学习如何配置 Rust 工具链,以构建运行在 ARM Cortex‑M 微控制器上的固件
  • 编写自己的链接脚本和启动文件,深入理解嵌入式 Rust 中的内存布局与启动过程
  • 使用 cargo‑binutils 检查和分析 ELF 文件
  • 使用 VS Code 搭建现代高效的工作流,实现对嵌入式目标的构建、烧录和调试
  • 使用并理解核心的嵌入式 Rust crates
  • 在资源受限的环境中高效记录日志与调试
  • 使用 cortex‑m 与 cortex‑m‑rt crates 操作 ARM Cortex 外设(如 SysTick、ITM)
  • Rust FFI:创建安全的 Rust API 与现有 C 库对接,让 Rust 更容易融入已有的 C 代码库
  • 学习在 Rust 与 C 之间安全地传递结构体、字符串和枚举,保持类型安全与可控性
  • 将 Rust 函数暴露给 C 调用,使用 unsafe 与 FFI 概念安全管理跨语言互操作
  • 一步步使用 Rust 构建真实的《Flappy Bird》游戏应用
  • 使用 embedded‑hal trait 编写硬件无关的驱动,使代码可在多个微控制器平台间迁移
  • 对接真实传感器(MPU6050)以控制游戏机制
  • 将代码组织为清晰、可维护的模块
  • 使用 STM32 HAL crate 通过安全的 Rust 抽象轻松配置和控制微控制器外设
  • 编写通用的嵌入式代码

先决条件

  • 不需要任何 Rust 编程经验,课程从零开始教学
  • 具备基本的微控制器概念
  • 具备任意编程语言的基础知识
  • 如果想在真实的嵌入式目标上运行代码,需要准备文中列出的硬件与组件

课程简介

==> 想为你的技术栈再添一种嵌入式编程语言吗?试试 Rust——绝对不会让你失望! <==

本课程是使用 Rust 在基于 ARM Cortex‑M 系列(如 STM32)的微控制器上进行开发的入门指南,即使你是嵌入式系统新手也能轻松上手。

这是一门全动手实战课程,带你从零开始,逐步走向 STM32 上的真实嵌入式 Rust 开发。每个视频都在前一个的基础上递进,帮助你一步步完成从裸金属代码到高级主题(如 FFI、crates、驱动开发、trait)的学习。非常适合 Rust 与嵌入式系统的初学者。

为什么选择 Rust 进行嵌入式开发?

Rust 通过以下机制防止常见的内存错误(如空指针解引用、缓冲区溢出、使用已释放内存):

  • 所有权模型:Rust 对所有权、借用和生命周期的严格规则,能够阻止大多数意外的内存误用。
  • 类型安全:Rust 的类型系统确保数据访问的正确性,并通过强制变量使用模式防止某些非法的内存访问。

得益于 Cargo(Rust 官方的包管理器),你只需在项目中加入外部库(即 “crate”),就能像插件一样轻松扩展功能。

你将学到什么?

本课程将帮助你掌握以下内容:

硬件需求

注意:如果你已经拥有一块微控制器开发板,完全可以继续使用它。本课程的设计足够通用,概念与步骤可适配大多数开发板,只需做少量微调。但若想获得与讲师完全相同的体验,建议使用下列推荐硬件。

1) 微控制器开发板

选项 1:基于 STM32F303 的板子 (推荐)

  • 本课程主要使用 Fastbit STM32 Nano 开发板,搭载 STM32F303 微控制器并内置 MPU6050 传感器。

选项 2:任意 STM32 微控制器板

  • 只要是基于 STM32 的开发板均可使用。课程内容已做适配,能够配合你手头的具体 STM32 板子进行学习。

2) 基于 SWD 的调试器

  • 需要一款支持 SWD(Serial Wire Debug)的调试器,用于对 STM32 微控制器进行烧录和实时调试。

3) LCD Shield

  • 在其中一个项目中需要使用 TFT LCD 模块进行实验。课程采用 Fastbit 1.28″ TFT LCD(8 位并行接口,基于 GC9A01 驱动),你也可以使用相同或兼容的其他模块。

4) MPU6050 传感器

软件需求

适合人群

  • 希望将 Rust 作为 C/C++ 替代或与现有代码共存的嵌入式开发者
  • 想把 Rust 技能用于底层硬件项目、学习嵌入式编程的 Rust 爱好者
  • 对嵌入式系统零基础、渴望从头构建实战技能的学习者
  • 想为自己的技术栈再添一种嵌入式语言?试试 Rust,绝不会让你失望
共 166 节课程 • 总时长 22 小时 26 分钟
第一章 入门
1. 欢迎3分43秒
第二章 Rust 工具链安装
1. 主机工具链安装5分59秒
2. 工具链组件与一级目标的三元组3分28秒
3. 安装VS Code集成开发环境34秒
4. 使用Cargo创建Rust项目及重要VS Code扩展9分20秒
5. 重要工具:rustfmt、cargo fix 和 Clippy14分16秒
第三章 Rust 基础快速入门核心概念
1. Rust与C++内存安全保障对比 第1部分16分7秒
2. 变量与数值数据类型15分5秒
3. 字节字面量4分26秒
4. 字符与Unicode表示5分52秒
5. 静力学5分59秒
6. 常量2分53秒
7. Rust与CC++内存安全对比 第2部分7分15秒
8. 数组10分59秒
9. 引用9分57秒
10. 借用(不可变引用与可变引用)10分28秒
11. 切片数据类型19分27秒
12. if..else 作为语句和表达式10分8秒
13. 匹配语句15分55秒
14. if..let语句4分57秒
15. Rust与CC++内存安全对比第3部分9分30秒
16. 比较与逻辑运算符7分23秒
17. 位运算符7分30秒
18. 字符串19分52秒
19. UTF8编码字符串4分54秒
20. 字符串字面量类型(&str)8分55秒
21. 函数声明与参数13分34秒
22. 结构7分26秒
23. 打印结构4分32秒
24. 使用默认值初始化结构体5分19秒
25. 将结构体变量传递给函数1分58秒
26. 为结构体创建方法10分52秒
27. 结构体关联函数(构造函数)8分22秒
28. 枚举21分6秒
29. 枚举类型的方法与关联函数10分41秒
30. 期权交易15分25秒
31. 结果T,E1分33秒
32. 使用Result类型进行错误处理7分58秒
33. 使用误差传播5分56秒
34. 泛型14分44秒
第四章 交叉编译
1. 关于硬件1分38秒
2. 目标架构交叉编译入门8分47秒
3. 练习001 为最基础的Rust程序生成ELF文件 第1部分15分17秒
4. 为最基础的 Rust 程序生成 ELF 文件 第2部分11分19秒
5. 关于“never”类型(!)5分13秒
6. 使用 cargo-binutils 检查 ELF 文件5分8秒
第五章 为裸机Rust程序编写启动代码和链接器脚本
1. 编写启动代码第1部分5分24秒
2. 链接器、链接器标志与链接器脚本详解6分44秒
3. 从零开始编写链接器脚本第1部分[内存]12分19秒
4. 程序中的不同数据类型7分44秒
5. 从零开始编写链接器脚本 第2部分 [SECTIONS]7分53秒
6. 从零开始编写链接器脚本第3部分23分4秒
7. 编写启动代码第二部分 向量表18分15秒
8. 编写启动代码第三部分[extern C]10分31秒
9. 编写启动代码第4部分 [默认处理程序]10分21秒
10. 编写启动代码第5部分 [复位处理程序]6分43秒
11. Rust中的原始指针16分46秒
12. 编写启动代码第6部分 [复位处理程序]8分23秒
第六章 Flash和Debug
1. 将代码烧录到目标硬件-1 [安装STM32CubeCLT]2分58秒
2. 向目标硬件烧录代码-2 [VsCode与cortex-debug配置]18分18秒
3. 使用probe.rs工具刷写代码4分36秒
第七章 练习002 使用中断处理LED的裸机Rust应用
1. 介绍2分8秒
2. 练习实现第一部分7分6秒
3. 练习实现 第2部分5分48秒
4. 练习实现第3部分10分32秒
5. 练习实现 第4部分5分31秒
6. 练习实现 第5部分12分48秒
7. 练习实现第6部分7分53秒
8. 练习实现第7部分与LED模块测试2分37秒
9. 不安全块与不安全函数7分8秒
10. 注释与生成文档 第2部分 [! 内部文档]13分56秒
11. 注释与生成文档第一部分 外部文档2分9秒
12. 练习实现第8部分:编写按钮模块8分40秒
13. 练习实现第9部分:按钮中断编码9分
14. 练习实现 第10部分10分48秒
15. 练习实现 第11部分7分36秒
16. 练习实现第12部分9分15秒
17. 练习实现第13部分9分36秒
18. 练习实现第14部分 测试按钮中断2分4秒
第八章 练习003 使用外部crate cortex-m-rt和cortex-m
1. 什么是crate6分32秒
2. 嵌入式系统的重要组件11分38秒
3. 练习介绍2分16秒
4. Cortex-m-rt 库详解9分34秒
5. Crate版本号语法8分5秒
6. 恐慌处理库6分2秒
7. 使用Cortex-M库生成Systick时基20分5秒
8. 测试SysTick时基生成3分54秒
第九章 练习004 ITM打印
1. 练习004 介绍1分4秒
2. 仪器跟踪宏单元9分20秒
3. 练习实现18分25秒
4. 重构与测试9分51秒
5. 临界区9分38秒
6. 互斥锁与引用计数单元13分53秒
第十章 Rust 外部函数接口
1. 处理Rust与外部语言代码的步骤11分58秒
2. Rust与C语言类型映射3分9秒
3. Rust中C语言的void和void指针对应物7分2秒
4. C语言void和void指针的Rust等效实现续4分51秒
5. C语言字符串的Rust表示6分33秒
6. Rust 从 C 语言接收和处理字符串(coreffiCstr)8分9秒
7. Rust向C语言传递字符串(stdffiCString)8分42秒
8. 结构体内存布局 Rust 与 C 对比6分27秒
9. 从Rust向C传递结构体6分17秒
第11章 练习005 Flappy Bird游戏实现(Rust + C)
1. Flappy Bird应用入门7分18秒
2. 实现外设配置与代码生成(8位并行LCD)18分10秒
3. 实现基于SPI的LCD外设配置与代码生成11分47秒
4. 从Rust项目编译C源文件的工作原理7分15秒
5. 编写构建脚本第一部分4分24秒
6. 编写build.rs第二部分9分45秒
7. 编写 build.rs 第3部分12分32秒
8. 编写build.rs第4部分6分11秒
9. 编写 build.rs 第5部分5分12秒
10. 系统滴答定时器中断生成测试项目4分22秒
11. 将驱动文件复制到项目中1分14秒
12. 分析弱符号链接相关问题4分22秒
13. 修复弱符号链接相关问题并测试项目8分20秒
14. 游戏功能启动界面实现第1部分3分24秒
15. 游戏功能启动界面实现第2部分10分3秒
16. 游戏功能启动界面实现第3部分3分39秒
17. 游戏功能启动屏幕实现第4部分10分1秒
18. 游戏功能开始屏幕实现第5部分1分32秒
19. 游戏功能开始屏幕实现第6部分9分58秒
20. 游戏功能启动界面实现第7部分6分11秒
21. 游戏功能启动界面实现第8部分5分44秒
22. 游戏功能启动界面实现第9部分2分27秒
23. 游戏功能启动界面实现第10部分3分15秒
24. 游戏功能启动界面实现第11部分6分2秒
25. 游戏功能启动界面实现第12部分3分9秒
26. 游戏功能启动界面实现第13部分1分56秒
27. 游戏功能障碍物移动实现第1部分9分33秒
28. 游戏功能障碍物移动实现第2部分5分39秒
29. 游戏功能障碍物移动实现第3部分4分29秒
30. 游戏功能障碍物移动实现第4部分1分49秒
31. 游戏功能障碍物移动实现第5部分3分3秒
32. 游戏功能障碍物移动实现第6部分5分52秒
33. 游戏功能 玩家移动实现 第1部分10分25秒
34. 游戏功能 玩家移动实现 第2部分8分55秒
35. 游戏功能碰撞检测实现第一部分3分4秒
36. 游戏功能碰撞检测实现第2部分8分50秒
37. 游戏功能碰撞检测实现第3部分3分13秒
第12章 使用嵌入式硬件抽象层创建硬件无关设备驱动
1. 关于硬件无关驱动开发10分2秒
2. MPU6050驱动库实现第1部分2分52秒
3. MPU6050驱动包实现第2部分8分50秒
4. MPU6050驱动库实现第3部分6分52秒
5. MPU6050驱动库实现第4部分3分58秒
6. MPU6050驱动板实现第5部分11分35秒
7. MPU6050驱动库实现第6部分2分14秒
8. MPU6050驱动库实现第7部分4分45秒
9. MPU6050驱动板实现第8部分6分48秒
10. MPU6050驱动板实现第9部分6分27秒
11. 为驱动程序添加功能11分25秒
第13章 使用Hal crate和PAC
1. 练习005 传感器读取 第1部分14分10秒
2. PAC和HAL11分56秒
3. I2C初始化编码第1部分17分29秒
4. I2C初始化编码第2部分15分30秒
5. I2C初始化编码第3部分11分22秒
第14章 使用特质
1. 通过Trait实现处理输入设备 第1部分8分48秒
2. 通过Trait实现处理输入设备 第2部分8分5秒
3. 通过Trait实现处理输入设备 第3部分4分16秒
第15章 日志记录
1. 使用RTT和probe.rs记录数据12分58秒
2. 使用RTT测试记录数据1分59秒
第16章 练习005 Flappy Bird游戏实现(Rust + C)续
1. 游戏功能 计算滚转角14分4秒
2. 游戏特性:地图滚动角度映射至小鸟位置4分15秒
3. 更新小鸟Y坐标5分37秒
4. 关于传感器噪声的说明3分22秒
5. 测试最终应用程序1分59秒
6. 学生待办事项1分
1. 关于课程更新与获取

如何获取本站课程?

免费获取方式:在本站签到、评论、发布文章等可获取积分,通过积分购买课程。
付费获取方式:购买本站【月度会员】或【永久会员】。

课程购买后是否支持更新?
是的,所有课程均提供免费更新服务。 我们致力于为您提供持续的学习支持。

如何获取更新?
单独购买的课程: 您可在“个人中心”随时查看购买记录及最新下载链接,轻松获取免费更新。
永久会员: 您可在相关页面直接查看最新下载地址,随时免费获取更新。
非永久会员(重要提示):通过会员权限下载的课程,在“个人中心”可能不显示具体订单记录。

因此,会员到期后,您将无法通过“个人中心”查看最新下载链接。
解决方案建议:续费会员: 恢复会员权限后,即可再次查看所有最新下载链接。
妥善保存下载链接: 我们强烈建议您在会员有效期内,保存好本站分享的课程下载链接。通常,课程更新内容会直接补充到原有分享链接中。
2. 关于课程资料

课程下载后资料是否齐全?
绝大部分课程资料齐全。 我们尽力确保您获得完整的学习资源。
少数情况说明: 极少数课程可能存在资料缺失情况。针对 Udemy 课程,资料形式多样,请知悉:本地文件(随视频下载): 此类课件通常随视频一并提供,下载即得。

本地文件(含链接): 课件文件中会提供资料下载链接,您需自行访问链接下载。此类资料通常也可获取。
在线平台存储(如 GitHub): 讲师会在视频中说明资料获取方式(如访问特定平台),请您按指引自行下载。
③ Udemy 平台内资料: 部分资料需登录您在 Udemy 购买的账号才能查看。此类资料本站无法提供,除非您自行在 Udemy 平台购买该课程。
3. 关于课程字幕

是否提供中英文双字幕?原本无字幕的课程是否支持?
是的,本站下载的所有课程均提供中英文双字幕,包括 Udemy 原本无任何字幕的课程。 我们致力于提升您的学习体验。

Udemy 字幕现状与本站服务:
○ Udemy 绝大多数课程本身不提供任何字幕。在少数提供字幕的课程中,也几乎不提供中文字幕。

本站字幕服务流程:
Udemy 有字幕: 我们会将其翻译成中文字幕,与英文字幕一同提供。
Udemy 无字幕: 我们会通过技术手段识别生成英文字幕,再翻译成中文字幕,一同提供给您。

字幕服务重要说明(请您理解):
翻译精度: 字幕翻译采用谷歌翻译引擎完成,虽不及人工翻译精准,但足以保障您正常学习理解。
若您仍然觉得字幕精度较低: 可联系站长针对性润色字幕(该服务仅限本站会员)。
4. 关于视频存储与使用

视频存储位置与观看/下载方式?
本站所有课程视频均存储于网盘平台。
您支持在线观看: 可在网盘内直接播放学习。
您支持下载: 可将视频下载至本地,使用播放器播放,更灵活便捷。

主要存储网盘:百度网盘

视频格式与加密情况?
本站所有课程视频均以 MP4 或 MKV 通用格式提供。
视频文件不加密,您可自由分享(请遵守相关法律法规)。
播放建议: 使用本地播放器(如 PotPlayer)播放时,可同时加载中英文字幕文件,学习体验更佳。您可参考我们提供的《PotPlayer 挂载中英双字幕教程》。
5. 关于售后支持与退款政策

遇到问题如何联系?
无论您在购买前或购买后遇到任何疑问,都欢迎随时联系站长。 我们将竭诚为您服务。

退款政策说明:
原则: 由于虚拟商品(课程、资料等)具有可复制性,一旦购买成功并完成下载,原则上不支持退款。

请您在购买前仔细阅读课程介绍、资料说明及本条款,确认符合您的需求。 如有不确定之处,欢迎先行咨询站长。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容