《Rust汽车电子开发实践》
本书内容
《Rust汽车电子开发实践》专注于介绍Rust编程语言在汽车电子领域的应用。随着汽车行业向智能化、电动化和网联化的快速演进,传统的C/C++编程语言在内存安全、数据竞争等问题上逐渐显露出局限性。Rust语言以其独特的内存安全保证、现代的并发处理能力和跨平台的兼容性,为汽车电子软件开发提供了新的解决方案。
《Rust汽车电子开发实践》从Rust语言的基本语法和特性讲起,逐步深入到其在嵌入式系统中的应用,尤其关注汽车电子领域。书中详细介绍了Rust的所有权系统、类型系统、并发编程以及错误处理等核心概念,同时探讨了Rust在汽车电子领域的具体应用。
本书作者
司江平
曾担任多家公司CPO、CTO等研发管理职务,服务国内外多个世界500强企业;拥有丰富的嵌入式、大数据和人工智能等产品的实战经验,并拥有多项发明专利。
周炯皓
拥有多年一线嵌入式软件开发经验,参与过多个大型软件项目的开发;拥有多年物联网产品与工控设备的实战经验,独立负责过多个汽车电子工具链相关产品的研发与落地。
张 超
毕业于国内知名“双一流”高校,曾获得多个国家级竞赛奖项,参与过多个汽车电子相关项目的研发。
本书读者
《Rust汽车电子开发实践》不仅理论知识丰富,还提供了大量的代码示例和项目实践。无论是初学者还是有经验的开发者,都能通过本书深入了解并掌握Rust在汽车电子领域的应用。
本书目录
开篇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章 初识Rust12
2.1 IDE环境介绍12
2.2 安装Rust14
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 world16
2.4 Cargo介绍17
2.4.1 创建项目17
2.4.2 编译并运行Cargo项目18
2.4.3 发布19
2.4.4 依赖19
2.5 调试Rust20
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 匹配Option61
6.6 匹配的一些知识点61
6.7 if let控制流62
6.8 总结与讨论63
6.9 练习64
第7章 模块系统65
7.1 包和crate65
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_ls108
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 车规级MCU160
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 初级应用:点亮LED192
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 Example234
15.4 总结与讨论258
15.5 练习259
第16章 Rust进阶应用之DDS260
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
本书特色
本文摘自《Rust汽车电子开发实践》,获出版社和作者授权发布。
Rust汽车电子开发实践——jd