如何编译第一个uefi程序

28 篇文章 20 订阅 ¥9.90 ¥99.00
本文介绍了如何在Windows 8.1 x64环境下,使用VS2013和UDK2015编译第一个UEFI程序。首先,遵循UDK的环境搭建指南配置环境。接着,创建名为hello的文件夹,包含hello.c和hello.inf文件。在Nt32Pkg.dsc文件中添加组件引用。hello.c和hello.inf分别包含源代码和构建信息。通过运行edksetup.bat设置环境,并使用build命令编译程序。最终,生成的hello.efi文件可以在模拟器中运行展示结果。
摘要由CSDN通过智能技术生成

配置: 
win8.1 x64 + VS2013 + UDK2015 
这里略过初步的EDK源码编译配置过程,在下载的UDK2015中有UDK2015-ReleaseNotes-MyWorkSpace.txt教如何搭建环境,照做完全没有问题。

下面参考了某份老外教程,但找不到源头了,还是注明转载。

1,按EDK推荐,相应的子模块放到相应的文件夹中,所以新建文件夹hello,里面放入hello.c和hello.inf,结构如下: 
“C:\MyWorkSpace\MdeModulePkg\Application\hello\hello.c” 
“C:\MyWorkSpace\MdeModulePkg\Application\hello\hello.inf”

2,记事本打开”C:\MyWorkSpace\Nt32Pkg\Nt32Pkg.dsc”,在 [Components] 下,加入一句: 
MdeModulePkg/Application/hello/hello.inf 
//相当于Visual_studio在sln中加入一个proj.

3,hello.c的代码如下:

#include <Library/UefiApplicationEntryPoint.h> 
#include <Library/UefiLib.h>

EFI_STATUS         
EFIAPI
UefiMain 
(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE  *SystemTable)
{
  SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Hello World\r\n");  // Body
  return EFI_SUCCESS;
}

4,hello.inf的代码如下:

[Defines]  
 INF_VERSION         = 0x00010005 
 BASE_NAME           = Hello
 FILE_GUID           =  08f58693-1cba-4ddf-a204-f10a7dd01fae
 MODULE_TYPE         = UEFI_APPLICATION
 VERSION_STRING      = 1.0
 ENTRY_POINT         = UefiMain

[Sources]
  Hello.c

[Packages] 
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint
  UefiLib

[GUIDS]

[Protocols]

//进入命令行: 
cd C:\MyWorkSpace

//运行批处理以设置环境: 
edksetup.bat

//编译 
build –p Nt32 Pkg\Nt32Pkg.dsc –a IA32 -m MdeModulePkg\Application\Hello\Hello.inf 
//生成的文件在MyWorkSpace\Build\NT32IA32\DEBUG_VS2013x86_IA32下。

Build run //运行模拟器 
Fs0: //这个目录即生成文件的目录 
dir h* 
hello.efi //运行

//结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值