0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AUTOSAR C++和MISRA C++集成和自适应开发

星星科技指导员 来源:嵌入式计算设计 作者:Mark Pitchford 2022-06-17 14:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

AUTOSAR 采用的指南将与 MISRA 约定和术语保持一致,而用作新文档基础的 MISRA C++:2008 指南将受益于对其原理和示例的改进。

这在纸上听起来很棒。但这份新文件在实践中将提供什么,它对 AUTOSAR 应用程序开发人员意味着什么?

语言子集

采用语言子集(通常称为“指南”或“编码标准”)的驱动力可以说与 AUTOSAR 的关系不大,尤其是与功能安全和网络安全的关系。

功能安全标准“ISO 26262 道路车辆 - 功能安全”被认为是现代汽车开发领域的大部分强制性标准。系统范围的 ISO 26262-4:2011 与 ISO 26262-6 中的软件特定子阶段之间的关系可以用 V 模型表示(图 1)。

pYYBAGKsJZqAV_dDAAUL40Lc93U067.png

图 1:具有对 ISO 26262 和适用开发工具的交叉引用的软件开发 V 模型。

新的 ISO 26262:2018 标准和更熟悉的 2011 版本都将数百个主题整理到数十个表格中,以描述创建功能安全产品的过程。

对于今天的联网汽车,功能安全只是故事的一半。SAE J3061 从网络安全的角度提供最佳实践指南,正如 ISO 26262 提供解决功能安全的实践指南一样。SAE J3061 中的建议旨在补充 ISO 26262 流程,并呼吁以网络安全为重点的广泛相似的技术。

ISO 26262 和 SAE J3061 都要求使用语言子集,因为它们可以帮助开发人员避免语言中的麻烦部分,并使生成的代码更可靠、更不容易出错、更容易测试和/或更容易维护。图 2 仅显示了如何呈现语言子集违规的一个示例。

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzVjNzQzOWVlNzgyMjUuanBnJnZlcnNpb249MDAwMCZzaWc9YjAzZWE3MzdkYjhmOTM3ZWI3ZDcxZDBkZjkyNWViZTI253D

图 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 指南保持一致。这有助于简化涉及这两个平台的任何人的生活,并清楚地表明哪个是“正确”的编码标准。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20146

    浏览量

    328792
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76708
  • 自动驾驶
    +关注

    关注

    791

    文章

    14669

    浏览量

    176499
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C++程序异常的处理机制

    1、什么是异常处理? 有经验的朋友应该知道,在正常的CC++编程过程中难免会碰到程序不按照原本设计运行的情况。 最常见的有除法分母为零,数组越界,内存分配失效、打开相应文件失败等等。 一个程序
    发表于 12-02 07:12

    嵌入式C/C++回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    嵌入式开发中,一次微小的代码改动都可能引发“蝴蝶效应”,如何守护系统的稳健?推荐专业的自动化测试工具#TESSY,源自戴姆勒-奔驰,是嵌入式C/C++单元/集成测试的标杆。
    的头像 发表于 10-31 14:21 184次阅读
    嵌入式<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    请问NANO 可以使用 C++ 11 嘛?

    最近需要在GD32F450上开发项目,需要用到C++ ,那么 nano支持嘛?如果不支持,使用完全板改基于GD的芯片进行开发
    发表于 10-14 07:41

    C/C++代码静态测试工具Perforce QAC 2025.3的新特性

     Perforce Validate 中 QAC 项目的相对/根路径的支持。C++ 分析也得到了增强,增加了用于检测 C++ 并发问题的新检查,并改进了实体名称和实
    的头像 发表于 10-13 18:11 344次阅读
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>代码静态测试工具Perforce QAC 2025.3的新特性

    技能+1!如何在树莓派上使用C++控制GPIO?

    在使用树莓派时,你会发现Python和Scratch是许多任务(包括GPIO编程)中最常用的编程语言。但你知道吗,你也可以使用C++进行GPIO编程,而且这样做还有不少好处。借助WiringPi
    的头像 发表于 08-06 15:33 3573次阅读
    技能+1!如何在树莓派上使用<b class='flag-5'>C++</b>控制GPIO?

    主流的 MCU 开发语言为什么是 C 而不是 C++

    在单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩不转。先说内存这道坎儿。您当stm32f4的256kRAM
    的头像 发表于 05-21 10:33 778次阅读
    主流的 MCU <b class='flag-5'>开发</b>语言为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

    Helix QAC 2025.1 重磅发布!MISRA C:2025® 100%覆盖

    Helix QAC 2025.1新增功能 Helix QAC 2025.1实现了对新版MISRA C:2025®标准的 100% 覆盖,并提供对应的合规模块。此版本还扩展了对 CERT C
    的头像 发表于 05-13 16:48 1114次阅读
    Helix QAC 2025.1 重磅发布!<b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>:2025® 100%覆盖

    C++学到什么程度可以找工作?

    C++学到什么程度可以找工作?要使用C++找到工作,特别是作为软件开发人员或相关职位,通常需要掌握以下几个方面: 1. **语言基础**:你需要对C++的核心概念有扎实的理解,包括但不
    发表于 03-13 10:19

    源代码加密、源代码防泄漏c/c++与git服务器开发环境

    源代码加密对于很多研发性单位来说是至关重要的,当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同,今天主要来讲一下c++及git开发环境的源代码防泄密保护方案。企业源代码泄密
    的头像 发表于 02-12 15:26 874次阅读
    源代码加密、源代码防泄漏<b class='flag-5'>c</b>/<b class='flag-5'>c++</b>与git服务器<b class='flag-5'>开发</b>环境

    基于OpenHarmony标准系统的C++公共基础类库案例:ThreadPoll

    。每个线程每秒打印1段字符串,10秒后停止。2、基础知识C++公共基础类库为标准系统提供了一些常用的C++开发工具类,包括:文件、路径、字符串相关操作的能力增强接口
    的头像 发表于 02-10 18:09 597次阅读
    基于OpenHarmony标准系统的<b class='flag-5'>C++</b>公共基础类库案例:ThreadPoll

    Spire.XLS for C++组件说明

    开发人员可以快速地在 C++ 平台上完成对 Excel 的各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档,以及对 Excel 文档进行转换。 Spire.XLS
    的头像 发表于 01-14 09:40 1297次阅读
    Spire.XLS for <b class='flag-5'>C++</b>组件说明

    EE-112:模拟C++中的类实现

    电子发烧友网站提供《EE-112:模拟C++中的类实现.pdf》资料免费下载
    发表于 01-03 15:15 0次下载
    EE-112:模拟<b class='flag-5'>C++</b>中的类实现

    AKI跨语言调用库神助攻C/C++代码迁移至HarmonyOS NEXT

    /C++代码快速迁移至HarmonyOS NEXT。凭借卓越的兼容性,AKI已成为厂商与开发者打造鸿蒙原生应用过程中广泛使用的跨语言调用解决方案。 AKI是一款专为鸿蒙原生开发设计的FFI(外部函数接口
    发表于 01-02 17:08

    HighTec C/C++编译器套件全面支持芯来RISC-V IP

    是基于LLVM开源汽车级C/C++编译器工具,已通过ISO 26262 ASIL D的安全认证。从事RISC-V架构开发的汽车软件开发者受益于这些工具来无缝支持芯来经过功能安全认证的R
    的头像 发表于 12-23 09:04 1999次阅读
    HighTec <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器套件全面支持芯来RISC-V IP

    运动控制卡周期上报实时数据IO状态之C++

    使用C++进行运动控制卡的周期上报功能实现
    的头像 发表于 12-17 13:59 1528次阅读
    运动控制卡周期上报实时数据IO状态之<b class='flag-5'>C++</b>篇