新宝来车怎么样
汽车专用软件的C 语言编程指南
雪佛兰camaro科迈罗Guidelines for the Use of the C Language in Vehicle Based Software
嵌入式软件国际标准研究
中国单片机公共实验室
一加仑等于多少升汽油
2007 年5 月
2007 中国嵌入式计算平台论坛研究报告
C 语言是开发嵌入式应用的主要工具,然而C 语言并非是专门为嵌入式系统
设计,相当多的嵌入式系统较一般计算机系统而言对软件安全性(可靠性)有更
苛刻的要求,所以因此会带来更多的安全隐患。
大灯清洗装置丰田汽车已经表示要对2005 年10、2003 年8 月至2004 年11 月生产的约
16 万辆混合动力汽车“普锐斯”进行无偿修理。据称,主要是发动机的ECU 程
汽车日行灯序出了问题,行驶中发动机会突然停止。此外宝马公司2003 年7 月也因发动机
ECU 的软件问题而提出召回缺陷汽车。1999 年7 月22 日,通用汽车公司(General
Motors)也因为其软件设计上的一个问题,被迫召回350 万辆已经出厂的汽车。
同样,在电梯和医疗器械产品上也出现过类似的严重问题。
由此可以看出软件质量问题已经越来越深刻的影响到了产品的质量,甚至有
些时候是致命的,在航空航天等领域更是如此。然而,很少有程序员知道什么样
的程序是安全的程序。很多程序只是表面上可以干活,还存在着大量的隐患。当
然,这其中也有C 语言自身的原因。因为C 语言是一门‘入门容易,得道难’
的语言,其灵活的编程方式和语法规则对于一个新手来说很可能会成为机关重重
的陷阱。同时,C 语言的定义还并不完全,即使是国际通用的C 语言标准,也
还存在着很多未完全定义的地方。要求所有的嵌入式程序员都成为C 语言专家,
避开所有可能带来危险的编程方式,是不现实的。最好的方法是有一个针对安
全性的C 语言编程规范,告诉程序员该如何做。MISRA C 因此应运而生。
1994 年,在英国成立了一个叫做汽车工业软件可靠性联合会(The Motor
Industry Software Reliability Association,简称MISRA)的组织。它是致力于协助
汽车厂商开发安全可靠的软件的跨国协会,其成员包括:AB 汽车电子、罗孚汽
车、宾利汽车、福特汽车、捷豹汽车、路虎公司、Lotus 公司、MIRA 公司、Ricardo
公司、TRW 汽车电子、利兹大学和福特VISTEON 汽车系统公司。
经过了四年的研究和准备,MISRA 于1998 年发布了一个针对汽车工业软件
安全性的C 语言编程规范——《汽车专用软件的C 语言编程指南》(Guidelines for 众泰朗悦
the Use of the C Language in Vehicle Based Software),共有127 条规则,称为
MISRA C:1998。目前MISRA C:2004 版已有141 条规则,21 个类别,每一条规
则对应一条编程准则。