MISRA C是汽车工业软件可靠性协会(MISRA)开发的一套针对C编程语言的软件开发指南,目的是提升嵌入式系统的安全性和可移植性。2012发布的MISRA C第三版,称为MISRA C:2012。MISRA C不能100%确保程序不出问题,但能有效预防编程带来的问题,提升代码的可靠性。
embOS是SEGGER提供的一款抢占式的RTOS,旨在成为开发嵌入式应用程序的基础,可用于所有流行的内核、编译器和开发工具,符合MISRA-C:2012标准。
为了符合MISRA-C:2012标准,
需要做些什么?
MISRA-C:2012的官方文档,在关键系统中使用C语言的指南,解释了为了达到MISRA-C:2012的要求需要做的工作。
MISRA-C:2012定义了一组C编程人员必须遵循的准则。这些准则分为两类,指示(Directives)和规则(Rules)。此外,所有准则分类为强制 (mandatory)、必需 (required)或建议(advisory)。强制准则绝不能被违反。必需或建议类型的准则,可以违反,但每一次违反规定的行为都必须在专门的MISRA文件中进行记录和解释。
大多数准则都可以用静态分析工具进行测试,其他准则可以使用C编译器或手动代码审查来检查。因此,静态分析工具没有报告问题,不意味着C源代码完全符合MISRA-C:2012。专用的MISRA文档是强制性的,MISRA-C:2012官方文件解释了这种文件的结构。
embOS代码的哪部分符合MISRA标准?
一般来说,embOS由三部分组成:
1、通用源代码,对于所有embOS移植都是一样的。
2、内核/编译器特定的源代码。
3、板级支持包文件。
embOS MISRA合规性仅涵盖通用源代码。如果需要内核/编译器特定的移植代码符合MISRA规范,则向SEGGER申请。但通常不检查板支持包文件是否符合MISRA规范。
使用的静态分析工具?
embOS使用的分析工具为PC-lint v9。OS源代码包含了一些MISRA指南的Lint抑制注释,这些有助于分析哪些MISRA- C:2012指南被违反,需要在我们的MISRA文档中解释。必需的和建议型的准则一样,我们需记录并解释违反要求的准则是正确的。
使用其它静态分析工具报告的违规行为,
如何处理?
如果使用的静态分析工具报告违反MISRA-C:2012,并不表明embOS不符合MISRA-C:2012。embOS仅仅没有包含你所选择的静态分析工具的抑制注释。有许多不同的分析工具可用,我们无法在embOS源代码中为所有工具包含相应的注释。
处理这个问题的最简单的方法是禁用项目中所有embOS文件的MISRA检查,没有必要检查embOS文件的合规性,因为SEGGER已经完成了该项工作。
如何获得embOS MISRA-C:2012文件?
如果应用中集成了embOS,并且你需要证明应用符合MISRA-C:2012,则可以从SEGGER购买embOS MISRA-C:2012文件。
麦克泰公司代理SEGGER全线产品,具有丰富的RTOS、中间件、分析软件与调试工具使用方面的知识和经验。
全部0条评论
快来发表一下你的评论吧 !