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 テスト環境に対して、実際のシステムをターゲットにするために構築するために何か特別なことをする必要がありますか?