UEFI开发总结--EDKII文件关系介
    首先介绍一下EDKII
    EDKII是一套Intel对UEFI规范实现的开源代码,可以在这个网站进行下载:http://www.tianocore.org/
有些人下载的时候发现,咦,我下的怎么不是EDKII,而是UDK,不要害怕,UDK是EDK的稳定版本,你同样可以用UDK进行UEFI的开发。

    UEFI相对于BIOS,一个非常大的不同是模块化的概念,UEFI把每个功能都做成一个Package,然后把所有的Package都集成到BIOS Flash中,形成最终的UEFI文件。

    这就迁出了一个fdf的概念,下面对几种常用的文件类型做一下介绍。

    fdf文件,一般一套UEFI源码中只有一个fdf文件,它的作用是规定把哪些包编入flash中,编入flash的什么位置,并给对应的Package一个Guid,方便在代码中调用;
    dec文件,一般是对Protocol的定义;
    dsc文件,指明了每个包对应需要哪些lib;
    inf文件,最常用的文件,相当于windows中的工程文件,表明本Package的类型、本Package用到哪些.c .h文件,用到了哪些protocol,以及编译选项;

    这里只是简单的介绍一下,对于每个类型的文件之中详细的信息,可以查看UEFI原理与编程,以及各种文件类型对应Spec。

    UEFI开发总结--EDKII文件关系介绍-LMLPHP
Hello.inf

点击(此处)折叠或打开

  1. [Defines]
  2.   INF_VERSION = 0x00010006
  3.   BASE_NAME = Hello
  4.   FILE_GUID = a912f198-7f0e-4803-b908-b757b806ec83
  5.   MODULE_TYPE = UEFI_APPLICATION
  6.   VERSION_STRING = 0.1
  7.   ENTRY_POINT = ShellCEntryLib

  8. #
  9. # VALID_ARCHITECTURES = IA32 X64 IPF
  10. #

  11. [Sources]
  12.   Hello.c

  13. [Packages]
  14.   MdePkg/MdePkg.dec
  15.   ShellPkg/ShellPkg.dec

  16. [LibraryClasses]
  17.   UefiLib
  18.   ShellCEntryLib


12-23 19:21