Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>

X
BLOG

AUTOSAR架构对运行时环境的要求

AUTOSAR架构对运行时环境的要求 Reading Time: < 1 minutes

成立于2003年的(AUTOSAR)组织旨在为开发汽车电子控制单元(ECU)的嵌入式软件提供指导。AUTOSAR是丰田、宝马、福特等全球汽车行业巨头的合作伙伴,专注于标准化整个行业的软件架构,以管理日益复杂的控制系统,同时提高安全关键软件的质量和可靠性。

AUTOSAR架构

平均一个普通的ECU能够包含数千个功能。在AUTOSAR架构之前,当硬件发生变化时,每个ECU都需要完全重写。AUTOSAR出现后,团队就找到了一种使软件独立于硬件的方法,为整个行业创建模块化和可持续应用程序创造了一个新标准。更好的是,新标准符合国际汽车安全标准,包括ISO 14229, ISO 27145等。

虽然汽车工业软件可靠性协会(MISRA)已经开发了一个C++编码标准, MISRA C++:2008,它的规则是基于C++ 03 (ISO/IEC 14882:2003),该标准不支持许多和安全相关的软件方案。因此,AUTOSAR小组选择了C++ 14 (ISO/IEC 14882:2014),并围绕它建立了自己的编码标准,称为AUTOSAR C++ 14。自2017年3月起,该标准每年更新发布两次。

有关AUTOSAR C++ 14的指南

2017年,AUTOSAR小组发布了在关键和安全相关系统中使用C++ 14语言的指南。它通常被称为AUTOSAR C++ 14,如今是AUTOSAR整体架构平台的一部分。推出AUTOSAR C++ 14的目的是取代MISRA C++:2008,成为整个汽车行业的编码标准。事实上,这些指导方针非常强大,它们可以应用于任何嵌入式编程的行业。

另一个选择C++ 14的原因是,安全工程师已经开始接受面向对象的语言,它使开发人员能够使用高级编译器,并更好地访问增强的测试、验证和分析工具。它还允许使用新的开发方法,如持续集成/持续交付(CI/CD),可以在软件开发生命周期中更快地检测到错误。而MISRA C++:2008未能容纳上述技术。

AUTOSAR C++14在汽车新技术中的应用

AUTOSAR C++ 14指南被用于新的汽车技术,如自动驾驶、车对车或车对基础设施(V2X)通信、在线(OTA)升级、高清显示和AI计算。虽然MISRA C++:2008仍在一些项目中使用,并帮助工程师实现了编码标准,但它仍然是一个不完整的标准。这是因为,自从C++ 03发布以来,随着C++的发展,该语言进行了惊人数量的改进,而MISRA C++:2008没有发生变更。

如果一个组织依赖于MISRA C++:2008,那么迁移到AUTOSAR C++ 14对他们来说将是一项重大的努力。但是这样做也有巨大的价值,因为MISRA C++:2008和AUTOSAR C++ 14之间的增量处理了自2003年以来在C++语言中的变更。因此,C++ 11和C++ 14中的所有新奇之处都包含在AUTOSAR C++ 14中。因此,这的确存在一些影响,但更新到新标准也存在着很大的价值。

AUTOSAR体系结构和编码要求

AUTOSAR C++ 14有342条规则,帮助用户对编码需求有清晰的理解和指导。它根据每个规则是必需的还是推荐的对其进行分类。“必需规则”是AUTOSAR C++ 14遵从性的强制性规则,而“建议规则”不需要遵守,但强烈推荐使用。然而,虽然偏离规则或指导方针是允许的,但必须对每个偏离进行注解,因为它可以防止开发人员随意偏离而滥用偏离概念。

当考虑使用像AUTOSAR C++ 14这样的编码标准时,强制遵从的唯一实用方法是使用静态分析工具,该工具还具有复杂的交互报告系统,能够支持高效的日常工作流程。事实上,是考虑将扫描过程集成到服务器上构建的持续集成(CI)的解决方案。这种自动化节省了大量的时间和成本。

此外,如果要清理现有的代码库,建议从标准中的规则子集开始,并随着代码的清理过程逐步增加活动规则的数量。这防止了大量的违规使团队难以应对,并且允许监视代码库的进展,控制偏离过程,并就扩展规则集做出明智的决定。

统一的AUTOSAR-MISRA标准

自2017年以来,AUTOSAR集团每年发布两次AUTOSAR C++ 14指南,与超过200家汽车公司合作,以支持C++语言的变更。在未来,AUTOSAR在2019年宣布,它将与MISRA合作,合并MISRA与AUTOSAR C++规则集,并提供一个单一的通用C++软件开发指南。这些MISRA领导的新指南预计将完全支持现代C++语言版本,如C++ 17和C++ 20。

随着MISRA和AUTOSAR的合并,为C++建立了最新最好的编码规则和指南,预计它将被汽车以外的其他行业大量采用,例如航空航天、医疗、工业、铁路、电信、能源等行业。软件开发人员非常希望能够交付已经或将要用C++ 17和C++ 20编程语言开发的安全和可靠的项目。

静态分析有助于创建安全的C++代码

ISO 26262的一个重要方面是建议使用像AUTOSAR C++ 14这样的编码遵从标准。实现遵从性的最佳方法是通过自动化和使用TUV认证的工具,如Parasoft C/C++test,它也能够支持多种测试技术和功能,如单元测试、结构代码覆盖、需求可跟踪性等。作为安全关键行业的完全集成的软件测试解决方案,Parasoft C/ C++test也可以很容易地集成到您的C++ IDE或CI/CD管道中,配置为尽早检测缺陷,并自动执行遵从性。

Parasoft C/ C++test汽车合规包专门为汽车行业量身定制,集成了AUTOSAR C++ 14、MISRA C++ 2008和高完整性(HIC++)的规则, 以帮助汽车开发人员扩展测试功能,并简化开发团队的测试。开发人员还可以使用Parasoft C/ C++test从IDE内部分析代码遵从性,同时自动创建报告,通知团队状态变更。

作为测试安全关键型应用程序的最完整的解决方案之一,Parasoft C/C++test为静态分析提供了一个简化的解决方案,同时为汽车行业所需的编码标准提供了更多的支持。有了自动确保安全关键系统遵从性的平台,您就能够在开发过程中尽早发现缺陷并节省时间,优先考虑更新以解决重要问题,并实现遵从性自动化。

“MISRA”、“MISRA C”及MISRA Consortium Limited的注册商标。 ©The MISRA Consortium Limited, 2021。 保留所有权。

Written by

Ricardo Camacho

Parasoft嵌入式测试解决方案的高级技术产品营销经理。他在SDLC和嵌入式实时、安全和安全关键应用程序的测试自动化以及软件符合行业标准方面具有专业知识。

将最新的软件测试新闻和资源发送到您的电子邮箱。