[导读]素材来源|CSDN编排| strongerHuang当前标准的C语言编译器存在普遍只能找出代码中潜在的缺陷,而对程序方案设计并没有效。使用静态代码分析器有助于提升固件和捕获编译器难以察觉的问题。用于嵌入式的常见代码静态分析工具代码静态分析工具,顾名思义就是对代码进行静待...
素材来源 | CSDN
编排 | strongerHuang
当前标准的C语言编译器存在普遍只能找出代码中潜在的缺陷,而对程序方案设计并没有效。
使用静态代码分析器有助于提升固件和捕获编译器难以察觉的问题。
用于嵌入式的常见代码静态分析工具
代码静态分析工具,顾名思义就是对代码进行静待分析,以提前预判(分析出)代码潜在的一些问题的工具。换句话说,就是通过工具找出你代码的bug(错误、警告)。
代码静态分析工具需要你的代码遵循一定规范,比如遵循C99、MISRA C:2012等,不然工具不支持对你代码的静态分析。
代码静态分析工具有独立存在的(就是一款软件工具),也有集成在IDE中的。比如比如:IAR EWARM就自带静待分析工具。
同时,有些工具支持通过“安装插件”的形式集成在IDE中,比如:在keil MDK中添加PC-lint代码静态分析工具。
下面罗列几个常见的代码静态分析工具:
-
PC-lint
-
LDRA
-
Parasoft C / C test
-
PVS-Studio
-
VectorCAST
以下是每一位嵌入式软件开发工程师都应该熟悉的静态代码编译器的七种功能和用法。
捕捉潜在的漏洞
静态代码分析器广为人知的用途之一就是扫描软件中潜在的问题和漏洞。这些问题小到switch case遗漏了break语句,大到缓存溢出的潜在风险。
静态代码分析器能够发现那些容易被编译器或者代码审核人员忽略的问题。在开发的早期阶段配置一个静态代码分析器在实践中能够确保潜在风险被立即处理,而不是等到开发的后期阶段。
强制执行代码规范
执行代码规范是确保软件开发一致性和代码可读性的重要举措。代码规范不仅会涉及代码可读性等问题,它还能迫使代码变得优雅。一个典型的例子就是许多静态代码分析器支持MISRA C。
静态代码分析器能够确保开发者没有违背大多数推荐实现方法,也没有违背标准的优雅实践(但是有些规则要求人工检查,机器无法自动判别)。如果真的发生了违规行为,静态分析器会将违规行为报告给开发者,开发者可以给予纠正。使用静态分析器能够快速判断代码是否遵循了已定义的标准。
确保严格执行ANSI-C标准
那些想严格按照ANSI-C标准开发可移植软件的开发者可以用静态代码分析器判断是否有非标准的用法混杂在代码里。
将分析器设置为“strict”将会查找出那些可移植性较差的或者兼容性较弱的代码区域。开发者随后可以再次检查这部分代码,使得软件更好地遵守ANSI-C标准,或者至少在文档中注明这部分代码。
强大的类型检查功能
C语言并不支持强类型检查。在C语言中,如果开发者自己创建了一种类型,编译器会忽略新类型而使用底层的C语言类型。
举个例子,如上图所示,编译器会视变量Var1为int类型(实现时定义)而不是新的MyEnum_t类型。开发者也许想区分int和MyEnum_t两种类型,并让编译器在两者混用之时做出警告。
然而,在第13行编译器并不认为把变量Var2(底层是int类型)的值赋给变量Var1(底层也是int类型)存在什么错误。静态代码分析器能够设置严格的类型检查,将Var1=Var2因不同类型间的赋值而置为高亮,以及检查出其它不符合开发者本意的问题。
提供量纲检查
1998年发射失败的火星气候探测器是我最关注的航空器失事事故之一。航空器的失败是由于输入轨道插入参数时使用了非标准的lbs*s 而不是 N*s (哎呀!)。火星气候探测器的失事永远警示着我们确保度量单位正确的重要性。但C编程语言没有提供任何的量纲分析来确保计算的一致性。
但是,静态代码分析器能够完成这些检查,以确保不会将千米误乘以英尺从而得到一个错误的结果。量纲分析的设置在各种工具中各不相同,但开发者应该好好利用这个重要的特性。
支持基本的堆栈分析
理解栈的最坏使用场景是开发任何实时嵌入式系统的关键。有很多的方法能分析和确定堆栈的最坏情况下的的使用状态,但可以用静态代码分析器来找找合理使用堆栈的感觉。静态分析器可以计算函数的堆栈使用情况和调用图来给出堆栈所需的大致空间。
静态分析工具还可以帮助深入了解程序对函数调用,以及函数结果的确定性。使用静态分析来熟悉堆栈的使用和最坏工作状态有助于初步理解堆栈的最坏状态分析。
帮助检查线程
静态分析工具也可以用来查看在相同处理器上同时执行的线程和任务所出现的问题。
举个例子,分析工具可以识别是否有与加锁或解锁互斥相关的任何异常。线程检查对在实时系统中查找问题非常有效,但配置此类分析却要花费很大的代价。只要能发现存在异常的线程,这种代价还是值得付出的。
总结
静态分析是开发人员开发实时系统的一个宝贵工具。静态分析器的七种用途只是其强大功能的几个例子。
静态代码分析器的使用可以大大提高代码的质量和鲁棒性,如果设置得当,甚至可以确保代码与常见的或自定义的编码标准的一致性。
参考来源:https://blog.csdn.net/happytofly/article/details/80121895https://www.edn.com/7-uses-for-a-static-code-analyzer/
声明:本文来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。
------------ END ------------
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。
关键字:
阿维塔
塞力斯
华为
加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...
关键字:
AWS
AN
BSP
数字化
伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...
关键字:
汽车
人工智能
智能驱动
BSP
北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...
关键字:
亚马逊
解密
控制平面
BSP
8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。
关键字:
腾讯
编码器
CPU
8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。
关键字:
华为
12nm
EDA
半导体
8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。
关键字:
华为
12nm
手机
卫星通信
要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...
关键字:
通信
BSP
电信运营商
数字经济
北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...
关键字:
VI
传输协议
音频
BSP
北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...
关键字:
BSP
信息技术
山海路引 岚悦新程 三亚2024年8月27日 /美通社/ -- 近日,海南地区六家凯悦系酒店与中国高端新能源车企岚图汽车(VOYAH)正式达成战略合作协议。这一合作标志着两大品牌在高端出行体验和环保理念上的深度融合,将...
关键字:
新能源
BSP
PLAYER
ASIA
上海2024年8月28日 /美通社/ -- 8月26日至8月28日,AHN LAN安岚与股神巴菲特的孙女妮可•巴菲特共同开启了一场自然和艺术的疗愈之旅。 妮可·巴菲特在疗愈之旅活动现场合影 ...
关键字:
MIDDOT
BSP
LAN
SPI
8月29日消息,近日,华为董事、质量流程IT总裁陶景文在中国国际大数据产业博览会开幕式上表示,中国科技企业不应怕美国对其封锁。
关键字:
华为
12nm
EDA
半导体
上海2024年8月26日 /美通社/ -- 近日,全球领先的消费者研究与零售监测公司尼尔森IQ(NielsenIQ)迎来进入中国市场四十周年的重要里程碑,正式翻开在华发展新篇章。自改革开放以来,中国市场不断展现出前所未有...
关键字:
BSP
NI
SE
TRACE
上海2024年8月26日 /美通社/ -- 第二十二届跨盈年度B2B营销高管峰会(CC2025)将于2025年1月15-17日在上海举办,本次峰会早鸟票注册通道开启,截止时间10月11日。 了解更多会议信息:cc.co...
关键字:
BSP
COM
AI
INDEX
上海2024年8月26日 /美通社/ -- 今日,高端全合成润滑油品牌美孚1号携手品牌体验官周冠宇,开启全新旅程,助力广大车主通过驾驶去探索更广阔的世界。在全新发布的品牌视频中,周冠宇及不同背景的消费者表达了对驾驶的热爱...
关键字:
BSP
汽车制造
此次发布标志着Cision首次为亚太市场量身定制全方位的媒体监测服务。 芝加哥2024年8月27日 /美通社/ -- 消费者和媒体情报、互动及传播解决方案的全球领导者Cis...
关键字:
CIS
IO
SI
BSP
上海2024年8月27日 /美通社/ -- 近来,具有强大学习、理解和多模态处理能力的大模型迅猛发展,正在给人类的生产、生活带来革命性的变化。在这一变革浪潮中,物联网成为了大模型技术发挥作用的重要阵地。 作为全球领先的...
关键字:
模型
移远通信
BSP
高通
北京2024年8月27日 /美通社/ -- 高途教育科技公司(纽约证券交易所股票代码:GOTU)("高途"或"公司"),一家技术驱动的在线直播大班培训机构,今日发布截至2024年6月30日第二季度未经审计财务报告。 2...
关键字:
BSP
电话会议
COM
TE
8月26日消息,华为公司最近正式启动了“华为AI百校计划”,向国内高校提供基于昇腾云服务的AI计算资源。
关键字:
华为
12nm
EDA
半导体