任务:在MdeModule\Application下自建一个myapp编写第一个程序,并在虚拟机中运行出来。
一、编写源文件(.c文件)及工程文件(.inf文件)
在edk2\MdeModulePkg\Application下创建文件文件名自拟,因为公司十岁生日所以这里命名为happybirthday文件夹,并建立源文件和工程文件
1.编写源文件(happybirthday.c)
#include <Uefi.h>
EFI_STATUS UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
SystemTable->ConOut->OutputString(SystemTable->ConOut, L"happybirthday\n");
return EFI_SUCCESS;
}
2.编写工程文件(happybirthday.inf)
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = happybirthday
FILE_GUID = 6987936E-ED34-44db-AF97-1FA5E4ED2057
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = UefiMain
[Sources]
happybirthday.c
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
UefiLib
UefiApplicationEntryPoint
3.修改EmulatorPkg.dsc文件
将工程文件的路径加载到EmulatorPkg.dsc文件中的[Components]下,打开文件EmulatorPkg.dsc按住ctrl+f搜索[Components]将工程文件(.inf)路径复制到这下边
4.编译EmulatorPkg.dsc生成happybirthday.efi(二进制可执行文件)文件及FV_RECOVERY.fd固件(并不知道这个固件的作用,烧录到虚拟机中会发生错误)
在edk2路径下运行cmd输入命令:
edksetup.bat
build -p EmulatorPkg\EmulatorPkg.dsc
这条命令结束后会在D:\softapp\git\Git\mydata\edk2\Build\EmulatorX64\DEBUG_VS2019\X64\MdeModulePkg\Application目录下生成happybirthday文件夹下面生成编译后的文件
5.将生成的happybirthday.efi复制到qeum挂靠的文件(虚拟机的根目录)下
在qemu路径下运行cmd输入命令:
qemu-system-x86_64.exe -bios D:\softapp\git\Git\mydata\edk2\Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd -hda fat:rw:D:\fs -net none
命令结束后运行虚拟机,运行happybirthday.efi结果如下
|