一、inf文件

inf文件(Module Information File)--用于编译一个模块;模块的工程文件,相当于Makefile文件,用于指导EDK2编译工具自动编译模块。
工程文件分很多块,每个块以[块名]开头,[块名]必须单独占一行
必须块:
[Defines]                        定义本模块的属性变量以及其他变量,这些变量可以在工程文件其他块中引用
[Sources]                       列出本模块的所有源文件以及资源文件
[Packages]                    列出本模块引用到的所有包的包声明文件;可能引用到的资源包括头文件、GUID、Protocol等,这些资源都声明在包的包声明文件.dec中
[LibraryClasses]            列出本模块要链接的库模块
非必须块:
[Protocol]                      列出本模块用到的Protocol
[Guids]                           列出本模块用到的GUID
[BuildOptions]              指定编译和链接选项
[Pcd]                              Pcd全称平台配置数据库(Platform Configuration Database),用于列出本模块用到的Pcd变量,这些Pcd变量可以被整个UEFI系统访问

[Defines]块
[Defines]块用于定义模块的属性和其他变量,块内定义的变量可被其他块引用
1、属性定义语法
属性名=属性值
2、必须定义的属性
INF_VERSION:INF标准的版本号
BASE_NAME:模块名字字符串
FILE_GUID:每个工程文件必须有一个8-4-4-4-12格式的GUID,用于生成固件
VERSION_STRING:模块的版本号字符串
MODULE_TYPE:定义模块的模块类型
ENTRY_POINT:定义模块的入口函数

[Sources]块
[Sources]块用于列出模块的所有源文件和资源文件
1、语法
块内每一行表示一个文件,文件使用相对路径
2、体系结构相关块
.$(Arch)是可选项,可以是IA32、X64、IPF、EBC、ARM中的一个,表示本块使用的体系结构
3、编译工具链相关的源文件
|GCC表示文件仅在使用GCC编译器时有效

[Packages]块
[Packages]块用于列出本模块引用到的所有包的包声明文件(.dec文件)
1、语法
每一行列出一个文件,文件使用相对路径。若[Sources]块内列出了源文件,则在[Packages]块必须列出Mdepkg/Mdepkg.dec,并将其放在本块的首行

[LibraryClasses]块
[LibraryClasses]块用于列出本模块要连接的库模块
1、语法
块内每一行声明一个要链接的库(库定义在包的.dsc文件中)
2、常用库
应用程序工程模块必须链接UefiApplicationEntryPoint库;驱动模块必须链接UefiDriverEntryPoint库

二、dsc文件

dsc文件(Platform Description File)--用于编译一个Package;每个包包含一个dec(Package Declaration File)文件和一个dsc文件
必须块
[Defines]
[LibraryClasses]
[Components]
非必须块
[PCD]
[BuildOptions]

[Defines]块
[Defines]块用于设置build相关的全局宏变量,这些变量可以被.dsc文件的其他模块引用
1、语法
宏变量名=值
2、必须定义的宏变量
DSC_SPECIFICATION                        数值                须保证向后兼容
PLATFORM_GUID                             GUID              平台GUID,每个.dsc文件必须有一个独一无二的GUID
PLATFORM_VERSION                      数值                .dsc文件变化时,增加此数值
PLATFORM_NAME                           标识符             标识字符串只能包含英文字符、数字、横线和下划线
SKIOD_IDENTIFIER                           标识符             可以通过命令行在build时传入
SUPPORTED_ARCHITECTURES       列表                 通过 | 分隔的列表,该.dsc所支持的平台体系结构
BUILD_TARGETS                              列表                 通过 | 分隔的刘表,该.dsc所支持的编译目标

[LibraryClasses]块
[LibraryClasses]块中定义了库的名字以及库.inf文件的路径,这些库可以被[Components]块内的模块引用
1、语法
[LibraryClassed.$(Arch).$(MODULE_TYPE),LibraryClasses.$(Arch1).$(MODULE_TYPE1)]
    LibraryName | Path/LibraryName.inf
$(Arch)和$(MODULE_TYPE)是可选项,逗号表示并列关系。
$(Arch)表示体系结构
$(MODULE_TYPE)表示模块的类别

[Components]块
[Components]块中地暖管一的模块都会被build工具编译并生成.efi文件

三、dec文件

dec文件(Packages Declaration File)定义了公开的数据和接口,供其他模块使用
必须区块
[Defines]
非必须快
[Includes]
[LibraryClasses]
[Guids]
[Protocols]
[Ppis]
[PCD]

[Defines]块
[Defines]块用于提供package的名称、GUID、版本号等信息

笔记——inf、dsc、dec文件相关推荐

  1. UEFI 系统变量服务和dsc,dec,inf简单理解

    系统变量服务是运行时服务提供的服务,用来操作系统变量. 包括读取系统变量的GetVariable,新建或更改变量的setVariable,遍历系统变量的GetNextVariableName. 要使用 ...

  2. UEFI原理与编程第二章学习- .dsc .dec .fdf文件与包

    .dsc .dec .fdf文件及包    上一篇介绍了 .inf文件, .inf文件相当于Visual Studio中的工程文件.而 .dsc(Platform Description File)则 ...

  3. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  4. Unix原理与应用学习笔记----第六章 文件的基本属性2

    Unix原理与应用学习笔记----第六章 文件的基本属性2 改变文件权限命令:chmod 提示:文件或目录创建后,就被赋予一组默认的权限.所有的用户都有读,只有文件的所有者才有写. 相对权限设置 Ch ...

  5. ActiveX: 如何用.inf和.ocx文件生成cab文件

    ActiveX: 如何用.inf和.ocx文件生成cab文件 转载于:https://www.cnblogs.com/time-is-life/p/5977962.html

  6. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  7. 在微信收藏笔记中的录音文件拷贝或另存问题--适用于silk无法导出,看不见的情况

    在微信收藏笔记中的录音文件拷贝或另存问题–适用于silk无法导出,看不见的情况 微信收藏的语音消息可以按照以下步骤,来导出为mp3格式. 1,在电脑上登陆PC版微信. 2,点击"收藏&quo ...

  8. 怎么在笔记中加入音频文件?

    有些人在工作的时候会用到笔记工具,除了会记录一些文字内容外,还会上传添加图片.音频等附件. 既然如此,怎么在笔记中加入音频文件呢?要怎么操作呢?以手机端敬业签为例,我们一起来看一下要怎么操作. 一.在 ...

  9. INF安装信息文件⑥

    INF高级应用实例 利用INF文件,我们可以完成很多意想不到的操作,这里通过几个实例进行说明: 实例一:完全删除驱动程序 很多情况下,当我们将不需要的硬件设备从系统拔出或取消连接后,其驱动程序并未从系 ...

最新文章

  1. QPushButton 响应回车 设置默认按钮
  2. oracle惯用缩写的含义
  3. python3 导入自定义函数
  4. 随机重命名MP3文件
  5. rds 数据导入mysql_将数据导入到 Amazon RDS 数据库实例
  6. c++ STL 全排列
  7. Hadoop之HDFS应用
  8. 产品经理岗位职责及面试指南
  9. 网络安全技术第六章——第一节计算机病毒及其防治(中毒表现、计算机病毒概述、计算机病毒分类、病毒传播路径、计算机病故防治建议、我之前写过一篇这个,有需要的可以去看一下)
  10. 阿阿斯顿发沙发是地方撒旦法
  11. 操作系统内核框架图整理
  12. 怎么在Excel中准确提取出姓名中的姓氏
  13. #7 C++高级--内存管理、文件处理、多线程
  14. Unity Particle System 制作刀光特效
  15. Mysql主从复制之异步与半同步以及主从切换(实验)
  16. Centos安装Oracle11Gr2到84%的时候报错Error in invoking target ‘install‘ of makefile
  17. 中国高科技企业在忙什么(聚焦)
  18. 刚刚从GitHub 上扒下来,标星 75k,超牛的《Java面试突击版》,这么高标星果真有原因的
  19. Vue高仿网易云网页端源码
  20. 无线远程模块的应用,手机APP远程监控PLC数据技术方案

热门文章

  1. typora 主题 背景图片 透明代码块
  2. 2021年加氢工艺考试报名及加氢工艺考试资料
  3. Android 文件命名最大长度限制
  4. SEO优化论坛让我懂了没团队经验,看如何制作短视频赚钱一天20元
  5. screen投屏怎么用_Screen怎么投屏电脑?Screen投屏电脑的方法
  6. 微信公众号简单开发(10)链接消息
  7. 基于STC15W4K32单片机仿真《定时器0实现LED闪烁》
  8. 安装显卡驱动提示“未找到兼容图形设备”的解决方法
  9. Unity/C# Socket框架学习遇到的相关方法
  10. 解决:Component Xxx is not part of any NgMo