MISRA C是由汽车产业软件可靠性协会(Motor Industry Software Reliability Association)提出的C语言开发规范,目标是在增进嵌入式零碎的安全性及可移植性。

一开始,MISRA C次要是针对汽车产业 ,倒退过程中,其余产业也逐步开始应用MISRA C,包含航空、电信、国防、医疗设施、铁路等畛域。

浏览本文,您将理解到嵌入式编码的两种要害语言,以及如何通过MISRA来改良嵌入式编码。龙智作为DevSecOps研发平安经营一体化解决方案供应商、Perforce受权合作伙伴,继续关注动态测试畛域动静与倒退,为您提供性能平安和规范合规当先的动态代码分析器,并带来最新洞察与最佳实际参考。分割咱们,立刻理解C/C ++语言最佳动态代码分析器Helix QAC如何帮您实现自动化利用MISRA规定。

嵌入式编码为装置在大型设施上的零碎提供能源,比方汽车、飞机或医疗设施等,这些零碎被设计来执行特定的专用性能。

每个专用性能都通过嵌入式编码实现的。这段代码必须是牢靠且无谬误的,因为任何破绽都可能对嵌入式零碎的安全性造成毁灭性结果。因而,利用编码标准(如MISRA)来确保代码的可靠性和品质是十分必要的。

本篇文章将解释如何应用MISRA改良嵌入式编码。

为什么牢靠的代码对于嵌入式编码来说必不可少?

嵌入式软件赋能世界上最重要的零碎。它被用于:

  • 人们每天驾驶的汽车
  • 维持生命的心脏监视器(和其余医疗设施)
  • 盘绕世界航行的飞机

因而,编码谬误是齐全不容许产生的。

这就是为什么嵌入式编程须要遵守规则的起因——确保代码是平安、牢靠且有保障的。而这些规定可能会依据所应用的编程语言而有所不同。

嵌入式编码和零碎的2种要害编程语言

大多数嵌入式零碎都是用C和C++编程的。

这是因为C和C++容许对硬件进行低级管制。C和C++反对嵌入式软件的复杂性。同时,应用这些语言可生成高效的代码。

另外,还因为程序员中有很大比例在应用C和C++,而且他们能够放弃最佳性能——这对于嵌入式零碎来说是要害。

如何应用MISRA进行嵌入式编码

许多嵌入式行业都有严格的平安合规标准,而这些标准往往须要应用编码标准。

嵌入式软件有几种不同的C和C++编码标准可供选择。MISRA® 是最值得信赖的编码标准之一。MISRA规定可能确保代码合乎行业标准。它帮忙您缩小循环复杂性,并进步代码的品质。

上面是不同行业的开发人员如何应用MISRA进步代码品质的三个例子。

1. MISRA帮忙改善嵌入式汽车代码

汽车开发人员置信MISRA可能帮忙他们确保代码变得更好。因为MISRA是汽车行业品质和合规性的基准。

“一个客观事实是,MISRA曾经被公认为是基准,并已被整个日本汽车行业采纳,笼罩从OEMS始终到芯片级的整个供应链。”
——Socionext 公司

ISO 26262合规性

汽车行业须要恪守ISO 26262这一性能平安规范。

ISO 26262对汽车平安完整性等级(ASIL) (A到d)有着严格的要求。它倡议应用编码标准来确保合乎ASIL,并强调了MISRA编码标准。

Protean Electric公司应用Helix QAC来利用MISRA C规定,这对他们恪守ISO 26262带来了很大的帮忙。此外,Helix QAC可能发现其余工具脱漏的问题。因而,Protean不用放心呈现误报。

稳固的代码品质

Delphi汽车公司也应用Helix QAC来利用MISRA C规定,帮忙他们的开发人员采纳最佳编码实际,并确保了无论集体教训如何,所有开发人员的代码品质都能始终如一。

2.MISRA提供更好的嵌入式铁路代码

铁路零碎开发人员也信赖MISRA能提供更好的代码。

“MISRA是不言而喻的抉择。它最后由汽车行业创立,是历史最悠久、最受尊敬的规范之一,并被多个平安相干市场宽泛采纳。”
—— Viveris Technologies

EN 50128合规性

铁路行业须要合乎性能平安规范EN 50128。

EN 50128有五个软件平安完整性等级(SSIL),范畴从SSIL0到SSIL4。为了合乎所有SSIL的要求,举荐应用一个编码标准,但SSIL3和SSIL4是强制的。

该编码标准必须:

  • 避免应用未定义或未指定的行为
  • 避免程序员犯常见谬误
  • 限度某些构造的应用
  • 打消潜在的歧义
  • 限度库的应用

MISRA满足这些要求,并帮忙确保您的软件品质。

Viveris Technologies应用Helix QAC来利用MISRA规定,并满足EN 50128的合规性要求。这确保了他们的无人驾驶列车——里昂地铁是平安、牢靠的。

精确的诊断

对于Viveris来说,精确的代码诊断与合规性同样重要。

通过应用Helix QAC,他们取得了比应用其余工具更好的MISRA C规定覆盖率。真正的问题被辨认并修复。并且误报更少。

因而,他们的代码变得更好了,工夫也失去了更好的利用。

3. MISRA提供更好的嵌入式航空航天代码

航空航天开发人员也信赖MISRA能够提供更好的代码。

MISRA规定集来自一些世界领先的编码专家。它实用于(并被宽泛采纳)工作要害型和平安要害型行业——包含航空航天。

DO-178C合规性

航空航天业须要恪守性能平安规范DO-178C。

DO-178C包含从A到E的五个安全级别。恪守这些安全级别须要一个编码标准,例如MISRA。

Selex ES公司应用MISRA C++作为他们的编码标准,并确保MISRA合乎Helix QAC。

确保品质——即便在主动生成的代码中

Selex ES还应用Helix QAC、MISRA C和C++ 规定来确保其嵌入式编程的品质。他们甚至在主动生成的代码上应用它。这意味着他们能够确保嵌入式软件的品质,并放慢开发工夫。

嵌入式编码如何实现MISRA合规性

为了合乎MISRA编码标准,您须要利用MISRA规定。这能够在代码审查期间手动实现,或者能够应用动态代码分析器主动实现。

然而,并不是所有的动态代码分析器都是雷同的。对于MISRA,不同工具的准确性有差异,而Helix QAC是MISRA C和C++最精确的动态分析器。
应用Helix QAC实现MISRA合规性的示例

观看这个小视频,您能理解到Helix QAC是如何使编码更容易合乎MISRA C:2012。

https://www.bilibili.com/vide...