UEFI开发-----UDK安装和编译UEFI程序

1.安装UDK2

UEFI开发-----UDK安装和编译UEFI程序
安装前需要准备好的下载的东西。全部放在C盘根目录下,比较好操作。
另外需要python安装环境。VS2013环境。VS2013注意要在默认安装目录下。
UEFI开发-----UDK安装和编译UEFI程序
在conf目录下target.txt设置生成的模拟器的两个参数,第一个目标处理器改为X64或者IA32,第二个是TOOL_CHAIN工具链改为现在使用的编译器。
UEFI开发-----UDK安装和编译UEFI程序
模拟器改为MdeModulePkg/MdeModulePkg.dsc
UEFI开发-----UDK安装和编译UEFI程序
运行edksetup.bat,发现三个环境变量未设置。
set NASM_PREFIX=C:\NASM
set CLANG_BIN=C:\NASM
set CYGWIN_HOME=C:\edk2-master\BaseTools\Bin\CYGWIN_NT-5.1-i686
set PYTHON_HOME=C:\Python37
UEFI开发-----UDK安装和编译UEFI程序
搞好之后就能在该目录使用build命令构建。编译到一半会提示nmake 错误:Vfrcompile。
UEFI开发-----UDK安装和编译UEFI程序
这时候cd C:\edk2-master\BaseTools\Source\C 执行nmake all,看到上面界面。

这时候再切换回去edk2-master下执行build命令,就一路畅通直接成功了。
UEFI开发-----UDK安装和编译UEFI程序
搞定。

2.编译运行Helloworld.efi

UEFI开发-----UDK安装和编译UEFI程序
再MdeModulePkg的Application目录下有不少示例程序,这里找到了HelloWorld来作示范。
UEFI开发-----UDK安装和编译UEFI程序
build -p MdeModulePkg/MdeModulePkg.dsc -a IA32 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf

生成的EFI文件在\Build\NT32IA32\DEBUG_VS2013x86_IA32下。
build run运行模拟器运行EFI文件。

命令行编译参数说明
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -b DEBUG -t GCC5 -D BUILD_64 -D UNIX_SEC_BUILD -n 3
option说明:
-p PLATFORMFILE: 目标平台描述文件
-a TARGETARCH: 目标平台X64/IA32
-b BUILDTARGET: 可选项(DEBUG, RELEASE, NOOPT),将只编译dsc文件中特定的模块
-m MODULEFILE: 编译目标module
-t TOOLCHAIN : 使用目标编译器编译
-n THREADNUMBER : 多线程编译
-D MACROS: Macro格式: “Name [= Value]”,传入宏定义

UEFI开发-----UDK安装和编译UEFI程序
当然也可以用来生成在Windows8 X64版本的X64的EFI程序。