使用Doxygen的文档MISRA / QA-C消息抑制

m0n*_*KeY 5 c embedded doxygen misra

我目前正在从事一个项目,该项目必须符合MISRA 2012。但是在嵌入式世界中,您无法满足每一个MISRA规则。因此,我必须禁止某些由QA-C生成的消息。他最好的解决方案是什么?

我正在考虑在每个模块头文件中创建一个表,并带有对相关代码行的引用(\ ref和\ anchor),描述等。第一个问题是:我不能使用Doxygen降价表功能,因为那样说明必须在一行中,因为Doxygen表不支持换行。因此,我考虑使用一个简单的逐字表格,您认为呢?

还是有一种自动生成此类表的方法?

问候m0nKeY

Lun*_*din 2

根据 MISRA 的规定,所有此类不需要的规则都必须由您的偏差程序处理,因为它们要么是“必需的”,要么是“建议的”。您不得偏离“强制性”规则。(严格来说,您不需要调用咨询规则的偏差程序。)

根据我的经验,迄今为止最安全、最顺利的方法是不允许具体情况而出现个人偏差。所有与 MISRA 的偏差都应在您公司的编码标准中说明,并且为了偏差,您必须更新该文档。这反过来又会强制获得文档所有者的批准,文档所有者最好是团队中最坚强的 C 资深人士。

这样,您就可以防止经验不足的团队成员仅仅因为不理解规则而误解规则并忽略重要规则,并将其误认为是误报。文件中应该有理由说明为什么您偏离的规则对您的公司不可行。

这意味着开发团队中的每个人都可以随时偏离列出的规则,而无需援引任何形式的官僚机构。

一旦你有了这样的设置,只需自定义你的静态分析器并删除/忽略不需要的警告。这样,您就可以消除该工具的大量噪音和错误警告。