嵌入式IoT常用编程语言C的行业规范

举报
o0龙龙0o 发表于 2021/12/31 08:24:11 2021/12/31
【摘要】 物联网常用的C语言,在汽车领域和工业领域有着编程规范,这次说到时就是MISRA C

0前沿


物联网常用的C语言,在汽车领域和工业领域有着编程规范,这次说到时就是MISRA C

1、MISRA C


MISRA C是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。针对C++语言也有对应的标准MISRA C++。

MISRA C一开始主要是针对汽车产业 ,不过其他产业也逐渐开始使用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类,从“开发环境”到“运行期错误”

2、MISRA C的检测工具


有了规范,我们还是希望自动化可以处理,所以引入了比较多的工具,有许多工具声称可以检查代码和MISRA规则相容性,不过MISRA没有相关认证的程序。相关工具可以帮助使用者评估和比较检查的结果,也会提供一些可符合MISRA-C规定的指南。大部分的规定可以用支援静态代码分析的工具检查,有些规定需要用支援动态代码分析的工具检查:

  • Polyspace
  • GrammaTech
  • Klocwork
  • Coverity
  • LDRA
  • Parasoft
  • PC-Lint
  • QA-C
  • Understand 

3、哪些操作系统使用该规范编写


一般用于欧洲或北美的的工业品代码编写遵守MIRSA C,比较有名是的freeRTOS、LiteOS部分代码。


















【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。