UEFI学习4-我的第一个UEFI程序

EDK2模拟器跑起来之后,就可以尝试写一个自己的UEFI程序来看看效果了,步骤记录如下:

1. 创建代码与工程文件

创建代码文件(Yigo.c)

#include <Uefi.h>
EFI_STATUS YigoMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
	SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Yigo's first UEFI app\n");
	return EFI_SUCCESS;
}

创建工程文件(Yigo.inf)

[Defines]
INF_VERSION = 0x00010005
BASE_NAME = Yigo
FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2118
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = YigoMain

[Sources]
Yigo.c

[Packages]
MdePkg/MdePkg.dec

[LibraryClasses]
UefiApplicationEntryPoint
UefiLib

就这两个文件,.c文件和.inf文件放到模拟器的包目录下,例如:D:\edk2\EmulatorPkg\Application\Yigo

2. 在包的.dsc文件中添加对工程文件inf的引用

因为这个程序是放在模拟器中运行,因此在EmulatorPkg.dsc的[Components]区域,添加对Yigo.inf的引用

EmulatorPkg/Application/Yigo/Yigo.inf

3. build/run

CMD> D:\edk2>build

build完成之后,就能在D:\edk2\Build\EmulatorX64\DEBUG_VS2017\X64目录下看到Yigo.efi文件

双击WinHost.exe运行模拟器, 输入指令Yigo.efi,或者只输Yigo,就能运行程序了:

到此,我的第一个UEFI程序就完成了。

*******************************************************************************************

EDK2提供了其他一些写好的efi程序,例如HelloWorld.efi, UiApp.efi等,下图是UiApp.efi的运行效果:

参考书:《UEFI原理与编程》- 戴正华

猜你喜欢

转载自blog.csdn.net/zhouyingge1104/article/details/113500089