浅谈嵌入式的编程规范【拜托了,物联网!】
0前沿
编程不能随便来,需要有一定的规范,才可以安全可靠,今天说说最广泛的规范——MISRA C,当然网上也有盛传的华为的软件编程规范,不过大部分都是从MISRA中相融相似。
1、MISRA C
MISRA C是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。针对C++语言也有对应的标准MISRA C++。
MISRA C一开始主要是针对汽车产业 ,不过其他产业也逐渐开始使用MISRA C:包括航空、电信、国防、医疗设备、铁路等领域中都已有厂商使用MISRA C;
像现在物联网最有名的操作系统 freeRTOS 代码完全依据 MISRA 规范设计,这让它在欧洲和北美的一些软件安全规范很容通过,很容易进入家电或是工业领域的,现在国内很多主流物联网操作系统代码也开始重视 安规设计。
2、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项是推荐使用的规则。
第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》(或称作MISRA-C:2004),其中有许多重要建议事项的变更,其规则也重新编号。MISRA-C:2004有141项规则,其中121项是强制要求,其余的20项是推荐使用的规则。规则分为21类,从“开发环境”到“运行期错误”。
3、检测工具
大部分的规定可以用支援静态代码分析的工具检查,有些规定需要用支援动态代码分析的工具检查。
有些专门用来检测代码规则的工具如下:(一些开源,大部分收费)
Polyspace |
GrammaTech |
Klocwork |
Coverity |
LDRA |
Parasoft |
PC-Lint |
QA-C |
Understand |
现在很多编译器也开始支持编码规范检测,如TI的CCS、瑞萨的CS+、ARM的IAR,等等。
4、规范介绍
不想讲了,我扎到了规范原文,需要请下载学些吧,不过这个确实可以增加自己编码的的可靠性。也希望我们的LiteOS内核系统也可以通过MISRA测试,这样在商用的过程中更容易做安全认证。
【拜托了,物联网!】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/296704
- 点赞
- 收藏
- 关注作者
评论(0)