天天看點

如何編譯第一個uefi程式【轉載】

配置:

win8.1 x64 + VS2013 + UDK2015

這裡略過初步的EDK源碼編譯配置過程,在下載下傳的UDK2015中有UDK2015-ReleaseNotes-MyWorkSpace.txt教如何搭建環境,照做完全沒有問題。

下面參考了某份老外教程,但找不到源頭了,還是注明轉載。

1,按EDK推薦,相應的子子產品放到相應的檔案夾中,是以建立檔案夾hello,裡面放入hello.c和hello.inf,結構如下:

“C:\MyWorkSpace\MdeModulePkg\Application\hello\hello.c”

“C:\MyWorkSpace\MdeModulePkg\Application\hello\hello.inf”

2,記事本打開”C:\MyWorkSpace\Nt32Pkg\Nt32Pkg.dsc”,在 [Components] 下,加入一句:

MdeModulePkg/Application/hello/hello.inf

//相當于Visual_studio在sln中加入一個proj.

3,hello.c的代碼如下:

#include <Library/UefiApplicationEntryPoint.h> 
#include <Library/UefiLib.h>

EFI_STATUS         
EFIAPI
UefiMain 
(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE  *SystemTable)
{
  SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Hello World\r\n");  // Body
  return EFI_SUCCESS;
}
           

4,hello.inf的代碼如下:

[Defines]  
 INF_VERSION         =  
 BASE_NAME           = Hello
 FILE_GUID           =  f58693-cba-ddf-a204-f10a7dd01fae
 MODULE_TYPE         = UEFI_APPLICATION
 VERSION_STRING      = 
 ENTRY_POINT         = UefiMain

[Sources]
  Hello.c

[Packages] 
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib

[GUIDS]

[Protocols]

           

//進入指令行:

cd C:\MyWorkSpace

//運作批處理以設定環境:

edksetup.bat

//編譯

build –p Nt32 Pkg\Nt32Pkg.dsc –a IA32 -m MdeModulePkg\Application\Hello\Hello.inf

//生成的檔案在MyWorkSpace\Build\NT32IA32\DEBUG_VS2013x86_IA32下。

Build run //運作模拟器

Fs0: //這個目錄即生成檔案的目錄

dir h*

hello.efi //運作

//結果:

如何編譯第一個uefi程式【轉載】

繼續閱讀