AUTOSAR 编码指南简介

2018-04-08 10:37:20·  来源:麦禾测试  
 
软件开发对汽车应用越来越重要。越发严苛的安全要求、环境要求和便利性要求,大大增加了车辆电子系统的数量。90%的技术创新都是基于软件驱动的电子部件。这些部件占汽车开发成本的40%。
1. 简介

软件开发对汽车应用越来越重要。越发严苛的安全要求、环境要求和便利性要求,大大增加了车辆电子系统的数量。90%的技术创新都是基于软件驱动的电子部件。这些部件占汽车开发成本的40%。

发展的步伐以及整合更多功能和控制单元的持续性需求,对汽车制造商构成了重大挑战。本白皮书简要介绍了新的AUTOSAR编码指南,并就如何遵守这些指南提供了指导。

2. 什么是AUTOSAR?

AUTOSAR(汽车开放系统架构)旨在标准化和面向未来的基础软件元件、接口和总线系统,帮助汽车制造商管理不断增长的系统复杂性,同时降低成本。 它为汽车电子控制单元(ECU)开发标准化的开放软件架构。

它是由180多家汽车制造商、汽车供应商、工具供应商和半导体供应商组成的合作伙伴。 核心成员是:宝马,博世,大陆,戴姆勒,福特,通用,标志雪铁龙,丰田和大众。

AUTOSAR 开发的第一个开放架构是“经典平台”,针对车辆功能,具有严格的实时要求和安全关键性,在基本的微控制器上实现。现在,为了满足快速增长的联网车辆和高度自动化驾驶技术的市场需求,AUTOSAR开发了一种新的联网和自动驾驶车辆的“自适应平台”标准。驱动自适应平台标准的技术的例子是:具有外部存储器的高功率32/64位微处理器,并行处理和高带宽通信。

AUTOSAR编码指南

根据自适应平台标准开发的软件可以和根据“经典平台”标准开发的现有系统集成。经典平台明确允许用C、C++和Java实现,但C是主要的编程语言。现在,自适应平台中的API是用C++定义的,表明AUTOSAR将C++视为新型自适应平台组件的首选语言。

C 和 C++是用于汽车嵌入式系统的主要编程语言。这在很大程度上是因为它们允许对硬件进行 直接的、确定性的控制,并给予开发人员灵活性。这也带来风险。具有未定义行为的代码,或者是当编译和运行在不同目标硬件上时其行为难以确保相同的代码,是能够得到编译的。即使是最有经验的开发人员也可能会无意中引入缺陷。

3. 什么是AUTOSAR编码指南?

为了帮助确保 AUTOSAR 软件实现代码的安全性和保全性,AUTOSAR 邀请PRQA成为开发合作伙伴,并加入工作组开发“关键和安全相关系统中使用 C++ 14 语言的指南”(简称“指南”)1。作为 AUTOSAR 静态分析开发的独家合作伙伴,PRQA贡献了他们在过去的30年中获得关于C++编程语言和软件开发最佳实践的专业知识。

AUTOSAR 指南规定了 342 条编码规则。其中 154 个直接使用已经广泛采用的 MISRA C ++标准;131个基于其他众所周知的编码标准中定义的规则,比如 PRQA 的 High Integrity C++;57个是基于研究或其他资源。指南允许一些以前的标准所禁止的语言特征。例如:动态内存、异常、模板、继承和虚函数,当然另有规则来确保这些语言功能只能以安全的方式使用。

AUTOSAR 开发的原则之一就是验证规范与标准化。自适应平台通过 AUTOSAR 内部实现进行验 证,内部实现以C++编写,被称为自适应平台验证机(Demonstrator)。AUTOSAR 使用了来自独家静态分析开发合作伙伴PRQA的先进的QA·C ++分析工具,以确保验证机源代码的质量,并验证符合编码指南。

4. 为什么需要AUTOSAR编码指南?

在 AUTOSAR 指南之前,在安全关键型软件中没有适用于现代 C++标准(C ++ 11 和 C ++ 14)的 的编码标准。可用标准要么是不完整的、针对传统 C++标准编写的,要么是不适用于安全关键型应用程序。MISRA C ++:2008是汽车行业中最广泛使用的C++编码标准,但它是为有了 14 年历史的 C++ 03 编写的。

自引入 C++ 03 以来出现的如下许多变化降低了 MISRA 标准对于 AUTOSAR 项目的相关性:

1.C++的发展
2.编译器的改进
3.测试、验证和分析工具的改进
4.车辆功能安全标准 ISO 26262 的发布
5.将更广泛的安全和保全专业知识融入其他标准中,例如:
●High Integrity C ++(PRQA)2
●联合打击战斗机 C ++(洛克希德马丁公司)3
●CERT C ++(卡耐基梅隆)4
●C++核心指南(Bjarne Stroustrup 和 Herb Sutter)5

AUTOSAR设计的指南被用作现有 MISRA C ++标准的扩展。它规定了新的规则和MISRA规则的更新,并指出哪些MISRA规则已经过时。




指南的“目标”章节指出:“主要的应用领域是汽车,但也可以用于其他嵌入式应用领域... AUTOSAR C ++14 编码指南面向的是在32位和64位微控制器上提供了高效全面的C++ 14语言支持、使用POSIX或类似操作系统的高端嵌入式微控制器。”

因此,PRQA 建议任何使用 C++ 14 开发嵌入式软件的组织都应该考虑使用这些指南。




开箱即用。 对于大
传统上,工程师进行费力的手动代码审查,以确保代码是按照他们选择的标准编写的。这个过程很容易出错,也不适合处理当今庞大而复杂的代码。幸运的是,这些检查现在可以使用工具自动进行。“静态分析器”就是为此设计的一种工具。

静态分析器不仅报告违反编码规则,而且执行深入的代码检查以突出显示任何未定义的、未指定的或与编译器相关的行为。它分析程序的所有可能的执行路径来标记潜在的运行时问题。 通常情况下,它可以发现通过测试活动发现不了的问题,因为测试只是覆盖所有可能的执行路径。 静态分析器是用于开发安全、保全和可靠的软件的工具集的重要组成部分。

AUTOSAR 使用 PRQA 的静态分析工具 QA·C++来确保其验证机源代码的质量,对编码指南的遵守也提供了宝贵的见解。这些见解结合PRQA对指南的贡献,为开发符合AUTOSAR标准唯一静态分析解决方案奠定了基础。PRQA 的 AUTOSAR 适应性模块对 QA·C++进行了扩展,以获得符合AUTOSAR指南的中型开发团队来说,通过 PRQA 的代码质量管理控制中心 QA·Verify,该解决方案可以进一步增强。 这保证了所有团队成员在项目期间除了跟踪和报告代码质量外,还一致地应用编码准则。




AUTOSAR 标准将作为未来汽车应用实施的平台,最大限度地减少当下功能域之间的障碍。为达此目的,标准将使功能和功能网络映射到系统中的不同控制节点,几乎独立于相关的硬件。这些指南虽然是针对汽车行业开发的,也可以被任何使用C++ 14 开发嵌入式软件的组织或部门使用。在任何应用程序中,使用PRQA静态分析工具 QA·C++将确保代码没有错误,并且符合编码准则。
 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25