Яблочко для применения на основе EDK
Есть ли способ интегрировать приложение на базе EDK2 в инструмент Bulls Eye Code Coverage? Исполняемый файл будет иметь расширение.efi и открывается только в оболочке EFI. Я считаю, что мне также нужно разработать драйвер для записи данных покрытия на внешний диск для анализа, поскольку приложение будет действовать только в EFI Shell(BIOS).
Итак, есть ли у кого-нибудь представление о том, как это можно сделать, для общих приложений EFI?
Спасибо, прамод
2 ответа
Вот шаги, которые я предпринял для интеграции Bullseye в EDK2 (после установки Bullseye, следуя инструкциям на сайте):
- Используйте /run/libcov-printf.c и замените "printf" на "AsciiPrint".
- Скопируйте все файлы из / run / в ваш EDK $WORKSPACE
- Создайте библиотечный.inf-файл и добавьте libcov-printf.c в его раздел [Source]
- Добавьте экземпляр библиотеки в файл платформы.dsc (вероятно, MdeModulePkg.dsc)
- Добавьте ссылку на библиотеку в INF-файл вашего приложения в [LibraryClass]
- Добавьте cov_dumpData() в исходный код вашего приложения (обычно в точке его выхода).
- компиляция с использованием сборки EDK2
В итоге вы получите двоичный файл efi, который сможете запустить на своей цели и получить результаты измерений, как только приложение достигнет своей точки выхода. Выходные данные могут быть перенаправлены в файл (с помощью директивы> внутри оболочки EDK2), а затем обработаны covpost для объединения в файл cov, созданный в процессе сборки.
Ну, я не знаю, как работает EFI. Однако покрытие "яблочко" поддерживает настройку. Когда я работал для встроенной системы. Я создал функции открытия / чтения / записи, чтобы записывать данные покрытия не в файл, а в последовательный кабель, и я создал хост-приложение для интерпретации данных, отправляемых из последовательного кабеля, и сохранения их в файле cov. Я не уверен, хорошо ли это работает в вашем случае. Однако вы можете начать со следующей ссылки. http://www.bullseye.com/help/env-embedded.html