MISRA C++ 2023指南:您需要了解的一切

图片

MISRA C++ 2023可以帮助使用现代C++语言的组织开发安全关键型软件。使用新的MISRA标准,开发人员可以通过确保和记录其软件应用程序的MISRA合规性,满足IEC 6108或ISO 26262等功能安全标准给出的静态分析要求。

什么是MISRA C++2023?

以便使用C++17进行安全可靠的编程。这份已发布的文档是MISRA C++ 2023。

MISRA C++是一套编码指南,定义了在关键系统中使用的C++语言子集,以减少犯错的风险,最大限度地减少不合格程序的危险。

MISRA指南旨在确保软件的安全性和可靠性。此外,符合要求的程序可能以明确表明代码错误的方式编写,或者很可能被开发人员误解。MISRA 准则针对的就是这种情况。

图片

MISRA C++2023指南和规则

MISRA C++ 2023指南被归类为规则或指令。规则是那些包含合规和不合规完整定义的准则。对于指令,不可能提供执行合规性检查所需的完整描述,因为这取决于特定项目背景下的设计决策。

每项准则都归类为以下几类:

  • 强制性

  • 要求 

  • 建议                      

MISRA C++ 2023共包含179条指南、4项指令和175条规则,这些指南、指令和规则按照 C++ 标准的章节进行分组,包括以下内容:

  • 基本概念

  • 标准转换

  • 表达式

  • 语句

  • 特殊成员功能

  • 异常处理

其中一些规则来自AUTOSAR编码指南或旧的MISRA C++ 2008。然而,MISRA指南只关注实施,而AUTOSAR还提供了与设计、工具链基础设施或文档相关的建议。一般来说,MISRA C++ 2023以代码的语义为导向,避免错误,而不会提供太多的文体指导。

如何实现MISRA C++2023合规性

MISRA C++ 2023要求遵循MISRA合规性文件中定义的合规流程。这是MISRA C和MISRA C++标准之间共享的独立文档。最新版本于2020年发布,取代了2016年的早期版本。

MISRA合规性引入了一系列有关合规流程和报告的要求。它定义了期望作为合规性构件的特殊报告。

  • 指导方针实施计划是一份文件,其中规定了将用于执行方针的所有技术手段。

  • 指南重新分类计划是一份文件,描述了为特定项目引入的指南类别的所有变化。

  • 指南合规性摘要是一份记录每项指南合规水平的报告。

此外,"合规性 "文件还推荐了一套完整的偏差处理流程,其中包括对偏差记录的要求、偏差许可的使用以及可接受偏差的原因列表。

拥有一套标准化的要求来宣称项目符合MISRA,有助于团队确保适当的可信度,并有能力在集成多个模块时合并合规报告,前提是对每个模块都已执行MISRA C/C++代码检查

有些准则可以使用代码审查程序进行检查,尽管这样做会很麻烦。其他准则,特别是那些需要对整个系统进行分析的,包括需要对整套应用程序源代码执行数据和控制流分析的指南,实际上是无法手动检查的。因此,使用自动静态代码分析工具如Parasoft C/C++test是非常重要的,这些工具提供对MISRA C++ 2023的完整支持,可以根据MISRA指南分析代码并生成适当的合规性文档集。

结论

MISRA C++ 旨在提供c++语言的安全子集。这是通过对C++源代码的一些要求和限制来实现的,用来增强应用程序的安全性。

错误预防

C++标准将某些情况指定为未定义的行为,主要是为了允许编译器生成更高效的代码。编译器可以假设未定义的行为情况永远不会发生,并根据该假设执行额外的优化。这有风险,如果发生这种情况,程序的行为是不可预测的。在某些情况下,这意味着程序在运行测试时表现良好,并在生产中失败,这可能会导致整个验证过程徒劳无益。MISRA C++提供了直接或间接防止未定义行为的指南。一个示例案例是评估对象的不确定值,规则11.6.2保护该值不得在设置对象之前读取该对象的值

代码的可维护性

依赖于实现定义行为的程序可能很难移植到另一个目标。这种行为的一个例子是sizeof(int)它会影响算术运算的行为,例如在实际运算发生之前,所有类型较窄的操作数都被提升。这最终可能会导致算术运算的不同结果,具体取决于编译目标。MISRA C++指南在其标准转换规则中防止此类问题,例如:

  • 规则7.0.5积分提升和通常的算术转换不得更改操作数的签名或类型类别。

  • 规则7.0.6数字类型之间的分配应是适当的。

风险管理

MISRA指南还解决了开发人员对有效C++源代码的困惑或不正确理解造成的一类潜在风险。例如,if (x = y)是完全有效的C++,但很可能是输入错误的结果,其中意外使用了赋值运算符而不是相等运算符。规则8.18.2不应使用分配运算符的结果,确保此类代码将被报告和审查其正确性。

结论

功能安全标准要求使用一套合理的编码指南和安全语言子集是有原因的。可以声称符合MISRA C++ 2023的组织增强了其现代C++应用程序的安全性。

*联系我们,了解有关MISRA C++ 2023文档内容以及AUTOSAR和MISRA C++指南之间差异的更多详细信息,了解您的开发团队如何获得最广泛的MISRA覆盖范围。

电话:021-60932819

技术支持邮箱:info-china@parasoft.com

网站:www.parasoftchina.com

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Misra C是一种编码标准,旨在帮助开发者编写高质量、可靠、可移植的嵌入式C程序。Misra C标准包括一系列规则和建议,目的是减少程序中的编码错误,提高软件的可读性和可维护性。 要下载Misra C,首先需要找到合适的Misra C标准版本。通常,Misra C标准会根据发布年份和嵌入式系统的特定要求进行编号。可以通过互联网搜索或向软件开发社区咨询,找到适合自己项目需求的Misra C标准版本。 一旦找到了合适的Misra C标准,可以通过以下方式下载: 1. 官方网站下载:访问Misra C官方网站(例如misra.org.uk)或相关的开发者社区网站,查找并下载所需的标准文档。这些网站通常提供Misra C标准的PDF或HTML版本,可以在线阅读或下载保存。 2. 购买实体书籍:部分Misra C标准可能会以书籍形式出版。在线或线下书店可以购买相关书籍,获得Misra C的具体规则和解释。这些书籍可能包含示例代码、注释和实践建议,帮助开发者更好地理解和应用Misra C。 3. 加入开发者社区:一些软件开发论坛、专业社区或编程博客可能会提供Misra C标准的下载链接。加入这些社区,与其他开发者交流,获取他们分享的Misra C资源和经验。 下载Misra C标准后,开发者应该仔细阅读标准文档,了解规则和建议的具体内容。根据自己的项目需求,结合标准提供的指导,进行代码检查和改进。同时,一些集成开发环境(IDE)和静态代码分析工具也可以辅助开发者遵循Misra C标准,减少代码中的违规或错误。 总之,下载Misra C标准可以通过官方网站、购买实体书籍或参与开发者社区等方式进行。下载完成后,开发者应深入理解标准内容,并结合实际项目进行代码检查和改进,以提高软件质量和可维护性。 ### 回答2: Misra C是一种C语言编程规范,旨在帮助开发人员编写安全、可靠且可维护的C代码。下载Misra C的步骤如下: 1. 在互联网上搜索Misra C规范,找到一个可信赖的来源。常见的来源包括Misra官方网站、编程规范书籍或开发社区论坛。 2. 访问所选来源的网站,寻找Misra C规范的下载链接或文件。 3. 点击下载链接,选择保存文件的位置。建议选择一个便于访问和管理的目录,例如桌面或个人文档文件夹。 4. 确认下载选项,例如选择下载具体版本的Misra C规范文件。可以选择PDF格式,以便于在计算机上查看、打印和搜索。 5. 等待下载完成。下载速度取决于您的互联网连接速度和文件大小。 6. 下载完成后,打开文件所在的位置,并查看Misra C规范文件。可以使用PDF阅读器打开文件,或者选择其他文本编辑器。 请注意,在下载Misra C规范后,建议仔细阅读规范的内容,并将其应用于您的C代码编程过程中。根据Misra C规范,您可能需要进行一些代码修改和调整,以符合规范的要求。这将有助于确保您的代码符合最佳实践,提高代码质量和可靠性。此外,还可以考虑使用Misra C规范的静态代码分析工具或IDE插件,以帮助自动检测和修复规范违规的代码部分。 ### 回答3: Misra C是一种用于编写嵌入式C语言程序的软件标准。Misra C定义了一系列规则和指南,旨在提高代码的可读性、可维护性和安全性,以减少程序中可能出现的错误。 要下载Misra C,您可以遵循以下步骤: 1. 在互联网上搜索Misra C标准的最新版本。您可以找到一些免费的版本,也可以选择购买最新的商业版本。 2. 定位到Misra C标准的官方网站或其他可信的网站,然后浏览下载页面。 3. 在下载页面上,选择符合您需求的适当版本。通常,标准会根据不同的嵌入式系统和编译器提供不同的版本。 4. 选择下载的文件格式。Misra C通常提供PDF格式和可打印版本供下载。 5. 点击下载按钮或链接,并选择保存文件到您的计算机上的适当位置。 6. 等待文件下载完毕。下载时间取决于您的网络连接速度和文件大小。 7. 打开保存的文件,使用合适的阅读器(如Adobe Acrobat等)浏览Misra C标准。 请注意,Misra C标准是一份规范,用于指导软件开发人员编写符合软件工程原则和最佳实践的C语言代码。下载Misra C标准后,您可以根据其中的规则和指南,对您的嵌入式C语言程序进行检查和修改,以符合标准要求。这有助于提高代码质量、可靠性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值