首先, 到sourceforges下載TianoCore code: https://sourceforge.net/p/tianocore/edk2/ci/UDK2015/tree/
我是下載UDK20014
如果是下載UDK2015, 請先將資料夾放到對應的位置
1. Unzip UDK2015.MyWorkSpace.zip & BaseTools(Windows).zip
2. Put BaseTools, Conf, edkstup.bat to MyWorkSpace
如果是使用Linux則可以直接透過git 取得,
bash$: sudo apt-get install git
bash$: git clone http://github.com/tianocore/edk2
*** How to Build ***
以下是針對Windows+Visual Studio作為範例的編譯流程
1.修改 Conf\target.txt (因為這裡compiler出來的.efi是跑在真實的電腦上,非模擬器上)
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
2. Build
# build X64 module
> 開啟 "Visual Studio x64 Cross Tools Command Prompt (2010)"這個命令提示字元
> 執行edksetup.bat
# 如果是64bit環境,就需要指定x86(IA32)或64位元(X64)哪種版本的Visual Studio來build code
> build -a X64 -t VS2010 (環境是Win7 32bit, build X64的module)
or
> build -a X64 -t VS2010x86 (環境是Win7 64bit, Visual studio是32位元的,然後 build X64的module)
or
> build -a X64 -t VS2010x86 -p MdeModulePkg/MdeModulePkg.dsc (省略修改Conf\target.txt這個步驟)
3. 完成
會自動產生一個build資料夾,檔案的位置如下
\Build\MdeModule\DEBUG_VS2010\X64\xxx.efi
*** How to build UEFI Shell APP with Standard C Library & C entry in ***
// 以下是以 UDK2014的 project 做範例
以App這個Package中main module為例, 她對應的file為 AppPkg\Application\Main\Main.c
將code改好後執行 build -a X64 -t VS2010 -p AppPkg\AppPkg.dsc
#include <stdio.h>
//宣告下列的外部變數未來可用來呼叫UEFI提供的一些library
//{
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/DebugLib.h>
#include <Library/ShellCEntryLib.h>
#include <Protocol/EfiShell.h>
#include <Library/ShellLib.h>
extern EFI_BOOT_SERVICES *gBS;
extern EFI_SYSTEM_TABLE *gST;
extern EFI_RUNTIME_SERVICES *gRT;
extern EFI_SHELL_PROTOCOL *gEfiShellProtocol;
extern EFI_SHELL_ENVIRONMENT2 *mEfiShellEnvironment2;
extern EFI_HANDLE gImageHandle;
//}
int
main (
IN int Argc,
IN char **Argv
)
{
puts("Welcome to the world of EDK II.");
return 0;
}
Reference:
PciIoProtocol sample
PciDump sample
沒有留言:
張貼留言