Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

术语索引

本书使用了大量汽车嵌入式软件领域的技术术语。以下按主题分类整理,每个术语附简要定义和主要出现章节。


架构与设计原则

术语缩写定义主要章节
单一职责原则SRP一个模块应该只有一个理由会改变。每个模块只做一件事。2.3
开闭原则OCP对扩展开放,对修改关闭。模块在不修改已有代码的前提下可以被扩展。2.5
里氏替换原则LSP子类型必须能替换其基类型而不破坏系统正确性。1.4
接口隔离原则ISP不应强迫客户端依赖它不使用的方法。1.4
依赖反转原则DIP高层模块不应依赖低层模块,两者都应依赖抽象。1.4, 2.4
依赖注入DI模块不自己创建依赖,而是通过外部传入依赖。C语言中通过函数指针表实现。2.4
分层架构—将系统划分为若干层,每层只依赖紧邻的下层。AUTOSAR标准为四层。2.6
模块化—将系统拆分为高内聚、低耦合的独立单元。2.1
接口—模块之间的合约。在C语言中,头文件(.h)是接口的主要载体。2.2
不透明指针Opaque Pointer在头文件中前置声明结构体但隐藏其内部字段的封装技术,零运行时开销。2.2
防御性编程—假设所有外部输入都是恶意的,在每个函数入口进行显式校验。2.7
技术债务—为了短期速度而采取的可控的、有代价的设计策略性妥协。2.9
状态机FSM由有限个状态、事件、转移构成的系统行为描述模型。2.11
层级状态机HSM状态内部可以包含子状态的扩展FSM,防止状态爆炸。2.11
重构—在不改变外部行为的前提下优化代码内部结构。不是所有“丑“代码都值得重构。2.9

AUTOSAR

术语缩写定义主要章节
汽车开放系统架构AUTOSAR汽车电子软件架构的全球标准化合作组织,定义了从MCAL到应用层的分层架构。2.1, 2.6
应用层软件组件SW-C包含业务逻辑的应用组件,通过RTE端口通信,不直接操作硬件。2.6
运行时环境RTEAUTOSAR的代码生成层,将虚拟端口映射到具体通信路径(CAN/内部/以太网)。2.6
微控制器抽象层MCAL直接操作寄存器的芯片驱动层。换芯片只需换这一层。2.6
ECU抽象层—在MCAL之上封装硬件无关的接口,如CanIf、LinIf。2.6
基础软件BSWMCAL + 服务层 + ECU抽象层的统称。2.6
通信管理器ComM管理通信网络状态(唤醒、休眠、全通信)的模块。2.6, 2.11
诊断通信管理器DCM处理UDS诊断服务请求(22/2E/19/14等)的模块。2.11, 4.3
诊断事件管理器DEM管理诊断故障码(DTC)的存储、老化、去抖的模块。2.11
非易失存储管理器NvM管理Flash数据写入/读出的模块,维护多个NV Block。2.6
ECU状态管理器EcuM管理ECU启动/关闭/休眠/唤醒时序的模块。2.6, 2.11
基础软件模式管理器BswM基于规则的引擎,根据系统状态自动触发模块动作。2.5
CAN接口CanIf统一多个CAN控制器的逻辑接口。2.6
CAN传输层CanTp基于ISO 15765-2的长报文拆分与重组。2.6
PDU路由器PduR在通信栈中各模块间路由PDU的总接线板。2.6
通信服务Com信号打包/解包、大小端转换、线性转换。2.6
端到端保护E2E应用层数据路径的完整性保护,通过CRC+Counter防篡改。2.7, 2.6
看门狗管理器WdgM逻辑监督状态机,监控每个被监督实体的checkpoint。2.11
闪存驱动FlsFlash硬件驱动,直接操作寄存器进行擦除和编程。4.3
Flash EEPROM模拟Fee在Flash上模拟EEPROM接口,管理擦写均衡。4.3
后构建配置Post-Build在固件编译完成后才确定的配置参数,位于Flash独立分区。4.3

功能安全(ISO 26262)

术语缩写定义主要章节
道路车辆功能安全ISO 26262汽车电子电气系统的功能安全国际标准,覆盖从概念到退役的全生命周期。3.6
汽车安全完整性等级ASIL A/B/C/D由严重度(S)×暴露度(E)×可控性(C)确定的风险等级。ASIL D最严格。3.6
危害分析与风险评估HARA识别功能失效导致的危害,评估其ASIL等级的过程。3.6
安全目标SGHARA的结果,描述“什么不能发生“,是最高层级的安全需求。3.6
功能安全需求FSR从安全目标导出的系统级安全需求。3.6
技术安全需求TSR将FSR分配到具体ECU、模块、总线的技术需求。3.6
软件安全需求SSR分配给软件组件的安全需求,可直接映射到代码。3.6
安全档案Safety Case证明系统安全性的完整证据集合,包含论证链和全部验证报告。3.6, 3.10
故障容错时间间隔FTTI从故障发生到系统进入安全状态的最大允许时间。3.6
安全状态—系统在检测到故障后进入的、风险可接受的状态(如电机力矩归零)。2.7, 3.6
完整性校验—通过CRC、Checksum等手段验证数据在传输路径中未被篡改。2.7

编码规范与静态分析

术语缩写定义主要章节
汽车工业软件可靠性协会C规范MISRA C汽车C语言的编码规范,从C标准允许的操作中划掉不安全子集。2.8, 3.3
强制规则MandatoryMISRA规则中最高等级的约束,无例外。3.3
必要规则RequiredMISRA规则的核心等级,允许有文档化、经评审的偏离。3.3
建议规则AdvisoryMISRA中推荐遵守但不强制记录偏离的规则。3.3
偏离记录Deviation在无法遵守某条规则时的正式豁免申请,包含理由和缓解措施。3.3, 5.3
静态分析—不运行程序,通过AST遍历/抽象解释/污点分析穷举所有路径的自动化审查。3.3, 4.5
抽象解释—用“可能值的集合“替代具体值的程序分析方法,可证明代码无运行时错误。3.3
污点分析Taint Analysis追踪不可信数据的传播路径,防止其被用于危险操作(如数组索引)。3.3
Cppcheck—开源的C/C++静态分析工具,eng-lite使用。5.3
PC-Lint / FlexeLint—汽车行业经典的C静态分析器,完整支持MISRA C规则集。4.5

测试与覆盖率

术语缩写定义主要章节
单元测试UT在隔离环境中验证独立函数/模块的正确性。“材料试验”。3.4, 5.4
集成测试IT验证模块间接口和交互的正确性。“分项验收”。3.5
软件合格性测试SWE.6验证完整软件系统是否满足软件需求。“竣工验收”。3.5, 3.6
软件在环测试SIL在宿主环境中运行目标代码,验证算法逻辑。3.5
处理器在环测试PIL在目标处理器上运行代码但使用虚拟I/O。3.5
硬件在环测试HIL在真实ECU上通过仿真I/O信号进行测试。“静载试验”。3.5
语句覆盖率Statement Coverage每条语句是否至少被执行一次。最低等级的覆盖率度量。3.4
分支覆盖率Branch Coverage每个条件分支是否都被执行过。ASIL B要求。3.4
修正条件/判定覆盖率MC/DC每个条件都能独立影响判定结果。ASIL D要求。3.4
等价类划分—将输入空间划分为几个等价类,从每类中选代表值测试。3.4
边界值分析BVA在输入边界处(边界上/内/外)选取测试点。Bug集中在边界。3.4
Mock/Stub—Mock验证交互行为;Stub提供最简单的替代实现。3.4
Ceedling—Unity + CMock的管理框架和构建系统。5.4
Unity—极简的C单元测试断言框架,可运行在裸机环境。5.4
gcov / gcovr—GCC内置的覆盖率工具链。gcov插桩收集数据,gcovr生成HTML报告(eng-lite用gcovr;同类工具还有lcov)。5.4

实时系统

术语缩写定义主要章节
实时系统—系统行为正确性不仅依赖计算结果,还依赖结果产生的时间。2.10
最坏情况执行时间WCET在所有可能的输入、最恶劣的硬件条件下,任务执行的理论上限。2.10
固定优先级抢占调度FPPS每个任务有固定优先级,高优先级任务可抢占低优先级任务。AUTOSAR OS标准。2.10
优先级反转Priority Inversion低优先级任务持有锁被中等优先级任务抢占,导致高优先级任务被阻塞。2.10
优先级天花板协议PCP任务获得锁时优先级被提升到该资源的预设天花板优先级,防止反转。2.10
缓存锁定Cache Locking将关键代码锁定在缓存中,换取执行时间的确定性。2.10

诊断与标定

术语缩写定义主要章节
统一诊断服务UDSISO 14229定义的标准诊断协议,包括22(读DID)、2E(写DID)、19(读DTC)等服务。2.2, 2.11
诊断故障码DTC标识ECU检测到的具体故障。包含故障类型和故障位置信息。2.2
数据标识符DIDUDS中标识数据的编号,隐藏了数据的内存地址和格式。2.2
通用测量与标定协议XCP在不中断ECU运行的前提下读写内部存储的标准化协议。3.8
A2L文件ASAP2描述标定参数的元数据文件(地址、类型、换算公式)。3.8
在线标定—通过XCP在ECU运行时修改参数,无需重新编译。3.8
参考页/工作页Reference/Working PageFlash中出厂值(RP)与RAM中当前值(WP)的双层标定存储模型。3.8

构建系统

术语缩写定义主要章节
交叉编译—在一种架构上编译出能在另一种架构上运行的二进制文件。4.1, 5.2
链接脚本Linker Script, .ld定义代码和数据在Flash/RAM中的物理布局。4.2
SRECMotorola S-Record嵌入式固件的标准烧录文件格式,逐字节编码。4.2
自动依赖追踪-MMD -MPGCC编译时自动生成.d依赖文件,Make通过-include加载。5.2
VPATH—GNU Make的源文件搜索路径变量。4.1, 4.3
?=—条件赋值运算符:仅当变量未被赋值时赋值。用于支持编译器的命令行覆盖。5.2

版本控制与CI

术语缩写定义主要章节
持续集成CI每次代码提交自动触发构建、检查、测试的流水线。3.5, 5.5
持续交付/部署CDCI通过后的自动化部署环节。3.5
质量门禁Quality GateCI流水线中的每个检查阶段,未通过则阻止合并。3.5, 5.5
Conventional Commits—提交说明的标准化格式:type(scope): description。3.1
语义化版本SemVerv<MAJOR>.<MINOR>.<PATCH>版本号规范。3.1
git bisect—二分查找法定位引入bug的commit。3.1
追溯矩阵Traceability Matrix从需求ID到实现代码到测试用例的映射表。3.6, 5.6

文档

术语缩写定义主要章节
Doxygen—从注释中自动生成API参考文档的工具。3.7
Sphinx—Python编写的文档生成器,支持RST、多格式输出。3.7, 4.6
PlantUML—从文本描述自动生成UML图(时序图、类图等)的工具。3.7
reStructuredTextRST轻量级标记语言,Sphinx的默认源格式。3.7
@req / @covers—代码中的需求追溯标注:@req声明需求实现,@covers声明测试覆盖。3.6, 5.6
@reqSettings—在文件头部声明该文件需求所属的AUTOSAR规范版本。4.6
@tagSettings—在文件头部声明该配置文件的适用目标架构。4.6

方法论

术语缩写定义主要章节
瀑布模型Waterfall需求→设计→编码→测试的线性开发模型。适用于需求确定的场景。1.3
敏捷开发Agile通过短迭代和频繁反馈来管理变化的开发方法。1.3
汽车SPICEASPICE评估软件开发过程成熟度的框架。V模型 + 渐进改进。1.3, 2.8
V模型—左侧从需求分解到单元,右侧从单元验证到系统验证的对称模型。1.3, 2.8
SWE.1~SWE.6—ASPICE中软件工程的六个过程域,组成完整的V模型。2.8
过程能力等级CL1~CL5ASPICE对组织过程成熟度的五级评价:已执行→已管理→已建立→可预测→持续优化。1.3
人月神话—Brooks关于软件开发不能靠加人加速的经典著作。1.2
没有银弹No Silver BulletBrooks的论断:没有单一技术能带来软件生产力的数量级提升。1.2
本质/偶然复杂性Essential/Accidental本质复杂性来自问题域本身,偶然复杂性来自工具和语言的不足。1.2

硬件平台

术语缩写定义主要章节
CAN总线Controller Area Network汽车最常用的串行通信总线,500kbps/1Mbps。2.6, 2.7
CAN FDCAN Flexible Data RateCAN 2.0的升级版,可变速率和数据场更大(最高64字节)。2.6
Cortex-R5—ARM的实时控制处理器,ZynqMP中的RPU核心,带TCM。2.6, 2.10, 3.9
ZynqMP—Xilinx的异构多核SoC,集成Cortex-A53(应用核)和Cortex-R5(实时核)。4.1
内存保护单元MPU硬件级内存访问权限控制,用于隔离不同OS-Application的地址空间。2.7

这个术语索引覆盖了全书39章中的核心概念。每个词条对应的主要章节提供了最详细的讨论位置。