首页 > 编程语言 >UEFI原理与编程(四)(dec dsc inf文件)

UEFI原理与编程(四)(dec dsc inf文件)

时间:2024-09-10 11:49:11浏览次数:9  
标签:文件 UEFI 模块 inf dec 列出 Pcd

1 .inf文件

以下面 .inf文件为例

[Defines]     # 块用于定义模块的属性和其他变量,块内定义的变量可被其他块引用
  INF_VERSION          = 0x00010006                            #INF 标准的版本号, 前半部分主版本号,后半次版本号
  BASE_NAME            = Main                    #模块名字字符串,不能包含空格。它通常也是输出文件的名字 Main.efi
  FILE_GUID            = 4ea97c46-7491-4dfd-b442-747010f3ce5f#每个工程文件必须有一个8-4-4-4-12格式的GUID,用于生成固件
  MODULE_TYPE          = UEFI_APPLICATION           # 定义模块的模块类型
  VERSION_STRING       = 0.1                        # 模块的版本号字符串
  ENTRY_POINT          = ShellCEntryLib             # 定义模块的入口函数


[Sources]     # 用于列出模块的所有源文件和资源文件。 可选项体系结构相关块
  Main.c      # 块内每一行表示一个文件,根路径是工程文件所在的目录

[Packages]    # 列出本模块引用到的所有包的包声明文件(.dec 文件)。
  StdLib/StdLib.dec  
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec  # 文件使用相对路径,相对路径的根路径为EDK2的根目录

[LibraryClasses]  #块列出本模块要链接的库模块
  LibC
  LibStdio        # 块内每一行声明一个要链接的库(库定义在包的.dsc 文件中,定义方法将在下文讲述

inf文件是模块的工程文件,其作用相当于Makefile 文件或Visual Studio 的.proj 文件,用于指导EDK2 编译工具自动编译模块;

工程文件分为多个块,每个块以“[ 块名]”开头,“[ 块名]”必须单独占一行。块又分为 工程文件必需块 和 工程文件非必需块

必需块 块描述
[Defines] 定义本模块的属性变量及其他变量,这些变量可在工程文件其他块中引用
[Sources] 列出本模块的所有源文件及资源文件
[Packages] 列出本模块引用到的所有包的包声明文件。可能引用到的资源包括头文件、GUID、Protocol 等,这些资源都声明在包的包声明文件.dec 中
[LibraryClasses] 列出本模块要链接的库模块
非必需块 块描述
[Protocols] 列出本模块用到的Protocol
[Guids] 列出本模块用到的GUID
[BuildOptions] 指定编译和链接选项
[Pcd] Pcd 全称为平台配置数据库(Platform Conf iguration Database)。
[Pcd] 用于列出本模块用到的Pcd 变量,这些Pcd 变量可被整个UEFI 系统访问
[PcdEx] 用于列出本模块用到的Pcd 变量,这些Pcd 变量可被整个UEFI 系统访问
[FixedPcd] 用于列出本模块用到的Pcd 编译期常量
[FeaturePcd] 用于列出本模块用到的Pcd 常量
[PatchPcd] 列出的Pcd 变量仅本模块可用

2 .dsc文件

.inf 用于编译一个模块, 而.dsc 文件用于编译一个Package, 它包含了[Defines]、
[LibraryClasses]、[Components] 几个必需部分以及[PCD]、[BuildOptions] 等几个可选部分。

3 .dec 文件

.dec 文件定义了公开的数据和接口,供其他模块使用。它包含了必需区块[Defines] 以及可选区块[Includes]、[LibraryClasses]、[Guids]、[Protocols]、[Ppis] 和[PCD] 几个部分。
.dec文件需要被调用模块.inf文件所包含。

标签:文件,UEFI,模块,inf,dec,列出,Pcd
From: https://www.cnblogs.com/linhaostudy/p/18406120

相关文章

  • Winform C# 窗体应用程序简单入门
    搬运来源:https://blog.csdn.net/weixin_46262993/article/details/104169982?spm=1001.2014.3001.5502一、什么是Winform?WinForm是WindowsForm的简称,是基于.NETFramework平台的客户端(PC软件)开发技术,一般使用C#编程。C#WinForm编程需要创建「Windows窗体应用程序」项目......
  • [MX-X3-T5 & RiOI-4] Countless J-Light Decomposition Solution
    看题以为自己会了,写代码的时候发现有细节没考虑清楚,复杂度写挂了以为被卡常了,调用并查集函数还手残打错了,浪费大半个下午。NOI之后属于越训越菜了QwQ。回到这个题,首先这个题当\(i\)固定时做法是显然的,我们自底向上考虑,每次一定是ban掉连向当前最长链最大子树的\(i\)条边......
  • ornament和decoration的区别
    做名词“装饰品”用时,ornament和decoration都表示无实际用途的装饰物。它们之间只有细微的区别。ornament除了表示装饰物并无实际用途外,还暗示装饰物本身很华丽,很精美,很突出。比如昂贵的宝石、精致的手工艺品、以及带有昂贵宝石的精致手工艺品。decoration则仅仅表示装饰物并无......
  • ACCT1101 Accounting for Decision Making
    ACCT1101AccountingforDecisionMakingProblemSetAssessmentType:ProblemSet/sLearningObjectivesAssessed:1,2,3,4DueDate:13September202415:00(3pmBrisbanetime)Weight:25%IndividualTaskDescription:Thisassessmentisbasedonacaseo......
  • thanos sidecar和receive区别
    ThanosSidecar和ThanosReceive是Thanos架构中的两个不同组件,它们在功能和用例上有显著的区别。以下是对这两个组件的详细比较:1.ThanosSidecar目的:主要用于与现有的Prometheus实例集成,增强其存储和查询能力。功能:数据上传:将Prometheus的时间序列数据上传......
  • HACKTHEBOX——Brainfuck
    靶机详情靶机地址:10.10.10.17攻击地址:10.10.16.3端口服务扫描首先依旧要确定攻击主机能否Ping通靶机使用nmap或者其他工具扫描目标开放了哪些端口与服务渗透过程从上图可以看到目标开放了135、139、445端口,开放了Smb服务,这个服务有个大名鼎鼎的漏洞就是永恒之......
  • P2926 [USACO08DEC] Patting Heads S
    根据题意我们不难想出枚举1到n,然后逐个判断能整除自己的个数,时间复杂度O(N^2),n<=1e5,明显会爆炸。考虑优化,我们看到a[i]<=1e6,可以开一个桶来记录,然后枚举1到maxn(即最大的a[i]),然后从i开始,每次加i,w[j](记录能整除j的a[i]的个数)+=c[i](值为i的个数)。代码:#include <bits/stdc......
  • 使用Blip的预训练好的imageEncoder并替换其textDecoder
    fromtransformersimportBlipProcessor,BlipTextConfigfromtransformers.models.blip.modeling_blip_textimportBlipTextLMHeadModelfromtransformersimportAutoTokenizermodel=BlipForConditionalGeneration.from_pretrained("huggingface.co/Salesforc......
  • [ABC293Ex] Optimal Path Decomposition 题解
    [ABC293Ex]OptimalPathDecomposition题解是一道难得一遇的好题。对于题目中的两个限制,同时满足是困难的,于是考虑常见的套路:先固定其中一个,再计算另一个。对于本题,显然\(k\)是有单调性的,于是考虑二分这个\(k\),将最优性问题转化为可行性问题,dp路径的最小长度。那么考虑d......
  • 洛谷P3128 [USACO15DEC] Max Flow P && 树上差分
    传送门:P3128[USACO15DEC]MaxFlowP首先要学会差分qwq题目意思:给定一个节点数为\(n\)的树,有\(m\)次操作。每次操作给你两个数\(s\)和\(t\),你需要在\(s\)到\(t\)的路径所经过点的运输压力\(+1\)。求最后运输压力最大的点的压力。思路:发现\(s\)到\(t\)的路......