安全是更好的

2003年2月3日
娱乐领域之外的汽车软件设计比大多数系统设计都要困难。可靠性和安全性通常比特性或最大性能更重要。总的来说,硬件和软件设计往往非常……

娱乐领域之外的汽车软件设计比大多数系统设计都要困难。可靠性和安全性通常比特性或最大性能更重要。总的来说,硬件和软件的设计往往是非常保守的。

C编程语言对于车辆平台非常流行。不幸的是,在C中创建错误是众所周知的。悬挂指针,缓冲溢出,甚至丢失的加号也可以造成严重破坏,即使是最好的系统设计也是如此。通过限制程序员可以使用的特征来减少这种错误的一种方法是减少C的功率。

电机in-dustry软件可靠性关联(Misra)采用其C指南采用此方法。Misra“基于车辆软件的发展指南”文件包含与C的ISO / ANSI标准编程语言有关的127条规则,以及理由和示例。许多流行的嵌入式C和C ++编译器供应商实施这些规则,因此程序员可以将滥用标记为警告或错误。

尽管被称为MISRA C的目的是开发嵌入式汽车系统,但它同样适用于几乎任何嵌入式应用环境。许多MISRA C规则限制了C语言特性的使用,比如指针。指针经常用于提高效率,即使在数组索引等替代方法可以提供相同效果的情况下也是如此。

在过去,使用指针的代码效率明显高于数组,并且提供了更高的性能。许多当前的编译器在内部将这样的数组操作转换为指针操作,本质上是将基于数组的源代码转换为与指针版本一样高效的目标代码。这样做的好处是,面向指针的编译器生成的代码是以一种可控的方式创建的。

MISRA C的规则分为17个部分,包括声明和定义、控制流、指针和数组、结构和联合以及标准库。规则又分为必需规则和咨询规则。大多数C编译器实现了MISRA C的限制,这样开发者就可以使用完整的标准或者它的一个子集。在将应用程序迁移到MISRA C时,有选择地使用MISRA C非常方便。

有些人可能会认为对程序员的限制会导致叛变,但大多数开发人员擅长使用C将非正式地实施许多屠杀规则。表中显示的规则34只是一个示例。嵌入式作业是另一个。有超过120项规则,程序员将被难以置信,不要找到他们更喜欢的一些。大多数是常见意义改进,在理解规则及其含义之后将吸引程序员。

MISRA C不是一个标准,但更多的是一个建议。规则是用简单的英语编写的,尽管有些规则是模糊的,并且存在一些冗余。由于没有标准的测试套件,因此MISRA C编译器或遵从性测试工具可以为相同的源代码生成不同的错误或警告消息。

不出所料,MISRA C在汽车领域非常受欢迎。MISRA C也在大多数嵌入式领域找到了追随者,这仅仅是因为建议是如此完整。任何通过附加规则的改进都是微不足道的。

即使在使用MISRA C时,编程经验仍然很重要。尽管它不能完全消除错误,但MISRA C将有助于减少应用程序中的错误数量。

www.misra.org.uk


isra c示例
•规则34(必需)
•逻辑&&或||的操作数应该是主要表达
无效的
if(x = = 0 && Ishigh)
有效的
If ((x == 0) && ishigh)

主表达式是常量、单个标识符(如ishigh)或圆括号表达式。括号对于可读性和确保行为符合程序员的意图非常重要。


从我们的合作伙伴

2.2 mhz,低电磁干扰,双3-A USBType-C®充电接口控制器

2.2-MHz,低EMI,双,3-A USB Type-C充电端口转换器,具有热管理

控制输入电源,为现在和下一代电源控制器

当前和下一代电源控制器的输入电源控制应用简介。随着电力推进的采用,以及发动机的性能的提高。

DIY pmic:用户可编程pmic

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

适用于恶劣环境的外壳材料

问题解决方案框架材料可用于粗糙环境。金属外壳通常不是强硬环境的正确产品......

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

7月6日,2021年
编辑器注 - 虽然众所周知,其数字处理性能和吞吐量,但协处理器架构提供嵌入式系统...

M12连接器自动化和行业4.0合规性

由...赞助。M12连接器自动化和行业编码4.0合规性|1.连接器在任何形式的持续运行中都很重要......

声音你的意见!

本网站要求您注册或登录后发表评论。
目前还没有任何评论。想开始对话吗?

从我们的合作伙伴

2.2 mhz,低电磁干扰,双3-A USBType-C®充电接口控制器

2.2-MHz,低EMI,双,3-A USB Type-C充电端口转换器,具有热管理

控制输入电源,为现在和下一代电源控制器

当前和下一代电源控制器的输入电源控制应用简介。随着电力推进的采用,以及发动机的性能的提高。

DIY pmic:用户可编程pmic

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

适用于恶劣环境的外壳材料

问题解决方案框架材料可用于粗糙环境。金属外壳通常不是强硬环境的正确产品......

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

编辑器注 - 虽然众所周知,其数字处理性能和吞吐量,但协处理器架构提供嵌入式系统...
Baidu