书籍详情

嵌入式软件的时间分析:汽车行业领域的嵌入式软件理论、分析及实践

嵌入式软件的时间分析:汽车行业领域的嵌入式软件理论、分析及实践

作者:[英]皮特·格利瓦(Peter Gliwa)

出版社:清华大学出版社

出版时间:2022-01-01

ISBN:9787302596530

定价:¥139.00

购买这本书可以去
内容简介
  汽车中软件部分的比重正稳步提升。 软件中的运行时行为-Timing(时间性能测量)这一部分与此同时呈爆发性增长。造成此状况的原因有很多:软件中越来越多的部分与安全性相关,系统本身变得越来越复杂,而且大多数情况下的多核应用比预期的要困难。现代汽车领域中的控制器单元仍旧不能忽略时间性能测量这一主题。时间性能测量问题分析及解决的成本毫无疑问是非常高的,尤其是在项目后期。此外,安全规范如 ISO 26262 规定了涉及嵌入式软件时间性能的要求。这本书介绍了基础内容,以便于用正确的时间性能测量方法去开发软件或者解决严重的时间性能测量问题。它同时着眼于各种各种分析方法,涵盖了开发过程中的所有阶段,并通过大量实际范例以及针对开发者工作的具体建议来为其理论奠定基础。 即使书中大部分实际范例出自汽车行业领域,但其全部内容几乎都可以直接转之应用于其他领域。
作者简介
  皮特·格利瓦(Peter Gliwa),格利瓦公司CEO 皮特·格利瓦是汽车嵌入式系统领域著名专家,在汽车电子行业的操作系统及时间分析领域有超过二十年的工作经验,他和其领导的GLIWA(格利瓦)公司为多家整车制造商及大型供应商提供过大量相关主题的咨询服务,同时作为AUTOSAR(汽车开放系统架构)联盟开发合作伙伴领导相关项目组的开发工作。其曾在斯图加特专科学院作过微型计算机专业讲师并定期举办行业培训课程。
目录
 
 
第1章  基础知识 1
1.1  实时系统 1
1.2  阶段性的软件开发模型——V-Model 1
1.3  编译过程:从模型到可执行文件 3
1.3.1  基于模型的软件开发和代码生成 3
1.3.2  C 预编译器 3
1.3.3  C 编译器 5
1.3.4  编译器执行的代码优化 6
1.3.5  汇编器 6
1.3.6  链接器 7
1.3.7  定位器 7
1.3.8  链接脚本 8
1.3.9  调试器 10
1.4  总结 12
第2章  处理器基础知识 13
2.1  处理器的构造 13
2.1.1  CISC 和 RISC 14
2.1.2  寄存器 14
2.2  代码执行 15
2.3  存储器寻址及其模式 17
2.3.1  对数据访问重要的寻址模式 18
2.3.2  跳转和调用的寻址模式 20
2.3.3  选择寻址模式 20
2.4  等待状态,突发访问 22
2.5  缓存 23
2.5.1  缓存结构和缓存行 24
2.5.2  组相联缓存及缓存逐出 25
2.6  流水线 27
2.7  中断 28
2.8  陷阱/异常 29
2.9  数据一致性 29
2.10  对比桌面处理器, 嵌入式处理器的特点 31
2.11  总结 32
第3章  操作系统 33
3.1  无操作系统: 无限循环加中断 33
3.1.1  周期中断的实现示例 33
3.1.2  轮询——无中断地实现 34
3.1.3  可扩展性 36
3.2  OSEK/VDX 36
3.2.1  任务 36
3.2.2  中断 39
3.2.3  ErrorHook 39
3.2.4  基本调度策略 39
3.3  多任务: 协作与抢占 41
3.3.1  两种追踪的图示说明(示例 1) 41
3.3.2  堆栈消耗(示例 2) 43
3.3.3  确保数据一致性 45
3.3.4  协作式多任务处理的限制 45
3.3.5  为减少OS_Schedule()调用而可实施的优化 47
3.3.6  总结 47
3.4  POSIX 47
3.4.1  进程 49
3.4.2  线程 49
3.4.3  POSIX 线程状态图 51
3.4.4  调度策略 52
3.5  总结 52
第4章  软件时间理论 53
4.1  时间参数 53
4.1.1  RTOS 调度(OSEK、AUTOSAR CP 等)时间参数 53
4.1.2  与 POSIX相关的时间参数 58
4.2  统计参数 58
4.2.1  小值和值 59
4.2.2  平均值 59
4.2.3  直方图 60
4.2.4  非定期事件的发生模式 60
4.3  CPU负载 61
4.3.1  定义 62
4.3.2  选择观测范围 64
4.3.3  扩增的 CPU 负载 65
4.3.4  使用后台任务时的 CPU 负载 66
4.4  总线负载 67
4.5  逻辑执行时间 67
4.6  总结 68
第5章  软件时间分析方法 69
5.1  概览及在不同层面上的分类 69
5.1.1  通信层级 69
5.1.2  调度层级 70
5.1.3  代码层级 71
5.2  术语定义 72
5.2.1  追踪 72
5.2.2  分析、时间测量和(再次)追踪 72
5.3  静态代码分析 73
5.3.1  基础功能和工作流 73
5.3.2  用例 75
5.3.3  静态代码分析的限制 76
5.3.4  静态代码分析专家访谈 78
5.4  代码仿真 80
5.4.1  功能与工作流 80
5.4.2  用例 81
5.4.3  静态代码仿真的限制 82
5.4.4  与代码仿真领域专家的访谈 83
5.5  运行时间测量 86
5.5.1  基本功能和工作流 86
5.5.2  用例 95
5.5.3  运行时间测量的限制 96
5.6  基于硬件的追踪 97
5.6.1  基本功能和工作流 97
5.6.2  用例 99
5.6.3  基于硬件的追踪的限制 101
5.6.4  基于硬件的追踪专家访谈 102
5.7  基于软件方法的追踪 108
5.7.1  基本功能和工作流 108
5.7.2  用例 115
5.7.3  基于测量的追踪的限制 115
5.7.4  基于测量的追踪领域专家访谈 116
5.8  调度模拟 121
5.8.1  基本功能和工作流 121
5.8.2  用例 124
5.8.3  调度模拟的限制 124
5.8.4  调度模拟专家访谈 125
5.9  静态调度分析 127
5.9.1  基本功能和工作流 128
5.9.2  用例 129
5.9.3  静态调度分析的限制 131
5.9.4  静态调度分析专家访谈 131
5.10  使用进化算法进行优化 135
5.11  时间分析方法在 V-Model中的应用 137
第6章  软件时间问题案例 139
6.1  中断都是哪来的? 139
6.2  OSEK ECC:并非选择 140
6.3  重置17 min后发生偶发崩溃 143
6.4  遗漏及重复的传感器数据 144
6.5  拉着手刹去比赛 149
6.6  实际测量得到的 WCET 比静态代码分析得到的更大 150
6.7  有时候网络管理报文来得太早了 151
6.8  系列项目中无间断的时间分析 152
6.9  时间分析使得车厂节省了1200万欧元 152
6.10  总结 153
第7章  多核及多ECU环境下的软件时间 154
7.1  多核基础知识 154
7.1.1  Amdahl vs.Gustafson——谁是对的? 155
7.1.2  CPU 核心——同构(Homogeneous)、异构(Heterogeneous)
还是锁步(Lock-step)? 155
7.1.3  锁步多核 156
7.1.4  英飞凌 AURIX——同类、异类和锁步 157
7.2  并发执行的多种类型 158
7.2.1  应用程序的并行执行 158
7.2.2  函数的并行执行 159
7.2.3  指令的并行执行 164
7.3  数据一致性,Spinlocks 165
7.3.1  确保数据一致性的理想解决方案 168
7.3.2  确保数据一致性的成本 169
7.4  存储地址克隆 170
7.5  总结 172
第8章  软件运行时间优化 174
8.1  调度层级的运行时间优化 174
8.1.1  防止跨核心通信 174
8.1.2  避免使用 ECC 任务 174
8.1.3  合理使用异构多核处理器 175
8.1.4  避免需要确保数据一致性的机制 175
8.1.5  通过优化偏移实现周期性任务的负载均衡 175
8.1.6  拆分任务 177
8.1.7  将功能迁移到执行频率较低的任务 177
8.2  针对存储器使用的运行时间优化 178
8.2.1  快速存储器的利用 178
8.2.2  数据对齐 180
8.2.3  代码对齐和缓存优化 181
8.3  代码层级的运行时间优化 182
8.3.1  优化频繁调用的小函数 184
8.3.2  优化根函数sqrt  184
8.3.3  AURIX的线性内核 ID  187
8.3.4  计算至达到饱和 190
8.3.5  处理器特定的通用指令 191
8.3.6  编译器优化 192
8.4  运行时间优化总结与指南 199
第9章  开发过程中的方法技巧 202
9.1  与时间相关的各种需求 202
9.1.1  时间需求 202
9.1.2  对于方法和工具的需求 207
9.1.3  通用需求模板 208
9.2  开发期间的协作 209
9.3  软件运行时间概念、调度设计和操作系统配置 210
9.4  软件运行时间调试 210
9.5  运行时间优化 211
9.6  时间验证 211
9.6.1  测试阶段“分析” 212
9.6.2  测试阶段“POI(兴趣点)追踪” 212
9.6.3  测试阶段“情况” 212
9.6.4  测试阶段“凭经验确定空间” 212
9.7  尽早考虑后期的功能 213
9.8  终产品中的时间监测 214
9.9  一个好例子:Vitesco Technologies出品的CoReMa 215
9.10  总结 216
第10章  AUTOSAR 218
10.1  AUTOSAR CP 219
10.1.1  功能架构 219
10.1.2  软件架构、SW-C 定义和 VFB  219
10.1.3  RTE 220
10.1.4  实现、系统配置和 Runnable  221
10.2  AUTOSAR AP 221
10.2.1  功能架构 221
10.2.2  软件架构 AA 221
10.2.3  实现与系统配置 223
10.2.4  部署 224
10.2.5  执行管理和执行客户端 224
10.2.6  确定性执行和确定性客户端 224
10.2.7  POSIX调度 226
10.2.8  AUTOSARAP中的时间 227
10.3  AUTOSAR时间扩展TIMEX 229
10.3.1  目标 229
10.3.2  事件和事件链 229
10.3.3  TIMEX 要求类型 230
10.3.4  AUTOSAR/TIMEX 视角 230
10.4  AUTOSAR/ASAM 运行时间接口 ARTI  231
10.4.1  AUTOSAR ARTI  232
10.4.2  ASAM ARTI 233
10.5  技术报告“时间分析” 233
10.6  总结 234
第11章  功能安全,ISO 26262  235
11.1  基础知识 235
11.1.1  风险 235
11.1.2  SIL——安全完整性等级 235
11.1.3  脱离上下文、在上下文中、经使用验证 236
11.2  安全标准、时间及时间验证 237
11.3  时间安全所需工具 238
11.4  法律方面的考量 239
11.5  总结 240
第12章  前景 241
致谢 242
参考文献 243
 
                       
??
??
??
 
  
  
 
  
 
猜您喜欢

读书导航