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

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

3天内不再提示

如何将MISRA C:2023整合到您的嵌入式开发流程中

星星科技指导员 来源:embedded 作者:Mark Pitchford 2023-05-04 09:58 次阅读

开发符合 MISRA C 的软件需要规划、文档和工具,以最好地执行指南的意图和精神。MISRA C:2023 修正案 2012 (AMD4) 和 MISRA C:4 的 2023 版用于开发安全和安保关键型软件系统,解决了 C 标准的最新两个版本(ISO/IEC 9899:2011 和 2018)中引入的并发功能,并将所有 MISRA C 版本合并到一个文档中。

MISRA C不是编码风格指南,而是一套规则和指令,用于最小化或消除已知危险的编码实践。鉴于对安全和安保关键型系统的这种重要性,AMD4 和 MISRA C:2023 版本使开发人员有机会重新审视其流程,以改进对有效和高效地证明 MISRA 合规性的支持。

MISRA 合规性:2020 指南指出,合规性声明必须确定:

使用规范的软件开发过程

应用的确切准则

执法方法的有效性

与准则的任何偏差程度

在项目之外开发的任何软件组件的状态

新老制造商必须确定如何在不牺牲开发速度的情况下将MISRA规则和指令集成到其流程中。

poYBAGRTEQSAVRWlAALe0pdFXeA313.png

图 1:来自 LDRA 工具套件的 MISRA 合规性报告示例(来源:LDRA)

MISRA C:2023合规框架

MISRA C 指南没有指定实现合规性的确切流程和工具,因为记录此类要求会不公平地限制嵌入式开发团队可以做的事情。相反,MISRA 合规性:2020 指南提供了“在声明 MISRA 合规性时软件开发过程中必须涵盖的内容”的定义,作为捕获最重要活动的框架。

MISRA 指南涵盖了许多流程和合规性要点。在这里,我们将介绍需要更多思考的活动,这些活动将对希望简化合规性工作的开发团队产生最大的影响。

定义规范的软件开发流程

MISRA 合规性:2020 指南指出,“MISRA 指南旨在在记录的软件开发过程框架内使用”,并且“遵守 MISRA 指南必须是代码开发阶段的一个组成部分,在提交代码以供审查或单元测试之前,需要满足合规性要求。

将合规性集成到新的或现有的开发流程中,首先要定义如何在生命周期的每一步验证 MISRA 规则和指令。这些活动会影响开发人员培训、合规性项目的创建和管理,以及合规性测试的运行方式。

开发团队应以足够全面的方式正式记录这些过程,以确保在开发生命周期的每个阶段完全实现所有软件需求,并且测试活动涵盖所有代码。此文档必须包括驱动开发任务的所有决策,包括培训、报告、开发工具链的选择和运行时配置。

在 MISRA C:2023 上培训开发人员

通过正式培训,开发人员可以花更少的时间试图自己了解MISRA合规性,而将更多的时间花在交付代码上。MISRA 合规性:2020 指南建议包含有关嵌入式应用程序使用 C 语言的概念以及安全和安保关键系统的细节。

除了代码之外,开发人员还应该了解他们选择的开发环境(从编译器工具链到静态分析工具)的安全和安保影响。随着 MISRA C:2023 包含针对复杂多线程系统的新指南,刷新开发人员对他们的选择如何影响 MISRA 指南的执行以及如何减少在并发应用程序中引入违规的可能性的理解变得更加重要。

静态分析工具为课堂培训提供了有效的补充,因为它们在课程结束后很长时间内提供了全面和实时的微学习形式。静态分析结果在编写代码时强化了 MISRA 规则和指令,在新手和有经验的开发人员的头脑中保持恒定的意识水平。

建立偏差流程

MISRA合规性要求代码供应商和收购方就规则和指令的解释达成一致。这种一致性至关重要,因为合规性的概念因项目而异,具体取决于它们各自的要求和特征。部分一致性来自建立一个管理偏离指南的流程,其中证明合规性可能不切实际或不可能遵循某个项目。

MISRA 合规性:2020 指南将偏差记录定义为包含以下信息

违反的准则

对可以接受违规行为的情况的描述

需要偏差的原因

解释上下文和语言问题的背景信息

一套要求,包括相关的风险评估程序和预防措施

使用自动化支持合规性活动

自动化减少或消除了MISRA合规活动中的手动工作和人为错误的可能性。为了从自动化工具中获得最大收益,开发团队应按照 MISRA 合规性:2020 指南的建议,在软件生命周期的早期部署它们:

“一个试图在其生命周期后期检查合规性的项目可能会花费大量时间重新编码、重新审查和重新测试,而且这种返工很容易意外引入缺陷。”

为了简化合规性测试,MISRA C:2012引入了两种规则分类:

对于分析技术可以提供结论性验证的规则,可决定

无法确定无法验证保证的情况

将可判定规则与MISRA的建议配对,使用静态分析进行验证,可以为自动化合规性测试提供高效而全面的解决方案。

MISRA C:2023 合规性始于坚实的战略

将 MISRA 合规性集成到开发流程中有助于改善代码的安全性。这种集成需要了解 MISRA C 规则和指令,团队将这些规则和指令嵌入到开发生命周期的各个方面。

从培训到自动化工具,MISRA合规流程应使开发人员能够最大限度地减少已知危险的编码实践,并支持代码供应商和收购方之间的期望一致。预先采用这些目标的组织将比那些等待的组织更有可能获得MISRA合规性的成功。

审核编辑:郭婷

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

    关注

    25

    文章

    5440

    浏览量

    133921
  • 嵌入式
    +关注

    关注

    5068

    文章

    19013

    浏览量

    303098
  • 自动化
    +关注

    关注

    29

    文章

    5510

    浏览量

    79086
收藏 人收藏

    评论

    相关推荐

    如何将功能整合到嵌入式固件

    重要,在嵌入式开发C语句可能特别难以理解,因为C语句用于修改粗略命名的特殊功能寄存器中看似随机的位。可重用性这与模块化有关,尽管在本节
    发表于 09-09 15:30

    嵌入式开发流程

    嵌入式开发流程一般是在PC机的Windows系统下安装Ubuntu虚拟机,搭建嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后在Windows下
    发表于 11-05 06:06

    嵌入式开发流程是怎样的?

    本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC机的Windows系统下安装Ubuntu
    发表于 11-08 06:24

    嵌入式开发

    嵌入式开发就是指在嵌入式操作系统下进行开发嵌入式Linux是以Linux为基础的嵌入式作业系统。这里提供了
    发表于 12-20 13:21
    <b class='flag-5'>嵌入式开发</b>

    使用C++构建嵌入式开发框架

    使用C++构建嵌入式开发框架
    发表于 10-25 11:25 17次下载
    使用<b class='flag-5'>C</b>++构建<b class='flag-5'>嵌入式开发</b>框架

    Linux下C编程 嵌入式开发

    Linux下C编程 嵌入式开发
    发表于 10-31 09:35 31次下载
    Linux下<b class='flag-5'>C</b>编程 <b class='flag-5'>嵌入式开发</b>

    如何将IP模块整合到System Generator for DSP

    了解如何将Vivado HLS设计作为IP模块整合到System Generator for DSP。 了解如何将Vivado HLS设计保存为IP模块,并了解
    的头像 发表于 11-20 05:55 3206次阅读

    如何将ARM嵌入式开发移植到LabVIEW开发环境的资料说明

    本文档的主要内容详细介绍的是如何将ARM嵌入式开发移植到LabVIEW开发环境的资料说明免费下载。
    发表于 03-01 08:00 20次下载

    嵌入式开发的应用重点是什么

    尽管物联网,嵌入式视觉,机器学习和其他新兴技术在开发组织的重要性日益提高,但CC ++仍是嵌入式开发
    发表于 12-27 16:17 2185次阅读

    嵌入式开发流程_嵌入式开发的前景

    当前,嵌入式开发已经逐步规范化,在遵循一般工程开发流程的基础上,嵌入式开发有其自身的一些特点。主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统
    发表于 07-30 11:23 2181次阅读

    嵌入式开发的产品有哪些_嵌入式开发流程

    本文主要阐述了嵌入式开发的产品,其次介绍了嵌入式开发流程
    发表于 08-31 15:38 1.1w次阅读

    嵌入式开发(一):嵌入式开发新手入门

    本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC机的Windows系统下安装Ubuntu
    发表于 10-14 10:58 79次下载
    <b class='flag-5'>嵌入式开发</b>(一):<b class='flag-5'>嵌入式开发</b>新手入门

    嵌入式开发资料免费分享

    嵌入式开发资料免费分享嵌入式工程师经验分享:如何学习嵌入式开发截取文档部分学习嵌入式工程师经验分享的资料分享给大家,文档上从、嵌入式系统的概
    发表于 10-21 11:07 47次下载
    <b class='flag-5'>嵌入式开发</b>资料免费分享

    嵌入式开发为什么选择C语言?它有哪些特点?

    众所周知,C语言在嵌入式开发占据着十分重要的地位,为什么嵌入式开发要选择C语言?嵌入式开发的方
    的头像 发表于 01-04 09:56 1190次阅读
    <b class='flag-5'>嵌入式开发</b><b class='flag-5'>中</b>为什么选择<b class='flag-5'>C</b>语言?它有哪些特点?

    c语言嵌入式开发

    电子发烧友网站提供《c语言嵌入式开发.zip》资料免费下载
    发表于 11-17 14:11 2次下载
    <b class='flag-5'>c</b>语言<b class='flag-5'>嵌入式开发</b>