ThankStock.
ElectronicDesign 21301 Misrapromo 853573130 0

Misra C不仅适用于汽车应用

2018年3月23日
MISRA C和它的c++对等物最初是为汽车应用程序而开发的,但它们实际上应该用于任何C/ c++开发。

如果您目前不使用MISRA C或MISRA C ++检查C / C ++开发过程,则可能会假设它仅用于汽车应用程序。鉴于标准来自于此,这并不令人惊讶电机行业软件可靠性协会(Misra)

MISRA是一个编码标准规范,包括大量规则,其中大部分都可以通过静态分析工具自动检查。静态分析工具可以显着减少代码中的错误数,但很少有效地使用这些(如果有的话)。这巴尔集团2017年嵌入式系统安全与安全调查注意,在关键应用领域中,只有9%的开发人员使用完全自动化的工具(见图)

Barr集团的2017嵌入式系统安全与安全调查指出,在关键应用领域,只有9%的开发人员使用完全自动化的工具,如静态分析。

Barr Group首席技术官Michael Barr表示:“不管你的最终应用是什么,要想拥有一个更安全、更安全的嵌入式系统,一个重要的步骤就是要有一个书面的编码标准,项目中的所有代码都必须遵循这个标准。编码标准,如MISRA-C/ c++指南和Barr Group的嵌入式C编码标准,都是专门为减少潜在bug而设计的。然而,仅仅使用编码标准是不够的。它们必须得到执行。理想情况下,通过静态分析器等工具自动检查每条规则的一致性。不幸的是,某些类型的良好编码标准规则不能通过工具来实现。在这种情况下,人力代码检查是最好的补充。”

与流程相关的操作(如代码检查)是有用的,但它们常常会遗漏一些微小的问题,或者掩盖一些与体系结构问题一样具有灾难性的问题。一个适当的开发过程应该包括多个编码标准方面。

MISRA标准包括一组规则,这些规则通常限制语言的使用,因此消除了许多程序员容易犯的常见错误(通常是由于输入错误)。例如,规则5.2表示内部作用域中的标识符不应与外部作用域中的标识符使用相同的名称,因此隐藏该标识符.这意味着一个常见的变量名称重置不应该在函数中作为全局和局部使用。

规则12.4是不要使用具有副作用的表达式.它捕获一些动作,比如表达式中的赋值。一个常见的错误是使用赋值操作符(=)而不是比较操作符(==)。

大多数C和c++编译器都有编译时标志,告诉编译器检查这些规则中的一些,尽管这些标志通常不会根据静态分析标准(如MISRA或Barr Group 's free)来描述嵌入式C编码标准

软件供应商越来越意识到需要提供使用自动工具检查的代码。例如,肝癌嵌入式发布了符合禁检的Cryptocore嵌入式加密套件。Cryptocore软件库通过HCC的嵌入式加密管理器(EEM)进行管理,该管理员也以类似的方式检查。HCC的可扩展身份验证协议(EAP)框架也是混合的一部分。其符合禁项标准的网络堆栈旨在支持嵌入式设备的安全无线连接,其中一些可能会在汽车中充满卷入汽车。您的网络堆栈是否满足这些要求?

HCC并不孤单。用于Kinetis微控制器的NXP的Kinetis SDK v2还落入了使用静态分析工具检查的越来越多的代码。“所有驱动程序和启动代码都符合Misra-C:2004,并使用覆盖性静态分析工具进行检查。”synopsys.Coverity是众多提供大量静态分析工具的供应商之一,这些工具超出了MISRA的范围。此领域中的其他工具供应商包括LDRA.克拉姆klockwork.覆盖, 和编程研究.Synopsys确实提供了一个可免费的服务Coverity扫描可用于开源项目。

MISRA C/ c++被需要的一个原因是语言和编译器没有提供必要的支持来消除困扰开发人员的许多常见错误。语言规范根本不允许这样做。然而,有一些编程语言是这样做的,例如火花和艾达。它们通常用于比汽车应用要求更严格的空间和航空电子应用。SPARK将分析过程发挥到了极致——满足一组需求的应用程序是可证明的。

不管使用什么工具,很明显,更自动化的检查只会使使用这些工具的公司受益。正确的代码是安全的应用程序所必需的。从长远来看,它的成本效益也更高,因为随着应用程序进入beta测试阶段,发现和修复bug的难度和成本会越来越高。

受欢迎的合作伙伴内容

DIY pmic:用户可编程pmic

在DIY PMIC:用户可编程PMIC培训中,我们将介绍DIY PMIC的概念,然后是用户可编程PMIC。一节集中在h…

用户可编程电源管理IC (PMIC) 6个DC/DC转换器,1个LDO和3个负载开关

用户可编程电源管理IC (PMIC) 6个DC/DC转换器,1个LDO和3个负载开关

多轨电视电源参考设计,灵活划分,最大限度地节省电力

已经开发了一个完全组装的电路板,仅用于测试和性能验证,不可推出..下载即用的系统f ...

实时操作系统(RTOS)及其应用

2021年2月25日,
什么是操作系统。实时操作系统(RTOS)是一个轻量级的操作系统,用于在资源和时间限制下简化多任务和任务集成……

声音你的意见!

本网站要求您注册或登录后发表评论。
尚未添加任何评论。想要开始对话?
Baidu