0

有没有办法将基于 EDK2 的应用程序集成到 Bulls Eye Code Coverage 工具中?可执行文件将具有 .efi 扩展名,并且仅在 EFI shell 中打开。我相信,我还需要开发一个驱动程序来将覆盖数据捕获到外部磁盘中进行分析,因为该应用程序仅在 EFI Shell(BIOS) 中有效。

那么,对于整个 EFI 应用程序,有没有人知道如何做到这一点?

谢谢,普拉莫德

4

2 回答 2

1

这些是我将 Bullseye 集成到 EDK2 中所采取的步骤(在按照网站上的说明安装 Bullseye 之后):

  1. 使用 /run/libcov-printf.c 并将“printf”替换为“AsciiPrint”。
  2. 将所有文件从 /run/ 复制到您的 EDK $WORKSPACE
  3. 创建库 .inf 文件并将 libcov-printf.c 添加到其 [Source] 部分
  4. 将库实例添加到您的平台 .dsc 文件(可能是 MdeModulePkg.dsc)
  5. 在 [LibraryClass] 下添加对应用程序 .inf 文件的库引用
  6. 在您的应用程序源代码中添加 cov_dumpData()(通常在其退出点)。
  7. 使用 EDK2 编译

您最终会得到一个 efi 二进制文件,您可以在目标上运行该二进制文件,并在应用程序到达其退出点后获取测量结果。输出数据可以重定向到一个文件(使用 EDK2 shell 中的 > 指令),然后由 covpost 处理以合并到构建过程中创建的 cov 文件中。

于 2013-12-24T14:29:15.643 回答
0

好吧,我不知道 EFI 是如何工作的。但是靶心覆盖支持自定义。当我为嵌入式系统工作时。我创建了打开/读/写函数来将覆盖数据写入不是文件而是串行电缆,我创建了主机应用程序来解释从串行电缆发送的数据并将它们保存到 cov 文件中。我不确定这是否适用于您的情况。但是,您可以从以下链接开始。 http://www.bullseye.com/help/env-embedded.html

于 2013-02-01T18:28:01.753 回答