• 如何使用MISRA改进嵌入式编程


    嵌入式编程主要用于驱动安装在大型设备(如汽车、飞机或医疗设备)旨在执行特定的专用功能的系统。

    每个专用功能都是通过嵌入式编程实现的。这些代码必须是可靠且无误的,因为任何漏洞都可能对嵌入式系统的安全造成毁灭性的后果。因此,应用像MISRA这样的编码规范来确保代码的可靠性和高质量是非常必要的。

    在这里,我们将阐释如何使用MISRA改进嵌入式编程。

    本文将包含如下几个部分:

    • 为什么可靠的代码对嵌入式编程至关重要
    • 2种适用于嵌入式编程和系统的关键编程语言
    • 如何使用MISRA改进嵌入式编程
    • 如何使用MISRA实现嵌入式编程合规

    为什么可靠的代码对嵌入式编程至关重要

    世界上最重要的系统都使用嵌入式软件来实现功能。

    嵌入式软件用于:

    • 人们每天驾驶的汽车。
    • 维持生命的心脏监护器(和其他医疗设备)。
    • 环球飞行的飞机。

    编码错误不容妥协。

    这就是嵌入式编程需要遵循指南的原因。这确保了代码是安全、可靠的。但是,这些指南可能会因所使用的编程语言而有所不同。 

    2种适用于嵌入式编程和系统的关键编程语言

    大多数嵌入式系统是使用C和C++语言编写程序的。

    这是因为C和C++支持对硬件进行低级别控制。C和C++支持嵌入式软件的复杂性。同时,使用C和C++语言可以生成高效的代码。

    另外,从事C/C++研发的程序员人数众多。他们能够维护最佳的性能——这是嵌入式系统的关键。

    如何使用MISRA改进嵌入式编程

    许多嵌入式行业都有严格的安全合规标准。这些标准通常需要使用编码规范。

    嵌入式软件有几种可用于C和C++的不同的编码规范。但MISRA®是最值得信赖的编码规范之一。MISRA规则可以确保代码符合行业标准,帮助您减少圈复杂度,并提高代码的质量。

    下面是不同行业的开发人员如何使用MISRA提高代码质量的三个示例。

    1. 使用MISRA提供更好的嵌入式汽车代码

    汽车开发人员信赖MISRA以开发出更好的代码。这是因为MISRA是汽车行业的质量与合规基准。

    “MISRA被公认为事实上的基准,并已被日本整个汽车行业采用,横跨从主机厂(OEM)到芯片的整个供应链。”— Socionext

    ISO 26262合规

    汽车行业需要遵循ISO 26262功能安全标准。

    ISO 26262有严格的汽车安全完整性等级(Automotive Safety Integrity Levels, 简称ASIL)要求——包括四个级别,即 A-D。ISO 26262建议使用编码规范来确保符合ASIL,并重点强调了MISRA编码规范。

    Protean Electric使用Helix QAC应用MISRA C规则。这有助于他们遵循ISO 26262。另外,Helix QAC还能发现其他工具忽略的问题。所以,Protean不必担心漏报。

    一致的代码质量

    Delphi Automotive也使用Helix QAC应用MISRA C规则。这有助于开发人员采用最佳编码实践,确保所有开发人员的代码质量保持一致性——而不管个人的经验如何。

    2. 使用MISRA提供更好的嵌入式轨道交通代码

    轨道交通系统开发人员也相信MISRA能提供更好的代码。

    “MISRA显然是最合适的选择。MISRA最初由汽车行业创立,是创立时间最长、最著名的规则之一,而且已在多个安全相关市场得到了广泛的采用。”— Viveris Technologies

    EN 50128合规

    轨道交通行业需要遵循EN 50128功能安全标准。

    EN 50128软件安全完整性等级(Software Safety Integrity Levels, 简称SSIL)包括五个级别,即SSIL0-SSIL4。若要符合所有的SSIL,建议使用编码规范——但要符合SSIL3和SSIL4,则必须使用编码规范。

    编码规范必须能够:

    • 防止使用未定义或未指明的行为。
    • 防止程序员犯常见的错误。
    • 限制某些架构的使用。
    • 消除潜在的歧义。
    • 限制库的使用。

    MISRA能满足这些需求,并帮助确保软件的质量。

    Viveris Technologies使用Helix QAC应用MISRA规则并满足EN 50128的合规要求。这确保了其无人驾驶列车——Lyon Metro——是安全、可靠的。

    准确的诊断

    对于Viveris来说,准确的代码诊断与合规一样重要。

    通过使用Helix QAC,Viveris获得了比使用其他工具更好的MISRA C规则覆盖率。真正的问题得以确定并修复了,误报也更少了。

    因此,Viveris的代码质量更好,开发效率更高。

    3. 使用MISRA开发更好的嵌入式航空航天代码

    航空航天开发人员也信赖MISRA以开发更好的代码。

    MISRA规则集是由一批全球顶级编码专家制定的,适用于(并广泛应用于)任务关键型和安全关键型行业,包括航空航天。

    DO-178C合规

    航空航天行业需要遵循DO-178C功能安全标准。

    DO-178C包括五个安全级别——A-E。符合这些安全级别需要遵循一定的编码规范,比如MISRA。

    Selex ES使用MISRA C++作为编码规范,并使用Helix QAC来确保符合MSIRA。

    质量甚至在自动生成的代码中

    Selex ES还使用Helix QAC和MISRA C、C++规则,以确保其嵌入式编程的质量。Selex ES甚至在自动生成的代码中使用Helix QAC和MISRA C、C++规则。这意味着他们可以确保嵌入式软件的质量并加快开发的速度。

    如何使用MISRA实现嵌入式编程合规

    为了符合MISRA编码规范,您需要应用MISRA规则。这可以在代码审查期间人工完成,也可以使用静态代码分析工具自动完成。

    然而,静态代码分析工具却不尽相同。对于MISRA,一些工具比其他工具更准确。而Helix QAC是适用于MISRA C和C++的最准确的静态代码分析工具。

    若您想深入了解适用于MISRA的Helix QAC,立刻注册申请免费试用吧。 

    “原创内容,转载请标明出处”

  • 相关阅读:
    vue中的计算属性和监听属性
    LangChain的核心模块和实战
    MATLAB : Plot函数及其用法
    SpringMVC中有哪些常用的注解呢?
    Centos下安装FTP并进行虚拟用户访问方式配置
    【Linux--进程间通信】
    小程序-走迷宫
    如何在3DMax中使用超过16个材质ID通道?
    flink sql热加载自定义函数 不重启flink集群
    CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式
  • 原文地址:https://blog.csdn.net/Trinity_Techologies/article/details/126016257