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

    文章

    5200

    浏览量

    132638
  • 嵌入式
    +关注

    关注

    4982

    文章

    18286

    浏览量

    288479
  • 自动化
    +关注

    关注

    28

    文章

    5037

    浏览量

    77732
收藏 人收藏

    评论

    相关推荐

    嵌入式开发入门之旅

      课程目标:本次免费体验课程按照嵌入式开发设计的流程,从嵌入式开发基本概念、嵌入式项目流程
    发表于 07-09 16:57

    嵌入式开发入门之旅

      课程目标:http://www.uplooking.com/sh_hd01.php本次免费体验课程按照嵌入式开发设计的流程,从嵌入式开发基本概念、
    发表于 07-10 15:59

    嵌入式开发的核心竞争力是什么

    的话,那ARM架构就是灵魂。在低功耗嵌入式领域,个人觉得ARM基本立于不败之地。ARM公司几乎”标准“发挥到极致。对于工程师,嵌入式开发和CS开发有很大的不同。原因是
    发表于 05-07 15:52

    嵌入式开发要学什么内容 嵌入式开发学习路线介绍

    客学院嵌入式开发讲师在这里介绍嵌入式开发学习路线,希望对于嵌入式开发学习内容不了解的读者可以有所帮助。嵌入式开发要学什么内容 嵌入式开发学习
    发表于 06-30 10:07

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

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

    嵌入式开发的核心竞争力有哪些?

    ,针对一个具体的产品,能够将不同的技术应用在同一个产品上,做到技术的综合应用。深入的行业经验和扎实的原理技术,使得嵌入式开发整合产品的技术时,优势尽显。以嵌入式平板电脑为例,一个优
    发表于 11-27 15:00

    嵌入式开发学习路线图

    编程掌握Java语言基本语法,面向对象编程方法,同时和C语言进行对比理解面向对象的高级用法,理解Java多线程编程,网络编程及常用Java类…… ⑤ 嵌入式Linux项目开发
    发表于 12-31 09:47

    嵌入式开发流程

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

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

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

    嵌入式开发为什么选择C语言?

    1、嵌入式开发为什么选择C语言?(面试题!!!)嵌入式开发操作系统是核心,需要移植,并在上层和底层做开发,而操作系统的核心是内核,所有内核
    发表于 12-15 07:45

    如何将嵌入式开发板设置成无密码登录呢

    如何将嵌入式开发板设置成无密码登录呢?有什么设置步骤呢?
    发表于 12-27 06:48

    如何将mini2440嵌入式开发板移植到OpenSSH上去呢

    如何将mini2440嵌入式开发板移植到OpenSSH上去呢?有哪些移植步骤呢?
    发表于 12-27 06:13

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

    嵌入式开发的产品流程是怎样的?
    发表于 02-14 06:46

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

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

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

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