• 投稿

《精通嵌入式Rust:裸机编程、FFI、Crates与项目实战》

2564
0
2026-07-02 14:47:18
37
18
214
2
-
视频选集
(1/166)
1_1. 欢迎
03:44
2_3. 主机端工具链安装
05:59
2_4. 工具链组件与一级目标平台的目标三元组
03:29
2_5. 安装 VS Code IDE
00:35
2_6. 使用 Cargo 创建 Rust 项目及重要的 VS Code 扩展
09:21
2_7. 重要工具:rustfmt、cargo fix、Clippy
14:16
3_8. Rust 如何确保内存安全(与 C C++ 对比)第 1 部分
16:08
3_9. 变量与数值数据类型
15:05
3_10. 字节字面量
04:27
3_11. 字符与 Unicode 表示
05:53
3_12. 静态变量
06:00
3_13. 常量
02:54
3_14. Rust 如何确保内存安全(与 C C++ 对比)第 2 部分
07:16
3_15. 数组
11:00
3_16. 引用
09:58
3_17. 借用(&T 和 &mut T)
10:29
3_19. 切片数据类型
19:28
3_20. if..else 作为语句和表达式
10:09
3_21. match 语句
15:56
3_22. if..let 语句
04:58
3_23. Rust 如何确保内存安全(与 C C++ 对比)第 3 部分
09:31
3_24. 比较和逻辑运算符
07:24
3_25. 位运算符
07:31
3_26. 字符串
19:52
3_27. UTF-8 编码字符串
04:55
3_28. 字符串字面量类型(&str)
08:55
3_29. 函数声明与参数
13:35
3_30. 结构体
07:27
3_31. 打印结构体
04:33
3_32. 使用默认值初始化结构体
05:20
3_33. 将结构体变量传递给函数
01:59
3_34. 为结构体创建方法
10:52
3_35. 结构体的关联函数(构造函数)
08:23
3_36. 枚举
18:26
3_37. 枚举类型的方法和关联函数
08:57
3_38. Option《T》
13:29
3_39. Result《T, E》
01:34
3_40. 使用 Result 类型进行错误处理
06:47
3_41. 错误传播(使用问号 运算符)
05:10
3_42. 泛型
14:44
4_43. 关于硬件
01:27
4_44. 目标架构的交叉编译简介
07:21
4_45. 练习 001:为基础 Rust 程序生成 ELF 文件 第 1 部分
12:47
4_46. 为基础 Rust 程序生成 ELF 文件 第 2 部分
09:38
4_47. 关于 never 类型(!)
04:26
4_48. 使用 cargo-binutils 检查 ELF 文件
04:16
5_49. 编写启动代码 第 1 部分
04:35
5_50. 关于链接器、链接器标志和链接器脚本
05:42
5_51. 从零开始编写链接器脚本 第 1 部分 [内存]
10:23
5_52. 程序中的不同类型的数据
06:19
5_53. 从零开始编写链接器脚本 第 2 部分 [段]
06:33
5_54. 从零开始编写链接器脚本 第 3 部分
19:11
5_55. 编写启动代码 第 2 部分 [向量表]
15:20
5_56. 编写启动代码 第 3 部分 [extern C ]
10:32
5_57. 编写启动代码 第 4 部分 [默认处理函数]
08:42
5_58. 编写启动代码 第 5 部分 [复位处理函数]
05:34
5_59. Rust 中的裸指针
14:04
5_60. 编写启动代码 第 6 部分 [复位处理函数]
06:48
6_62. 烧写代码到目标硬件-1 [安装 STM32CubeCLT]
02:25
6_63. 烧写代码到目标硬件-2 [VsCode 和 cortex-debug 设置]
13:11
6_64. 使用 probe.rs 工具烧写代码
03:29
7_65. 简介
01:34
7_66. 练习实现 第 1 部分
05:04
7_67. 练习实现 第 2 部分
04:44
7_68. 练习实现 第 3 部分
09:06
7_69. 练习实现 第 4 部分
03:57
7_70. 练习实现 第 5 部分
10:57
7_71. 练习实现 第 6 部分
06:50
7_72. 练习实现 第 7 部分与测试 LED 模块
02:19
7_73. Unsafe 块 与 Unsafe 函数
05:40
7_74. 注释与生成文档 第 1 部分 [外部文档]
11:20
7_75. 注释与生成文档 第 2 部分 [! 内部文档]
01:39
7_76. 练习实现 第 8 部分;编写按钮模块
07:27
7_77. 练习实现 第 9 部分;编写按钮中断代码
07:32
7_78. 练习实现 第 10 部分
09:15
7_79. 练习实现 第 11 部分
06:23
7_80. 练习实现 第 12 部分
07:23
7_81. 练习实现 第 13 部分
07:28
7_82. 练习实现 第 14 部分 测试按钮中断
01:37
8_83. 什么是 crate
05:43
8_84. 嵌入式系统的重要 crate
09:44
8_85. 练习简介
01:51
8_86. cortex-m-rt crate 解释
08:09
8_87. Crate 版本号语法
06:34
8_88. Panic 处理 crates
06:03
8_89. 使用 cortex-m crate 生成 SysTick 时基
20:06
8_90. 测试 SysTick 时基生成
03:55
9_92. 练习 004 简介
01:05
9_93. 仪器化跟踪宏单元(ITM)
09:21
9_94. 练习实现
18:26
9_95. 重构与测试
09:52
9_96. 临界区
09:39
9_97. Mutex 和 RefCell
13:54
10_98. 处理 Rust 与外部语言代码的步骤
11:59
10_99. Rust 和 C 之间的类型映射
03:10
10_100. C 语言中 void 和 void 指针的 Rust 等价物
07:03
10_101. C 语言中 void 和 void 指针的 Rust 等价物(续)
04:52
10_102. C 语言字符串的 Rust 表示
06:34
10_103. Rust 接受并处理来自 C 的字符串(core双冒号ffi双冒号CStr)
08:10
10_104. Rust 向 C 发送字符串(std双冒号ffi双冒号CString)
08:43
10_105. 结构体内存布局:Rust 与 C 的对比
06:28
10_106. 从 Rust 向 C 传递结构体
06:18
11_107. Flappy bird 应用程序简介
07:18
11_108. 实现:外设配置与代码生成(8 位并行 LCD)
18:11
11_109. 实现:外设配置与代码生成(基于 SPI 的 LCD)
11:48
11_110. 将驱动文件复制到项目中
01:15
11_111. 从 Rust 项目编译 C 源文件:其工作原理
07:16
11_112. 编写 build.rs 第 1 部分
04:25
11_113. 编写 build.rs 第 2 部分
09:46
11_114. 编写 build.rs 第 3 部分
12:33
11_115. 编写 build.rs 第 4 部分
06:12
11_116. 编写 build.rs 第 5 部分
05:13
11_117. 测试项目的 SysTick 中断生成
04:23
11_118. 分析与弱符号链接相关的问题
04:23
11_119. 修复与弱符号链接相关的问题并测试项目
08:21
11_120. 游戏功能:开始界面实现 第 1 部分
03:25
11_121. 游戏功能:开始界面实现 第 2 部分
10:04
11_122. 游戏功能:开始界面实现 第 3 部分
03:40
11_123. 游戏功能:开始界面实现 第 4 部分
10:02
11_124. 游戏功能:开始界面实现 第 5 部分
01:33
11_125. 游戏功能:开始界面实现 第 6 部分
09:59
11_126. 游戏功能:开始界面实现 第 7 部分
06:12
11_127. 游戏功能:开始界面实现 第 8 部分
05:45
11_128. 游戏功能:开始界面实现 第 9 部分
02:28
11_129. 游戏功能:开始界面实现 第 10 部分
03:16
11_130. 游戏功能:开始界面实现 第 11 部分
06:03
11_131. 游戏功能:开始界面实现 第 12 部分
03:10
11_132. 游戏功能:开始界面实现 第 13 部分
01:57
11_133. 游戏功能:障碍物移动实现 第 1 部分
09:34
11_134. 游戏功能:障碍物移动实现 第 2 部分
05:40
11_135. 游戏功能:障碍物移动实现 第 3 部分
04:30
11_136. 游戏功能:障碍物移动实现 第 4 部分
01:50
11_137. 游戏功能:障碍物移动实现 第 5 部分
03:04
11_138. 游戏功能:障碍物移动实现 第 6 部分
05:53
11_139. 游戏功能:玩家移动实现 第 1 部分
10:26
11_140. 游戏功能:玩家移动实现 第 2 部分
08:56
11_141. 游戏功能:碰撞检测实现 第 1 部分
03:05
11_142. 游戏功能:碰撞检测实现 第 2 部分
08:51
11_143. 游戏功能:碰撞检测实现 第 3 部分
03:14
12_144. 关于硬件无关驱动开发
10:03
12_145. MPU6050 驱动 crate 实现 第 1 部分
02:53
12_146. MPU6050 驱动 crate 实现 第 2 部分
08:51
12_147. MPU6050 驱动 crate 实现 第 3 部分
06:53
12_148. MPU6050 驱动 crate 实现 第 4 部分
03:59
12_149. MPU6050 驱动 crate 实现 第 5 部分
11:36
12_150. MPU6050 驱动 crate 实现 第 6 部分
02:15
12_151. MPU6050 驱动 crate 实现 第 7 部分
04:46
12_152. MPU6050 驱动 crate 实现 第 8 部分
06:49
12_153. MPU6050 驱动 crate 实现 第 9 部分
06:28
12_154. 向驱动 crate 添加 [features]
11:26
13_155. 练习 005:从传感器读取数据 第 1 部分
14:11
13_156. PAC 和 HAL
11:57
13_157. I2C 初始化代码编写 第 1 部分
17:30
13_158. I2C 初始化代码编写 第 2 部分
15:31
13_159. I2C 初始化代码编写 第 3 部分
11:23
14_160. 通过 Trait 实现处理输入设备 第 1 部分
08:49
14_161. 通过 Trait 实现处理输入设备 第 2 部分
08:06
14_162. 通过 Trait 实现处理输入设备 第 3 部分
04:17
15_163. 使用 RTT 和 probe.rs 记录数据
12:59
15_164. 使用 RTT 记录数据测试
02:00
16_165. 游戏功能:计算横滚角
14:05
16_166. 游戏功能:将横滚角映射到小鸟位置
04:16
16_167. 更新小鸟 Y 位置
05:38
16_168. 关于传感器噪声的说明
03:23
16_169. 测试最终应用程序
02:00
16_170. 留给学生的待办事项
01:01
客服
顶部
赛事库 课堂 2021拜年纪