我已经设置了 UDK2014 和 EDK2 源代码,并成功构建了一个在 SecMain 模拟器中运行良好的 EFI 应用程序。但是,当我将应用程序转移到真正的 UEFI 系统并运行它时,系统会挂起。我尝试了一个简单的应用程序来打印 hello world:
#include <Uefi.h>
#include <Library/PcdLib.h>
#include <Library/UefiLib.h>
#include <Library/UefiApplicationEntryPoint.h>
EFI_STATUS
EFIAPI
UefiMain (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
SystemTable->ConOut->OutputString(SystemTable->ConOut, (CHAR16*)L"Hello World22\r\n");
SystemTable->ConOut->OutputString(SystemTable->ConOut, SystemTable->FirmwareVendor);
return EFI_SUCCESS;
}
这是我正在测试的 UEFI 32 位系统,我的 UDK/EDK2 构建中的目标是 32 位。
相对于 UDK/EDK2 附带的 SecMain 测试环境,我是否需要做一些特别的事情来构建针对真实系统的目标?