MISRA C是由汽车产业软件可靠性协会(MISRA,motor industry software reliability association)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。针对C++语言也有对应的标准MISRA C++。MISRA C一开始主要是针对汽车产业:如果我们去参加近几年的有关汽车行业的基于自动代码生成技术和基于模型的设计技术的讲座、研讨会等等,无一例外都会听到有关MISRA-C 2004,甚至是MISRA-C 2008、MISRA-C 2012等更新版本的介绍。此外,其他产业也已经逐渐开始使用MISRA C:包括航空航天、电信、国防、医疗设备、铁路等领域中都已有厂商使用MISRA C:这些领域无一不对代码的规范,特别是代码的安全有非常高的要求。MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》是在1998年发行,一般称为MISRA-C:1998.。MISRA-C:1998有127项规则,规则从1号编号到127号,其中有93项是强制要求,其余的34项是推荐使用的规则。在2004年时发行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》(或称作MISRA-C:2004),其中有许多重要建议事项的变更,其规则也重新编号。MISRA-C:2004有141项规则,其中121项是强制要求,其余的20项是推荐使用的规则。规则分为21类,从“开发环境”到“运行期错误”。通常认为,如果能够完全遵守这些标准,则你的C代码是易读、可靠、可移植和易于维护的。最近很多嵌入式开发者都以MISRA C来衡量自己的编码风格,比如著名的uC/OS-II就得意地宣称自己99%遵守MISRA标准。目前有许多工具声称可以检查代码和MISRA规则相容性,不过MISRA没有相关认证的程序。相关工具可以帮助使用者评估和比较检查的结果,也会提供一些可符合MISRA-C规定的指南,但是目前大部分的工具对静态代码分析的工具检查基本能实现,对动态代码分析则还不能完美实现。
MISRA-C-2004 中文版
MISRA-C-2004__中文版.pdf
(455.63 KB, 下载次数: 91)
|