当前位置:首页 > 公众号精选 > 嵌入式案例Show
[导读]大家平时调试程序的时候会遇到一些异常现象,花了大量的时间Debug发现是访问越界,变量未初始化等写代码时大意造成的。

01 前言

大家平时调试程序的时候会遇到一些异常现象,花了大量的时间Debug发现是访问越界,变量未初始化等写代码时大意造成的。如果我们严格遵循代码规范,能尽可能的避免这类情况发生,实际情况往往是虽然大家都知道优秀的代码规范是怎样的,但在具体写代码的过程中,却执行的差强人意,很多情况是认识上不够重视,造成后续调试的麻烦,今天就来介绍专用的代码检查工具PC-LINT和PC-LINT在KEIL5中的使用。尽可能的减少此类问题。

02 PC-LINT介绍

C语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应也使得代码编写具有很大的随意性,另外C编译器不进行 强制类型检查,也不做任何边界检查,这就增加了代码中存在隐患的可能性。如果能够在代码提交测试之前发现这些潜在的错误,就能够极大地减轻测试人员的压力,减少软件项目的除错成本,可是传统的C编译器对此已经无能为力,这个任务只能由专用的代码检查工具完成。PC-Lint偏重 于代码的逻辑分析一种代码检查工具,它能够发现代码中潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量等。

PC-Lint是GIMPEL SOFTWARE公司开发的C/C++软件代码静态分析工具,它的全称是PC-Lint/FlexeLint for C/C++,PC-Lint能够在Windows、MS-DOS和OS/2平台上使用,以二进制可执行文件的形式发布,而FlexeLint 运行于其它平台,以源代码的形式发布。PC-lint在全球拥有广泛的客户群,许多大型的软件开发组织都把PC-Lint检查作为代码走查的第一道工序。PC-Lint不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针以及冗余的代码,还能够有效地帮你提出 许多程序在空间利用、运行效率上的改进点。

PC-lint的代码检查功能

PC-Lint能够检查出很多语法错误和语法上正确的逻辑错误,PC-Lint为大部分错误消息都分配了一个错误号,编号小于1000的错误号是分配给C 语言的,编号大于1000的错误号则用来说明C++的错误消息。下表列出了PC-Lint告警消息的详细分类。

以C语言为例,其中的编号1-199指的是一般编译器也会产生的语法错误;编号200-299是PC-Lint程序 内部的错误,这类错误不会出现在代码中的;编号300-399指的是由于内存限制等导致的系统致命错误。编号400-999中出现的提示信息,是根据隐藏 代码问题的可能性进行分类的:其中编号400-699指的是被检查代码中很可能存在问题而产生的告警信息;编号700-899中出现的信息,产生错误的可 能性相比告警信息来说级别要低,但仍然可能是因为代码问题导致的问题。编号900-999是可选信息,他们不会被默认检查,除非你在选项中指定检查他们。

03 Keil中如何配置pc-lint

下载安装pc-lint,网上有很多资源。正常安装即可。

配置PC-lint

keil MDK中已经给出了pc-lint的配置文件,打开keil工程,tools--setupPC-lints。如下图弹窗,按照如下配置

  1. 先选择pc-lint执行文件。

  2. 选择keil安装下的配置文件ARM/BIN/CO-RV.LINT。

  3. 选择头文件和库文件的包含路径否则编译找不依赖,可以拷贝工程中的编译选项配置。点击OK退出。

配置完成打开tools可以看到如下图选项,第一个检查当前打开的源文件,第二个编译所有的源文件。

编译后输出信息在output窗口中,如下图。

04 END

借用网上一句话总结:能通过pc-lint检验的程序不一定没有问题,但通过了pc-lint检验的程序,质量的提高也是不言而喻的。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电路分析计算是电子科技领域中的一项重要技术,它涉及电流、电压、功率等物理量的分析和计算,为电路的设计、优化和故障排除提供了理论支持。本文将详细介绍电路分析计算的基本概念、常用方法以及科技应用,帮助读者更深入地了解这一领域...

关键字: 电路分析 支路电流法

业内消息,近日Alphabet旗下谷歌公司发言人表示为控制成本正在进行最新裁员,但具体人数不详。该发言人表示,裁员并非全公司范围,受影响的员工将能够申请内部职位,但没有具体说明受影响的员工人数或涉及的团队。

关键字: 谷歌 裁员

几天前,以南印度组织零售商协会(ORA)为代表的20多家零售连锁店和4300家商店宣布将从5月1日起停止销售一加设备。4月17日,全印度移动零售商协会(AIMRA)代表印度15万多家线下智能手机零售商通知一加,其成员正在...

关键字: 印度 一加 小米 Poco

业内消息,近日光刻机制造商阿斯麦(ASML)公布了2024年第一季度业绩,财报显示,该公司当季总净销售额53亿欧元,环比下降27%;毛利率51.0%,上季度为51.4%;净利润12亿欧元(当前约92.4亿元人民币),环比...

关键字: 光刻机 ASML

近日有韩媒称,由于薪资谈判破裂,劳资双方未能缩小对涨薪的意见分歧,三星电子全国工会(NSEU)即日起将发起公司成立以来首次集体行动,工会当天在华城市(Hwaseong)京畿道华城园区的组件研究大楼(DSR)前举行文化活动...

关键字: 三星

昨天上午,华为终端官微宣布全新重磅新机开售,约一分钟线上即告售罄,线下门店排起长队,气势丝毫不输苹果,和 Mate 60 Pro 一样没有发布会,这次官方同样推出了 “HUAWEI Pura 70 系列 先锋计划”,可以...

关键字: 麒麟芯片 华为

针对光伏优化器(MPPT)的非隔离DC-DC升压电路,推荐瑞森半导体低压MOS-SGT系列。极低导通电阻,低损耗,高雪崩耐量,高效率,非常适合高频应用。

关键字: 光伏优化器 MPPT

业内消息,近日东芝正在计划在日本裁员5000名员工,相当于日本员工总数的7%左右,这是其加速重组的最新举措。据知情人士透露,裁员的主要对象是总部的后勤部门,同时该公司将寻求员工自愿退休。

关键字: 裁员 东芝

昨天海能达发布公告,称针对产品禁售等判令提起的上诉结果已出:法院决定暂停执行一审法院对公司颁布的产品禁售令及罚款等,公司将与全球合作伙伴紧密合作,即刻恢复正常的商业活动并启动相关产品的销售。

关键字: 禁售令 海能达

业内消息,华为Pura 70第一批现货已到总代,部分经销商也已完成打款,等待华为打响开售“发令枪”。

关键字: 华为Pura 70 华为
关闭
关闭