目录
目 录
开篇 1
第1章 Rust语言简介 2
1.1 Rust语言概述 3
1.2 Rust语言特性 4
1.3 Rust语言发展历程和现状 6
1.4 Rust语言与C/C++的比较 8
1.5 Rust语言学习资源 10
1.6 总结与讨论 10
1.7 练习 11
第2章 初识Rust 12
2.1 IDE环境介绍 12
2.2 安装Rust 14
2.2.1 Windows安装 14
2.2.2 Linux或macOS安装 14
2.2.3 故障排除 15
2.2.4 更新与卸载 15
2.2.5 本地文档 16
2.3 第一个Rust程序:Hello world 16
2.4 Cargo介绍 17
2.4.1 创建项目 17
2.4.2 编译并运行Cargo项目 18
2.4.3 发布 19
2.4.4 依赖 19
2.5 调试Rust 20
2.6 总结与讨论 21
2.7 练习 22
第3章 编程基础概念 23
3.1 关键字 23
3.2 变量 23
3.3 常量 25
3.4 数据类型 25
3.5 函数 28
3.6 注释 29
3.7 控制流 30
3.8 总结与讨论 34
3.9 练习 34
第4章 所有权 35
4.1 栈与堆 35
4.2 所有权规则 36
4.3 变量作用域 37
4.4 内存与分配 38
4.5 变量与数据交互的方式:移动(move) 39
4.6 变量与数据交互的方式:克隆(clone) 40
4.7 所有权与函数 41
4.8 引用与借用 42
4.9 可变引用 42
4.10 悬垂引用 45
4.11 总结与讨论 47
4.12 练习 48
第5章 结构体 49
5.1 结构体实例 49
5.2 使用结构体 50
5.3 结构体方法 51
5.4 关联函数 53
5.5 总结与讨论 53
5.6 练习 54
第6章 枚举 55
6.1 枚举值 55
6.2 Option枚举 56
6.3 match控制流 58
6.4 绑定值的模式 60
6.5 匹配Option<T> 61
6.6 匹配的一些知识点 61
6.7 if let控制流 62
6.8 总结与讨论 63
6.9 练习 64
第7章 模块系统 65
7.1 包和crate 65
7.2 模块 66
7.3 引用模块项目的路径 68
7.4 使用pub关键字 69
7.5 使用use关键字 71
7.6 使用as关键字 71
7.7 使用第三方的包 72
7.8 总结与讨论 72
7.9 练习 74
第8章 练手:写个猜数字游戏 75
8.1 处理输入和输出 75
8.2 生成一个秘密数字 77
8.3 比较 79
8.4 循环猜数 83
8.5 总结与讨论 84
8.6 练习 84
第9章 嵌入式系统简介 85
9.1 嵌入式系统概述 85
9.2 汽车中的嵌入式设备 86
9.3 嵌入式系统的组成 88
9.4 汽车中的嵌入式技术 90
9.5 嵌入式系统开发流程 91
9.6 汽车嵌入式软件开发 93
9.7 嵌入式系统常见的问题 97
9.8 Rust语言在嵌入式系统中的优势 98
9.9 总结与讨论 98
9.10 练习 99
第10章 Rust在Linux中的应用 100
10.1 在Windows系统下编译Linux程序 100
10.2 命令行程序 103
10.3 my_ls程序 103
10.4 错误处理 105
10.5 优化my_ls 108
10.6 总结与讨论 109
10.7 练习 109
第11章 Rust的文件操作 110
11.1 Linux的文件系统 110
11.2 Rust创建文件 111
11.3 读写文件 113
11.4 设置文件指针指向的位置 118
11.5 总结与讨论 120
11.6 练习 120
第12章 多线程处理 121
12.1 进程与线程 121
12.2 闭包 122
12.3 迭代器 131
12.4 线程 134
12.5 多线程共享状态 143
12.6 总结与讨论 148
12.7 练习 149
第13章 汽车电子生态环境介绍 150
13.1 汽车电子主要供应商 151
13.1.1 汽车电子Tier 1供应商 151
13.1.2 汽车电子国内外主要芯片供应商 152
13.2 汽车电子应用场景 154
13.3 MCU简介 159
13.3.1 车规级MCU 160
13.3.2 ECU、MCU、VCU、HCU、PCU…… 161
13.4 车规级MCU的分类及其主要产品 164
13.4.1 车规级MCU的分类 164
13.4.2 车规级MCU的主要厂商及其产品 165
13.5 总结与讨论 172
13.6 练习 173
第14章 Rust语言在MCU中的应用 174
14.1 Rust语言MCU开发环境搭建 174
14.2 Rust嵌入式开发环境的初步使用 184
14.3 初级应用:点亮LED 192
14.4 进阶应用:实现LED闪烁 202
14.5 进阶应用:按键控制 207
14.6 进阶应用:按键中断 211
14.7 CAN通信 217
14.8 总结与讨论 226
14.9 练习 227
第15章 Rust在TCxx硬件平台上的开发 228
15.1 工具链说明 229
15.2 硬件平台 232
15.3 TC375 Lite Kit Example 234
15.4 总结与讨论 258
15.5 练习 259
第16章 Rust进阶应用之DDS 260
16.1 DDS中间件简介 260
16.2 DDS的发布/订阅模式 262
16.3 DDS在汽车电子中的应用 263
16.4 DDS发布/订阅模式的Rust实现 264
16.5 总结与讨论 275
16.6 练习 276
第17章 汽车电子开发展望 277
17.1 汽车电子开发现状 277
17.2 汽车电子中Rust的发展机会 279
17.3 反思与计划 281
附录 关键字 283