打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
有没有单片机(C语言编写的代码)使用的静态分析工具?

哈哈,这个问题我可以结合我的项目经验来答一下。

现在一般工业级,汽车级和航空级的产品代码都是需要做静态代码分析的,不知道题主是不是相关领域的码农?我就按汽车电子研发中用到的工具来简单回到一下。

需求

在选工具之前,首先需要明C语言代码静态分析到底分析什么内容。是检查MISRA-C编程规范?需不需要检查内存数组,死区代码,代码逻辑复杂度等等。另外,检查完之后是否需要形成相关的报告等等。

编译器自带检查工具

如果你搞的是汽车电子相关的研发项目,仅需要检查MISRA-C相关规则检查,不需要出报告什么的,建议你先看看编译器手册,像green hills,tasking这些专业级的编译器,一般都自带了静态检查选项的,只要打开相关选项就行。

编译器自带的静态分析功能有一个缺点,就是会极大地影响编译速度,因为它需要大量的时间去做静态规则检查。

polyspace

如果你不仅需要做MISRA-C规则检查,还需要分析代码逻辑复杂度,运行时bug等等,那么polyspace将是最好的工具。它的运行界面如下图所示:

polyspace是mathworks家的产品,它们家最出名的产品是mathlab,质量相当有保证。但是也有一个缺点,那就是贵。

QAC

QAC也可以做各种MISRA-C规则分析以及其他代码静态分析,可以自动生成分析报告,界面也比较容易上手。

QAC比polyspace功能要弱一些,主要是没法进行运行时分析。这个工具在汽车零部件企业里用得比较多,价格也相对亲民一些。

PC-lint

PC-lint也可以做C代码静态分析,像keil这些IDE还做了接口直接调用,功能和QAC差不多。但是项目上我没有用过这个工具。

cppcheck

这个是个开源工具,可以做一定的静态分析,但是MISRA-C规则这类检查,需要自己去配置规则,用起来略麻烦。这个可以用插件集成eclipse开发环境里去。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Helix QAC — 软件静态测试工具
关于PC-lint,以及如何在MDK中添加PC-lint工具
编译器浏览器:现已支持代码执行和静态分析
谈谈代码静态分析
PolySpace
关于使用合格工具的DO_178B标准基于模型设计-2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服