如何使用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,立刻注册申请免费试用吧。 

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值