伴随着汽车行业的迅猛发展,汽车电子的系统开发对研发效率和研发质量提出了更高的需求,这使得各大汽车厂商、科研院所越来越多的关注到AUTOSAR带来的标准化设计、开发和验证。
\AUTOSAR 简介
AUTOSAR是AUTOmotive Open System Architecture(汽车开放系统架构)的首字母缩写,其组织在2003年由欧洲汽车制造商、部件供应商和其他电子、半导体及软件系统公司联合建立,至今已发展到180多家公司。
各伙伴公司携手合作,致力于为汽车工业开发一个开放的、标准化的软件架构。这种软件架构旨在使基本软件元素,接口和总线系统能够面向未来实现系统标准化,以帮助汽车制造商管理不断增长的系统复杂性,同时降低开发成本。
\AUTOSAR 软件架构
AUTOSAR组织开发的第一个开放式软件架构称为”Classic Platform”,满足车辆的硬性实时要求,同时能够在危机情况下保证安全运行。这些功能往往通过C/C++/Java语言来实现,并运行在微处理器上。
现在,为了满足车辆联网和无人驾驶技术的飞速发展需求AUTOSAR组织又提出了一套新的标准”Adaptive Platform”。一个具体的例子:高性能的32/64位微处理器、外置内存、并行处理、高带宽通行。Adaptive Platform的相关API接口由C++语言进行开发,这意味着AUTOSAR在Adaptive Platform的开发中采用了C++语言。
\AUTOSAR 编码指南
AUTOSAR 开发的原则之一就是验证规范与标准化。自适应平台通过 AUTOSAR 内部进行验证,以C++实现编写,被称为自适应平台验证机(Demonstrator)。AUTOSAR 使用了独家静态分析的HelixQAC分析工具,以确保验证机源代码的质量,并验证符合编码指南。
AUTOSAR 指南规定了342条编码规则。其中154个直接使用已广泛采用的 MISRA C++标准;131条规则被Integrity C++编码规范包所覆盖;57个是基于研究的其他资源。编码指南允许一些以前的标准所禁止的语言特征。例如:动态内存、异常、模板、继承和虚函数,当然另有规则来确保这些语言功能只能以安全的方式使用。指南的“目标”章节指出:“主要的应用领域是汽车,但也可以用于其他嵌入式应用领域。AUTOSAR C++14编码指南面向的是在32位和64位微控制器上提供了高效全面的C++14语言支持、使用POSIX或类似操作系统的高端嵌入式微控制器。”因此,建议任何使用 C++14 开发嵌入式软件的组织都应该考虑使用这些指南。
AUTOSAR标准将作为未来汽车应用实施平台,最大限度地减少当下功能领域之间的障碍。为达此目的,标准将使功能和功能网络映射到系统中不同的控制节点,几乎独立于相关硬件。这些指南虽然是针对汽车行业开发的,也可以被任何使用C++14 开发嵌入式软件的组织或部门所使用。在任何应用程序中,使用静态分析工具HelixQAC将确保代码没有错误,并且符合编码准则。