MISRA-C是基于C89标准抽取出的安全C语言子集,已经逐渐成为安全关键嵌入式领域的软件编码标准。作为在嵌入式领域被广泛使用的编译器,GCC并没有针对任何安全子集规范做系统惶的语法和语义检查,不能帮助软件开发者尽早发现软件存在的安全隐患。本文基于GCC设计和实现了支持MISRA-C:2004安全子集规范的安全编译器CCRG-SC.在实现中,将MISRA-C的规则分为6类,提出了每类规则在GCC中的实现方法,并以tag相关规则为例介绍了具体的检测算法。采用CCRG-SC编译嵌入式操作系统弘C/OS,能够检测出违反MISR小C:2004安全子集规范的代码。
嵌人式软件已广泛应用于航空航天、武器控制系统等安全关键领域。这些领域的实时性、安全关键等需求,要求嵌入式软件具有高可信性[1],即高可靠性、安全性、保密性、生存性和容错性。目前,大多数嵌入式软件都采用C语言编写,但是C语言并非专门为嵌入式软件设计,没有针对嵌人式环境的安全性、可靠性的特殊要求做任何语法语义上的特殊约定,导致其中部分语法语义的使用会降低软件可信性。为了防止开发者使用这些可能导致安全隐患的语法语义,国内外普遍采用抽取C语言安全子集的方法,即在开发安全攸关软件的过程中只能使用C语言的一个安全子集。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !