3

我想对嵌入式目标上的 c++ 源代码进行代码覆盖。基本思想是,生成一个精灵以及使用 gcc 打开的 -frofile-arcs -ftest-coverage。将其下载到 ARM 设备上,然后收集数据以使用 gcov 分析代码覆盖率。

如何使用 arm-none-eabi-gcc 命令生成 elf 文件。我已经设置了 GNU ARM 工具链并设置了 env 变量。我可以使用 arm-none-eabi-g++ -c -mthumb -mcpu=cortex-m3 -fprofile-arcs -ftest-coverage filename.cpp -o filename.elf 吗?

提前致谢!

4

2 回答 2

1

不,你需要做的更多。你需要链接 gcov 库。这可以与 -lgov 和 -fprofile-arcs 链接器标志一起使用,希望您的链接器脚本具有 .got 和 .plt 部分。

以上将仅生成 .gcno 文件。.gcda 文件在运行时在硬件内部生成。等待应用程序退出或添加您自己的包装器以创建 .gcda 文件。

最后,您需要找到一种从硬件中提取此 .gcda 文件的方法。

所有 abvoe 在
https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/中都有很好的解释

于 2016-06-17T07:45:25.193 回答
0

我不确定你想要做什么实际上是可能的。我认为 GCC 中的那些分析选项需要一些操作系统支持。您最好查看 Keil/ARM 提供的分析工具。Streamline profiler 的社区版本可能对您有用,请查看 ARM 网站。

于 2012-11-19T23:43:37.707 回答