AUTOSAR 采用的指南将与 MISRA 约定和术语保持一致,而用作新文档基础的 MISRA C++:2008 指南将受益于对其原理和示例的改进。
这在纸上听起来很棒。但这份新文件在实践中将提供什么,它对 AUTOSAR 应用程序开发人员意味着什么?
语言子集
采用语言子集(通常称为“指南”或“编码标准”)的驱动力可以说与 AUTOSAR 的关系不大,尤其是与功能安全和网络安全的关系。
功能安全标准“ISO 26262 道路车辆 - 功能安全”被认为是现代汽车开发领域的大部分强制性标准。系统范围的 ISO 26262-4:2011 与 ISO 26262-6 中的软件特定子阶段之间的关系可以用 V 模型表示(图 1)。
图 1:具有对 ISO 26262 和适用开发工具的交叉引用的软件开发 V 模型。
新的 ISO 26262:2018 标准和更熟悉的 2011 版本都将数百个主题整理到数十个表格中,以描述创建功能安全产品的过程。
对于今天的联网汽车,功能安全只是故事的一半。SAE J3061 从网络安全的角度提供最佳实践指南,正如 ISO 26262 提供解决功能安全的实践指南一样。SAE J3061 中的建议旨在补充 ISO 26262 流程,并呼吁以网络安全为重点的广泛相似的技术。
ISO 26262 和 SAE J3061 都要求使用语言子集,因为它们可以帮助开发人员避免语言中的麻烦部分,并使生成的代码更可靠、更不容易出错、更容易测试和/或更容易维护。图 2 仅显示了如何呈现语言子集违规的一个示例。
图 2:突出显示 LDRA 工具套件中违反的编码准则。
思想的相遇
这一新宣布的语言子集源于 AUTOSAR 合作伙伴关系和 MISRA 组织之间的协议。
AUTOSAR 合作伙伴关系是一个由汽车 OEM 和供应商组成的协同团队,专注于持续开发汽车 ECU 软件的参考架构。
作为对具有硬实时和安全约束的嵌入式系统的长期经典平台的补充,自适应平台是 AUTOSAR 的高性能计算 ECU 解决方案,用于为高度自动化和自动驾驶等用例构建安全相关系统。经典平台应用程序使用 C 开发,而自适应平台应用程序使用 C++ 开发。
MISRA 也是制造商、组件供应商和工程咨询公司之间的合作,但以其语言子集而闻名。尽管 MISRA 诞生于汽车行业,但如今,它的指导方针已在许多安全和安保领域普遍使用,包括医疗设备、工业、航空航天和铁路运输。
在为自适应平台定义环境的过程中,AUTOSAR 需要一个语言子集来支持 C++14 和该语言的后续演进。MISRA C++ 被认为是令人钦佩的,但它于 2008 年发布以支持 C++03,因此还不够最新。
由于不知道 MISRA 现有的更新 MISRA C++:2008 的承诺,AUTOSAR 用自己的规则对 MISRA C++:2008 进行了补充,以创建 AUTOSAR C++14 指南,从而导致了大致相同的两个并行开发。1 月份的公告通过将 AUTOSAR 合作伙伴关系的最新努力与 MISRA 的最新努力相结合,解决了这种情况。
对 AUTOSAR 应用程序开发的影响
一般来说,嵌入式开发世界早就应该拥有一个事实上的 C++ 语言子集,并承诺随着语言的发展对其进行持续维护。联合声明就是为此而受到称赞。
但是,AUTOSAR 应用程序开发人员特别欢迎任何简化和精简规则和法规。在遵守 ISO 26262 功能安全标准、SAE J3061 网络安全指南和 AUTOSAR 标准本身定义的协议的要求方面已经存在足够多的挑战,而语言子集的选择不会变得不必要的复杂。
AUTOSAR Adaptive 和 Classic 平台之间的共性是有帮助的——这一事实已经反映在 AUTOSAR 基础标准中,该标准包含适用于两者的要求和技术规范。自适应应用程序中使用的集成 C++ 语言子集采用 MISRA 约定和术语将与已用于经典开发的 MISRA C 指南保持一致。这有助于简化涉及这两个平台的任何人的生活,并清楚地表明哪个是“正确”的编码标准。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !