0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于PC-lint,以及如何在MDK中添加PC-lint工具

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-04 09:31 次阅读

有人问:代码中类似/*lint !e750... */代表什么意思?

回答这个问题,就要牵涉到本文说的PC-Lint这个工具。

1写在前面

可能有一定编程经验的朋友,应该在一些地方都看到过类似/*lint !e750... */这种“注释”。

但,有多少人去分析过它的含义呢?

比如:在FreeRTOS的tasks.c源码中有如下一行语句:

#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */

后面/*lint !e961 !e750. */作用就是:在使用PC-Lint工具进行静态分析时,隐藏本行宏定义未被调用的“错误”。

换种方式理解:编译时,这条语句不出现警告信息(注意:这里是比喻为编译,其实是PC-Lint静态分析)。

2

关于PC-Lint

PC-Lint 是GIMPEL SOFTWARE公司开发的C/C++软件代码静态分析工具,它的全称是PC-Lint/FlexeLint forC/C++。

你可以把它看作是一种更加严格的编译器。它除了可以检查出一般的语法错误外,还可以检查出那些虽然符合语法要求,但很可能是潜在的、不易发现的错误。

C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。

PC-Lint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码等。

软件除错是软件项目开发成本和延误的主要因素,PC-lint能够帮你在程序动态测试之前发现编码错误,这样消除错误的成本更低。

错误号

PC-Lint 能够检查出很多语法错误和语法上正确的逻辑错误,PC-Lint 为大部分错误消息都分配了一个错误号:

这些错误号在文档中有详细说明:

命令格式:

更多相关内容可以参考官网:

www.gimpel.com

3

Keil支持PC-Lint说明

在Keil官网有这样一段信息:

X PC-lint is a powerful staticanalysis tool that will check your C/C++ source code and find bugs, glitches, inconsistencies, non-portable constructs, redundant code, and much more. It looksacross multiple modules, and so, enjoys a perspective your compiler does not have.

A C compilercannot always detect each and every potential problem in your source files.

This is where PC-Lint comes in.

Supports K&R C, ANSI C, and ANSI/ISO C++ standards

Explicit support for MISRA C and MISRA C++ (Motor Industry Software Reliability Association) standards

Value tracking of auto and static variables detectssubtle initialization and value misuse problems

Inter-function Value Tracking - powerful inter-statement value tracking crosses function boundaries

Optional strong type checking (typedef-based) with a rich option set to detect nominal type differences

User-defined semantic checking for function arguments and return values

Each of the Keil development tools,ARM, C51, C251, and C166, support Gimpel Software's PC-Lint. Configuration files are included in the Keil development tools which enable you to quickly and easily begin using PC-Lint in your application development and testing.

http://www.keil.com/pclint

大概意思就是Keil(ARM, C51, C251, and C166)支持PC-Lint,配置文件包含在Keil开发工具中,使您能够在应用程序开发和测试中快速轻松地开始使用PC-Lint。

还提供了一个例子:

示例代码:

C51编译输出结果:

执行PC-Lint输出:

示例程序列表(错误以突出显示),C51编译器输出和PC-Lint输出。当PC-Lint检测到并报告26个错误和警告时,C51编译器会检测并报告12个错误和警告。

4

MDK中添加PC-Lint

要使用PC-Lint,大概需要以下两步:

安装PC-Lint

MDK添加PC-Lint


1.安装PC-Lint

PC-Lint是一款收费的工具,大家可以网上搜索相关po解版本,相关安装很简单,这里不说明。

2.MDK添加PC-Lint

在MDK的帮助文档中,有相关添加和配置说明,我这里也简单说下。

A.菜单Tools ->Set-up PC-lint进入配置界面(如上图)

B.添加lint-nt.exe

前提需要安装PC-Lint,指向安装路径下的lint-nt.exe。点击“...”即可添加(标记1)。

C.添加co-ARMCC-5.lnt

这个路径是MDK安装目录下面,可参看上图(标记2)。

D.MISRA规则配置

这里参看帮助文档,选择MISRA_C_2012_Config(标记3)。

E.增加PC-Lint命令

例如,要禁止PC-lint输出的info 714消息,可以在此对话框中输入-e714 (标记4)。

当然,本文重点在于引导大家了解PC-Lint这个工具,想要运用PC-lint这个工具,还需要掌握更多相关规则、配置。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7565

    浏览量

    133435
  • 代码
    +关注

    关注

    30

    文章

    4642

    浏览量

    67648
  • MDK
    MDK
    +关注

    关注

    4

    文章

    207

    浏览量

    31887
收藏 人收藏

    评论

    相关推荐

    AIPC:真正的AIPC,敢于下场

    在过去的半年里,我们无一不在聆听 关于人工智能(AI) PC的种种声音,然而当步入现实生活时,恐怕仍有众多读者对此感到迷茫:这些AI PC究竟具有哪些AI功能呢?诚然,这并非易解之题。毫不掩饰地说,在我
    的头像 发表于06-11 15:02 490次阅读

    国产申威平台pc终端机

    pc终端
    GITSTAR 集特工控
    发布于 :2024年04月28日 11:36:14

    英特尔预测2024年出货4000万AIPC,覆盖轻薄PC及游戏掌机设备

    有国外媒体曾报道称,上个月末,英特尔公司公布AI PC加速计划——该项目新增了两个 关于人工智能(AI)的重大推进策略,具体措施包括设立一项名为“AI PC开发者计划”的全新的项目, 以及
    的头像 发表于04-10 14:17 317次阅读

    PC817B和PCt1pC有什么区别

    PC817B和 PC1pC是两种不同型号的光耦合器,它们有一些区别。在本文中,我们将详细介绍它们的特点、应用、性能 以及相应的电路设计。 PC817B光耦合器
    的头像 发表于04-02 17:24 406次阅读

    传统PC已过时?2024年AIPC领航未来!

    随着科技的飞速发展,我们生活 的许多方面都在经历着翻天覆地的变化。在这个信息爆炸的时代,个人电脑( PC)作为我们工作、学习和娱乐的重要 工具,其形态和功能也在不断演进。2024年,被业界普遍认为是传统
    的头像 发表于03-25 10:26 355次阅读
    传统<b class='flag-5'>PC</b>已过时?2024年AI <b class='flag-5'>PC</b>领航未来!

    AIPC产品密集发布,预计2025年AIPC占全球PC出货量40%

    德赢Vwin官网 网报道(文/李弯弯)根据市场机构Canalys近日发布的最新报告,2024年标志着传统 PC向AI PC的重大转变,预估今年全球AI PC出货量4800万台,占 PC出货总量的1
    的头像 发表于03-20 01:15 3561次阅读
    AI <b class='flag-5'>PC</b>产品密集发布,预计2025年AI <b class='flag-5'>PC</b>占全球<b class='flag-5'>PC</b>出货量40%

    技术、工具介绍爱普生语音数据创建PC工具

    数据 PC
    Piezoman压电侠
    发布于 :2024年01月16日 10:36:55

    AIPC是什么?如何变革PC产业(2023)

    AI PC整合了轻量化AI模型,将实现各种生成式AI应用的离线稳态运行。作为设备、边缘计算和云技术的混合体,AI PC不仅具有强大的计算能力和先进的AI技术,还带来了创新的交互方式和视觉体验。预计2024年将各品牌的AI PC
    的头像 发表于12-27 17:37 1249次阅读
    AI <b class='flag-5'>PC</b>是什么?如何变革<b class='flag-5'>PC</b>产业(2023)

    SpyGlass®LintTurbo结构用户指南

    德赢Vwin官网 网站提供《SpyGlass® LintTurbo结构用户指南.pdf》资料免费下载
    发表于12-21 09:48 0次下载

    AIPC灵魂拷问

    AI PC横空出世,我们汇总7个 最受大家关注的问题。 有请英特尔技术部总经理高宇为我们逐一解答。 问题1:谁率先“喊出”了AI PC? 答:英特尔最先提出了AI PC概念,引领 PC
    的头像 发表于12-08 19:15 415次阅读
    AI <b class='flag-5'>PC</b> 灵魂拷问

    AIPC:深入变革PC产业(2023)

    软件方面,AI PC整合了轻量化AI模型,将实现各种生成式AI应用的离线稳态运行。作为设备、边缘计算和云技术的混合体,AI PC不仅具有强大的计算能力和先进的AI技术,还带来了创新的交互方式和视觉体验。预计2024年将各品牌的AI PC
    的头像 发表于11-22 17:48 1807次阅读
    AI <b class='flag-5'>PC</b>:深入变革<b class='flag-5'>PC</b>产业(2023)

    如何看待AIPC短线发展?

    AI PC,即人工智能个人电脑,是将AI技术与 PC深度融合,这类 PC将搭载更高计算能力的处理器,同时融合多模态算法以重塑 PC体验。
    的头像 发表于11-10 10:27 568次阅读

    针对PCPC电源推出MOSFET细分产品

    国产新风尚!WAYON维安针对 PCPC电源推出MOSFET细分产品
    的头像 发表于11-01 15:10 435次阅读
    针对<b class='flag-5'>PC</b>及<b class='flag-5'>PC</b>电源推出MOSFET细分产品

    分享一款不错的嵌入式静态代码扫描工具

    之前给大家分享过嵌入式开发常用的代码静态分析 工具,比如: PC-lint、LDRA、VectorCAST等。
    的头像 发表于10-16 15:39 1762次阅读
    分享一款不错的嵌入式静态代码扫描<b class='flag-5'>工具</b>

    MDK使用SRecord对镜像自动添加校验值并转bin文件

    MDK使用SRecord对镜像自动 添加校验值并转bin文件
    的头像 发表于09-19 14:15 2865次阅读
    <b class='flag-5'>MDK</b>使用SRecord对镜像自动<b class='flag-5'>添加</b>校验值并转bin文件