使用者工具

網站工具


uefi_learning

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
uefi_learning [2024/04/08 08:53]
don [INF的組成]
uefi_learning [2024/04/30 08:27] (目前版本)
don
行 1: 行 1:
 ====== UEFI 學習 ====== ====== UEFI 學習 ======
 +
 +[[https://uefi.org/specifications | UEFI specification download]]
 +
  
 {{:uefi_flow1.png|}} {{:uefi_flow1.png|}}
行 27: 行 30:
 |[FeaturePcd]| 用於列出本模塊用到的Pcd 常量| |[FeaturePcd]| 用於列出本模塊用到的Pcd 常量|
 |[PatchPcd]| 列出的Pcd 變量僅本模塊可用| |[PatchPcd]| 列出的Pcd 變量僅本模塊可用|
 +
 +[[http://guidgen.com|GUID 的生成]]
  
 1、[Defines]塊: 1、[Defines]塊:
行 70: 行 75:
 5、[BuildOptions]塊:\\ 5、[BuildOptions]塊:\\
 5-1、語法: 5-1、語法:
-     [BuildOptions]\\ +     [BuildOptions] 
-     [編譯器家族] : [$ (Target)][Tool_CHAIN_TAG][$ (Arch)]_[CC | DLINK]_FLAGS [= |==]選項\\+     [編譯器家族] : [$ (Target)][Tool_CHAIN_TAG][$ (Arch)]_[CC | DLINK]_FLAGS [= |==]選項
  
 5-2、編譯器家族 5-2、編譯器家族
      可以是MSFT(Visual Studio編譯器家族)、INTEL(Intel編譯器家族)、GCC(Gcc編譯器家族)      可以是MSFT(Visual Studio編譯器家族)、INTEL(Intel編譯器家族)、GCC(Gcc編譯器家族)
-     和 RVCT(ARM編譯器家族)中的一個\\ +     和 RVCT(ARM編譯器家族)中的一個 
-     Target是DEBUG、RELEASE和*中的一個,*是萬用字元\\ +     Target是DEBUG、RELEASE和*中的一個,*是萬用字元 
-     TOOL_CHAIN_TAG是編譯器的名字,編譯器定義在Conf/tools_def.txt檔中,*表示對指定編譯器家族內的所有編譯器都有效\\ +     TOOL_CHAIN_TAG是編譯器的名字,編譯器定義在Conf/tools_def.txt檔中,*表示對指定編譯器家族內的所有編譯器都有效 
-     Arch是體系結構,可以是IA32、X64、IPF、EBC或ARM,*是萬用字元\\ +     Arch是體系結構,可以是IA32、X64、IPF、EBC或ARM,*是萬用字元 
-     CC表示編譯選項,\\ +     CC表示編譯選項, 
-     DLINK表示連結選項\\ +     DLINK表示連結選項 
-     =表示選項附加到預設選項後面,\\ +     =表示選項附加到預設選項後面, 
-     ==表示僅使用所定義的選項,不用預設選項。它們後面是編譯選項或連接選項\\+     ==表示僅使用所定義的選項,不用預設選項。它們後面是編譯選項或連接選項
  
  
行 284: 行 289:
 efi——LoadImage——StartImage——_ModuleEntryPoint——ProcessModuleEntryPointList ——inf中指定的入口函数\\ efi——LoadImage——StartImage——_ModuleEntryPoint——ProcessModuleEntryPointList ——inf中指定的入口函数\\
 原文連結:https://blog.csdn.net/wangyongh/article/details/105345077 原文連結:https://blog.csdn.net/wangyongh/article/details/105345077
 +
 +
 +===== DSC 文件 =====
 +.inf 用于编译一个模块, 而.dsc 文件用于编译一个Package, 它包含了[Defines]、
 +[LibraryClasses]、[Components] 几个必需部分以及[PCD]、[BuildOptions] 等几个可选部分。
 +
 +
 +===== DEC 文件 =====
 +.dec 文件定义了公开的数据和接口,供其他模块使用。它包含了必需区块[Defines] 以及可选区块[Includes]、[LibraryClasses]、[Guids]、[Protocols]、[Ppis] 和[PCD] 几个部分。
 +.dec文件需要被调用模块.inf文件所包含。
 +
  
 UEFI 編譯 BaseTools \\ UEFI 編譯 BaseTools \\
行 369: 行 385:
 ==== PcdGetPtr() ==== ==== PcdGetPtr() ====
 PcdGetPtr(PcdHelloWorldPrintString) 讀取在PcdHelloWorldPrintString 的字串。 PcdGetPtr(PcdHelloWorldPrintString) 讀取在PcdHelloWorldPrintString 的字串。
 +
 +==== AMI VEB ====
 +AMI VEB 基本上就是一堆 .CIF 檔案的集合
 +
 + 
uefi_learning.1712537580.txt.gz · 上一次變更: 2024/04/08 08:53 由 don