为了协助评估电子控制单元中使用的软件代码的质量,汽车工业软件可靠性协会 (MISRA) 引入了相关指南,对在汽车和飞机上所运行的软件中使用 C 代码给予指导。1998 年,MIRA Ltd. 发布了 MISRA C (MISRA C:1998),提供了符合安全完整性等级 (SIL) 2 及更高等级的标准化、结构化语言的一个受限子集。
到目前为止,该标准发布了数次更新,包括 MISRA C:2004、适用自动代码生成的 MISRA AC AGC 标准、针对 C++ 的 MISRA C++:2008 以及 MISRA C:2012 标准。
有关 MISRA C 的详细信息,请访问 misra.org.uk
Simulink、Stateflow 和 Embedded Coder 广泛用于为 MISRA C® 生成嵌入式软件。Polyspace® 代码验证产品用于分析手写代码或生成的代码是否符合 MISRA C 标准。Polyspace Bug Finder 支持 MISRA-C:2004、MISRA-C++:2008、MISRA C:2012、MISRA AC AGC 等编码规范检查。
您可以对模型或子系统进行配置,以便代码生成器使用 Code Generation Advisor 生成最可能符合 MISRA C:2012 的代码。生成的代码可以进一步使用 Polyspace 检查 MISRA 合规性,且结果可以追溯到模型。您可以在模型级别进行注释,为存在的任何偏差提供合理解释。
了解更多关于生成符合 MISRA 的代码的信息:
为了协助用户进一步实现其 MISRA C 合规性,MathWorks 提供了 Embedded Coder 与 Simulink 和 Stateflow 模型结合使用的 MISRA 支持表 。
MISRA C 分析包包括:
- 包含规则摘要和详细示例的文档
- Simulink 模型