EDK II编译过程

EDK II Build Process

1 EDKII Build过程简介

EDKII Build主要是用来处理EDKII meta-data文件(包括build_rule.txt,tools_def.txt,target.txt等),EDKII source和binary文件,以及一些已经存在的可兼容的EDK组件和库模块文件,最终产生遵循UEFI和PI规范的二进制文件。
EDKII Build过程主要可以分为3个阶段:

  1. Pre-build(AutoGen)阶段:主要是来解析meta-data文件,dsc文件,.inf文件,.fdf文件,.dec文件,Unicode文件和VFR文件等,产生一些标准C的代码文件(Autogen.c,Autogen.h)和相应的Makefile文件。
  2. Build or $(MAKE)阶段:主要是来处理source文件并通过Make(Linux系统)或者Nmake(Windows系统)来生成符合EFI格式的PE32/PE32+/COFF 文件。
  3. Post-build(ImageGen)阶段:主要是来处理binary文件和EFI格式的文件,产生最终的UEFI Flash Images, Capsules,Applications和PCI Option ROMs。

在整个EDKII框架的编译流程中涉及到了以下一些输入文件:

  • .inf文件
    .inf文件用于描述一个系统模块(Module),它是UEFI系统的一个特色,其作用相当于Visual Studio项目中的.proj文件,用于指导EDKII编译工具自动编译模块,它包含[Defines]、[Sources]、[Packages]、[LibraryClasses]等必须的部分以及 [Depex]、[Protocols]、[Ppis]、[Guids]、[PCD]、[BuildOptions]等可选的部分[5]。

  • .dsc文件
    .dsc文件用于描述一个平台包(Package),它相当于Visual Studio项目中的.solution文件,用于指导编译工具编译整个平台包,它包含[Defines]、[LibararyClasses]、 [Components]等几个必需部分以及 [PCD]、[BuildOptions]等几个可选部分。其中在[Components]内定义的模块都会被Build工具编译并生成对应的.efi可执行文件。

  • .dec文件
    .dec文件是一个声明文件,它定义了公开的接口、数据及初始值,向其它模块提供了本文件的资源。它包含了必须的[Defines]以及可选的[Includes]、[LibraryClasses]、[Guids]、[Protocols]、[Ppis]和[PCD]等几个部分。

  • .fdf文件
    .fdf文件是Flash的描述文件,描述了最终固件文件的组成结构,用于生成固件Image、Option Rom Image或可启动的Flash Image等。

Meta-data文件中的build_rule.txt一般不需要用户更改,编译工具通过整个文件来定义如何处理不同的文件类型,如何构建最终的固件Image文件等规则;而tools_def.txt则描述了用户可配置的工具的路径、参数等信息,以及一些默认的编译器标记;target.txt描述了此次编译的平台名字、架构,以及build_rule.txt和tools_def.txt文件所在的路径信息,因此该文件是编译工具启动后第一个解析的。

2 Firmware Image Creation

Firmware Image Creation

文章来源

1.关于EDKII Build工具的性能优化研究
2.edk2-BuildSpecificaton-release-1.28.pdf

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值