嵌入式系统LINT的使用


8

我目前使用许多不同的编译器来开发嵌入式系统,其中最常见的是IAR系统。

我对硬件的热爱是驱动嵌入式系统和固件的原因。但是,我似乎在软件工程方面缺乏很多知识。

我读过很多遍了,好的Lint对于代码来说是无价的。我想知道这里是否有人使用Lint,它是哪一种Lint,以及它在检测错误方面有多少帮助。

Answers:


4

我过去曾经使用过皮棉,发现它很有用。但是,当我转到一个不使用它的较大项目时,我不得不停止使用它。由于代码的相互联系,这使得使用lint变得困难。皮棉最大的问题是对其进行配置,以消除误报且无关紧要。现在,他们在过去的一年中又发布了一个版本可能会更好。

与我合作的一家公司完成了这个大型项目,并将其通过Coverity的静态分析仪进行了分析。但是,这是一笔很大的钱,因此不建议小公司使用。


我读了一篇文章,我不得不期望花费很多时间才能停止抛出误报。您当时选择使用哪种皮棉?
Kortuk 2010年

当时是8.0版。
杰伊·阿特金森

您知道是什么公司制造的,那里有许多不同的Lint程序。有人告诉我它被称为lint是因为它发现编译器未找到的一小块皮棉。
Kortuk 2010年

1
抱歉,Gimpel的PC-LINT。很好的是,它们至少可以帮助您根据使用的编译器和编辑器使用一些预定义的规则集来驯服输出。可在其网站上下载它们:gimpel.com
Jay Atkinson 2010年

如果您的新源代码库吐出了很多“误报”,那么这很可悲,通常会被破坏。
Tim Williscroft 2010年

6

我没有使用过皮棉,但我发现GCC的警告可以检测到许多编程错误。

这是我首选的CFLAGS

CFLAGS + =-错误-W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-Prototypes -Wstrict-prototypes -Wmissing-clarifications -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-strings -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual

我还与Linus Torvalds的Sparse进行了静态分析。但是,我认为这类工具对大型系统更有用。


我使用的大多数系统的代码范围都在5万行之内。
Kortuk 2010年

3

我必须承认,我在微控制器/微处理器项目上对某种皮棉的使用并不多。

在我当前的嵌入式项目中,该项目在基于Linux的PC / 104 SBC上使用C ++,我们使用了cppcheck(也可以与C一起使用!)。尽管存在复杂的类继承树的问题,但它工作得很好。它提供了一些价值-非常适合检查可能发生内存泄漏的潜在位置。但是它指出的大多数事情都是风格上的-在for循环中使用preincrement而不是postincrement之类的东西。

在为企业软件系统开发应用程序时,我还使用了Java在线皮棉。那里绝对是无价之宝,因为没有调试工具可以检查该设置中的语法错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.