我要求制作大量符合MISRA标准的代码.
第一个问题:有人可以根据经验对嵌入式系统编写良好的代码进行估算.我理解"写得好"的定义很差,含糊不清,所以我要求进行原始估算.
第二个问题:任何可以自定义的工具建议(即允许抑制特定警告)并在自动构建环境中使用(即命令行界面)
任何其他有用的建议可以帮助完成此任务.
谢谢伊利亚.
我也强烈推荐PC-Lint.如果您正在使用Visual Studio编译代码,我建议使用Riverblade中的插件"Visual Lint".如果无法在Visual Studio中编译代码,仍可以从命令行运行PC-Lint,效果很好.
一些嵌入式系统编译器提供MISRA一致性测试作为编译器警告.我使用IAR编译器进行Arm7/Arm9开发.它在编译器设置中提供了易于配置的MISRA合规性检查表.
很难想出一个经验法则来估计你需要花时间编写符合MISRA标准的代码.很大程度上取决于程序员现有的编码习惯以及他们首先遵循MISRA规则的程度.
粗略估计:
2到3天才能熟练使用PC-Lint.
使现有代码符合MISRA标准的初步过程:首先编写代码所花费的时间为10%到25%.
保持代码MISRA兼容:代码开发增加了5%到10%.这笔费用的一半改变了你的程序员遵循"MISRA方式"做事的习惯.另一半是代码测试和检查的额外成本,以确保MISRA合规性.
如果您遵循相当好的编程习惯,那么使代码符合Misra并不是太多的苦差事.你可能会发现一些指针规则有点棘手,如果你试图遵守的代码有一些奇怪而精彩的指针算法.
我是第二个Greg对PC Lint的建议,但开源Splint也值得关注,虽然它们之间(和编译器的警告系统),我估计你仍然只能覆盖Misra规则的80% - 其余的可能需要手工检查代码.