基于EDK应用的靶心

时间:2012-09-26 09:56:46

标签: code-coverage bullseye

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

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

谢谢, 普拉莫德

2 个答案:

答案 0 :(得分: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]
  6. 下的应用程序.inf文件中
  7. 在应用程序源代码中添加cov_dumpData()(通常在其出口点)。
  8. 使用EDK2 build
  9. 编译

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

答案 1 :(得分:0)

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