Я настроил исходный код UDK2014 и EDK2 и успешно создаю приложение EFI, которое отлично работает в эмуляторе SecMain. Однако, когда я переношу приложение в реальную систему UEFI и запускаю его, система зависает. Я пробовал простое приложение, которое печатает привет, мир:
#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;
}
Это 32-битная система UEFI, которую я тестирую, и я ориентируюсь на 32-битную систему в своей сборке UDK/EDK2.
Нужно ли делать что-то особенное для сборки реальной системы по сравнению с тестовой средой SecMain, поставляемой с UDK/EDK2?