1.配置edk2开发环境
参考:https://blog.csdn.net/weixin_44154971/article/details/123195510?spm=1001.2014.3001.5501
1.1. 进入edk2文件目录cmd执行 edksetup.bat Rebuild没有报错就是对的
1.2. **重新打开cmd** 执行edksetup.bat没有报错就是对的
1.3. 打开 edk2\Conf 修改target.txt文件
TARGET_ARCH = X64
TOOL_CHAIN_TAG = VS2017 (我用的是VS2017
1.4. cmd 输入build等一会儿只要没报错就算edk2编译成功了
2.写代码
需要两个文件一个写c代码、另一个 写工程模块。
c文件代码:
#include <Uefi.h>
EFI_STATUS UefiMain(IN EFI_HANDLE Imagehandle, IN EFI_SYSTEM_TABLE *SystemTable) {
SystemTable->ConOut->OutputString(SystemTable->ConOut, L"HelloWorld\n");
return EFI_SUCCESS;
}
inf文件代码:
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = hello
FILE_GUID = f35a7352-2cc1-44c0-9ba6-4c3b5f4dbe42
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = UefiMain
[sources]
helloworld.c
[Packages]
MdePkg/MdePkg.dec
[LibraryClasses]
UefiApplicationEntryPoint
UefiLib
3.编译生成.efi文件
helloworld.inf的路径加到edk2\EmulatorPkg的EmulatorPkg.dsc里[Components]
如下图所示
接下来在edk2目录下打开cmd输入edksetup.bat完成之后输入build即可完成编译,编译生成的.efi文件在edk2\Build\EmulatorX64\DEBUG_VS2017\X64
4.运行.efi文件
打开edk2\Build\EmulatorX64\DEBUG_VS2017\X64\WinHost.exe运行edk2,这里注意一定要在英文输入法下打开
如果没有英文键盘,打开设置—语言—首先语言点 “ + ” 号下载英语,然后在高级键盘设置里选择英语即可,这样就能进入edk2了
输入 helloworld.efi即可出现 “ Hello World ”
实验结束