在嵌入式项目中使用Valgrind

Ler*_*sea 6 embedded valgrind

目前我正在开发一个嵌入式项目.我使用的是IAR Embedded Workbench IDE,目标平台是基于8051的微控制器.是否可以使用Valgrind工具来检查我写的代码?

sve*_*vec 5

否,是*。

否:正如另一位评论者所说,Valgrind不能在8051体系结构上运行,因此您不能像在x86系统上那样使用Valgrind。

是* :(星号(*)是因为它是有限的“是”)

但是,如果您满足以下条件,则可以在代码的非8051 / IAR特定部分使用Valgrind:

  1. 将8051特定和IAR特定的代码与体系结构/编译器无关的代码分开。
    • 您可能需要这样做,以使分离不可知代码的结果不会使代码变得更大。(由于您正在使用8051,因此我认为代码的大小非常宝贵。)
  2. 使用gcc编译与架构/编译器无关的代码,并在台式机/笔记本电脑开发计算机(可能是x86计算机)上使用Valgrind运行它。
    • 当然,您可以使用任何其他Valgrind支持的体系结构/编译器,x86 / gcc并不是您唯一的选择。

这样,Valgrind就能检查您的某些代码,这总比没有好。

分离代码的编译器/芯片特定部分也将使其更可移植和可重用。

哦,这没有直接关系,但是您还应该考虑使用静态分析程序,例如PC-Lint:http : //www.gimpel.com/html/index.htm

它检查Valgrind检查的某些内容,以及Valgrind不检查的许多内容。另外,它将检查您的所有代码,而不仅仅是非8051 / IAR代码。

有很多类似的工具。PC-Lint是我所见过的最受欢迎的产品。