本文主要是介绍UEFI EDKII 编程学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境搭建部分
第一步:
下载EDK2
https://sourceforge.net/projects/edk2/files/latest/download?source=files
第二步:
将下载的UDK2015.Complete.MyWorkSpace中的BaseTools(Windows).zip解压到自己定义的工作目录下,例如:E:\code\edkWorkSpace\
第三步:
将UDK2015.Complete.MyWorkSpace包中的文件,具体路径如后面的内容(UDK2015.Complete.MyWorkSpace\UDK2015.MyWorkSpace.zip\MyWorkSpace\)全部解压到工作目录(E:\code\edkWorkSpace\)
第四步:
到网站 https://www.acpica.org/downloads 下载asl编译器(可选)
第五步:
执行edksetup.bat --nt32
第六步:
编辑E:\code\edkWorkSpace\Conf\target.txt中的TOOL_CHAIN_TAG = VS2010x86,(当前您使用的编译器),保存后并执行 build 指令
第七步:
执行build run 可打开模拟软件的界面。
标准C模块的加入
使用 git clone https://github.com/tianocore/edk2.git 将代码下载到本地(文件大小在230M左右)
StdLib里面有含标准库的项目(AppPkg, StdLib, and StdLibPrivateInternalFiles.),需要拷贝到E:\code\edkWorkSpace\目录下
编译则使用指令: build -a X64 -p AppPkg\AppPkg.dsc
若需要将标准库中的文件便宜并可在虚拟机(SecMain)中运行,经过研究发现可以在 \AppPkg\AppPkg.dsc 中做如下修改
#OUTPUT_DIRECTORY = Build/AppPkg
OUTPUT_DIRECTORY = Build/NT32IA32
若编译自己的测试程序,则需要在\AppPkg\AppPkg.dsc里面加入自己写的部分(如下带下划线的部分)。例如:
[Components]
#### Sample Applications.
AppPkg/Applications/Hello/Hello.inf # No LibC includes or functions.
AppPkg/Applications/Main/Main.inf # Simple invocation. No other LibC functions.
AppPkg/Applications/Enquire/Enquire.inf #
AppPkg/Applications/ArithChk/ArithChk.inf #
AppPkg/Applications/Main_test/Main.inf
然后使用指令编译:build -a X64 -p AppPkg\AppPkg.dsc -m AppPkg\Applications\Main_test\main.inf (假设您的程序路径在AppPkg\Applications\Main_test\下)
在使用build run 指令运行模拟器程序。
这篇关于UEFI EDKII 编程学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!