admin 管理员组

文章数量: 1184232

EDKII官方Spec 合集网站

前言

之前在向代码中添加自己创建的代码时,一直都是在自己创建的 LilyPackage 中创建好相应的 .h .c .inf 文件,然后在 EmulatorPkg.dsc 文件中将 .inf 文件进行包含,一直没有出现问题。但是在创建新的 protocol 的时候,出现了一点问题,就是关于 include 的 TestProtocol.h
在UEFI中,创建新的 protocol 是需要在 .dec 文件中声明对应的GUID 的,我当时的做法是将GUID 在 EmulatorPkg.dsc [Protocols] 下进行声明,并且将自己定义的 .h 文件放在了 EmulatorPkg\Include\Protocol 路径下。但是有人提出,在他的代码中 需要将定义的 .h文件放在 MdePkg\Include\Protocol 路径下才可以得到编译结果 。之前我从来没有关心过文件的路径问题,对于不同类型的文件作用也没有进行深入的研究,借着这个疑问,也终于有机会对这些问题深入的研究一下。

Module & Package 概念

刚刚学习UEFI的人,不能避免的会遇到这两个概念,EDKII的代码组织形式就是以这两个概念为基础的,但是这两个概念在代码结构中的表现却很少有人提起。
我们打开EDKII代码的根目录,就可以看到许多个 .pkg 结尾的文件夹,每一个都是一个package

继续向下 我们就可以看到更多的子文件夹 有的子文件夹就是一个模块 ,但这也并不是绝对的。我们这样可以说是语焉不详,这种模棱两可的表述肯定搞不清楚这两个UEFI中最常见的概念的定义。为了明晰这两个概念,首先先看一下Build Spec (下载链接已经放在开头了 所有的EDKII需要的SPEC基本都能从这个连接中找到 )中对这两个定义的解释:

Module :A module is either an executable image or a library instance. For a list of module types supported by this package, see module type
Module: 是一个可执行image或者一个 lib instance 。某一个package中支持的module类型可以查看module type类型

Package:A package is a container. It can hold a collection of files for any given set of modules.
Packages may be described as one of the following types of modules:

  1. source modules, containing all source files and descriptions of a module
  2. binary modules, containing EFI Sections or a Framework File System and a description file specific to linking and binary editing of features and attributes specified in a Platform Configuration Database (PCD).
  3. mixed modules, with both binary and source modules
    Multiple modules can be combined into a package, and multiple packages can be combined into a single package.

Package:Package是一个容器,他容纳了一系列给定Module的文件的集合。
Package可以被描述成为以下几种类型的Modules的之一:

  1. source modules:包含了一个模块的所有源代码文件和描述文件
  2. 二进制 modules:包含了 EFI section 或者 一个ffs,以及 一个des 文件,专门用来链接和二进制编辑PCD中指定的功能和属性
  3. 混合modules :包含以上两种
    多个modules可以被包含在一个package中,多个package也可以结合成一个package

我觉得Spec里面的解释可以说是非常抽象了 幸亏 我手边有两本参考书 可以看一下书中所言:

  1. 包(package)是一组模块及平台描述文件(dsc)、包声明(dec)文件组成的集合。
    模块(可执行文件,即.efi文件)像插件一样可以动态地加载到UEFI内核中。
  2. 模块是UEFI上最小的可单独编译的代码单元,或是预编译的二进制文件,比如.efi执行文件。
    包由模块、平台描述文件和包声明文件组成。它可以不包含模块,也可以包含多个模块。

本文标签: 一个 文件 这个位置

更多相关文章

电脑垃圾清理的常用方法 系统垃圾清理并不难 这个方法电脑小白也能清理_系统自带清理电脑垃圾

11天前

随着电脑使用频率增加,各类 “数字垃圾” 正悄然占据磁盘空间,成为设备卡顿、运行变慢的核心诱因之一。这些垃圾并非传统意义上的废弃文件,而是系统与软件在运行中自然产生的冗余数据,比如浏览网页时缓存的图片视频、软件安装与更新留下的残留文件

Ghost11简体中文版:全面应用指南与技巧

11天前

简介:Ghost11作为Symantec公司开发的著名系统备份与恢复软件,引入简体中文界面,极大提升了国内用户的使用便捷性。本指南深入解析了Ghost11的核心功能,包括全盘克隆、分区克隆、映像文件创建与还原、自动备份计划和网络克隆等

斑马打印机设置成网络打印机步骤_斑马打印机怎么做网络共享

10天前

1.正常连接打印机后,下载“斑马机器改IP地址”文件。 2.用记事本打开文件修改要设置的IP地址,网关及子网掩码,如下图所示。 3. 右击打印机驱动,选择打印首选项-工具-发送文件,然后浏览到此ZPL文件,

电脑城国庆中秋装机版V16.0.iso

10天前

电脑城国庆中秋装机版V16.0.iso2009年10月19日大小: 692762624 字节修改时间: 2009年10月10日, 11:05:09MD5: 652DF65FCCD91966F2C7E38B

Kvsc autorun.inf病毒

10天前

Kvsc autorun.inf病毒专杀工具实验室不少同学中了kvsc3 病毒,它的特征是各盘根目录下面出现autorun.inf 文件(172k),然后有个8位文件名的94229DA1.exe文件。(声明是网上找到的方法

Msinfmgr和Autorun.inf病毒火热流行!

10天前

近日,Msinfmgr和Autorun.inf病毒异常火暴,尤以高校为主。有中招者,U盘所到之处,系统全部重装!该病毒是以U盘为主要载体进行传播的,查看Autorun.ini文件应该会发现其自动调用Msinfmgr.exe的字样,即U

js字体溢出字体变小_可变字体:它们是什么,以及如何使用它们

10天前

js字体溢出字体变小In this article, we’ll take a look at the exciting new possibilities surrounding variable fonts —

梦幻西游手游详细图文架设教程_手游客户端假设怎么设置

10天前

前言 提到梦幻西游,大家肯定不陌生。在 2001 年正式上线,它成为了很多人的第一款网游,陪伴了一代又一代的玩家成长。没错,今天要架设的就是梦幻西游手游! 本文讲解梦幻西游手游架设教程,经典的职业、音乐、场景、玩法,就

EasyRecovery:Windows系统下的神奇文件恢复工具,让你的SWF文件起死回生!

9天前

简介:EasyRecovery是一款为Windows用户打造的高效文件恢复工具,可轻松找回误删除或丢失的重要数据。软件操作简便,界面直观,适合所有层次的用户使用。其核心功能包括深度扫描未实际删除的文件、支持多种文件格式恢复,并提供文件

Flash大改造:让你的项目瞬间吸引眼球的创意技巧

9天前

1.重装IE6两妙招 第一种方法:点击“开始”菜单中的“运行”,在“运行”对话框中输入regedit打开注册表编辑器,展开注册表,找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftActive S

小米AX1800 WiFi6路由器:解锁SSH与IPv6网关设置

9天前

WiFI6版本弃子,小米路由器AX1800,通过配置文件永久开启ssh和ipv6传入网关设置作为小米路由器的第一款 wifi6路由器(ax.),最近一次的更新是2021年底,版本为

WPCAP.dll不见了?别担心,这里有轻松解决办法!

9天前

在计算机使用过程中,不少用户可能会遇到wpcap.dll文件丢失的问题,这通常会导致依赖于该文件的应用程序无法正常运行,如Wireshark网络封包分析器等。wpcap.dll是WinPcap套件的一部分,该套件为Windows操作系

游戏无法打开?可能只是因为少了一个WPCAP.dll!

9天前

方法一:下载一个everything,用everything搜索一下本地是否有wpcap.dll,可能是因为存在的目录位置不对,而导致找不到。这种请况就将对应dll文件拷贝到目标目录下,将wpcap.dll复制到C:WindowsS

面对wpcap.dll缺失?立即采取行动,确保网络监控工具有效运行

9天前

wpcap.dll是Windows系统中用于网络数据包捕获的关键文件,缺失或损坏会影响网络监控工具的运行。以下是针对缺少wpcap.dll文件的最新修复方法: 一、重新安装WinPcap或Npcap访问WinPca

解决Flash Player启动问题:快速找到并修复wpcap.dll

9天前

方法一:下载一个everything,用everything搜索一下本地是否有wpcap.dll,可能是因为存在的目录位置不对,而导致找不到。这种请况就将对应dll文件拷贝到目标目录下,将wpcap.dll复制到C:WindowsS

不再为文件安全担忧!用WinRAR轻松实现压缩文件的终极保护!

8天前

在职场中,我们经常会使用 WinRAR 来打包文档、项目文件或资料合集。压缩的好处显而易见:节省空间、方便传输、归档整洁。但你是否遇到过这些情况: 压缩文件被他人解压后重新打包,原文件被篡改? 项目资料被错

Python助力:快速上手zip文件的压缩与解压

8天前

ZipFile对象 顾名思义, zipfile是处理 zip文件的模块,其中最重要的类是 ZipFile,其构造函数为 ZipFile(file, mo

DISM++:你的Flash播放问题终结者,提升性能

8天前

简介:DISM++是一款全方位的电脑维护软件,提供深度扫描和清理功能,专为优化个人计算机而设计。它能够高效清除各种系统垃圾和无用文件,释放硬盘空间,并通过系统清理、优化、备份和恢复功能提高电脑的运行速度和性能。该软件还支持多语言界面,

Ubuntu系统安全大计,备份技巧大公开

8天前

本文主要参考这个博客。全文一半内容是复制粘贴的这个博客内容,提前声明一下,以防侵权。还参考了下这个ubuntu有时候用着用着崩了,或者想回退到历史某个版本。这就需要系统备份了:把当前某个能用的状态备

Win10系统备份轻松搞定:掌握captureimage命令的关键技巧

8天前

Win10自带的备份工具备份系统Windows操作系统经过从win98,win2000,winxp,win7,win8到win10的不断更新和完善,功能已经非常强大、完备了。但伴随着微软把重点转移到云端,对更新维护不再保

发表评论

全部评论 0
暂无评论