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执行文件。
    包由模块、平台描述文件和包声明文件组成。它可以不包含模块,也可以包含多个模块。

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

更多相关文章

Windows虚拟机中镜像文件_虚拟机镜像iso文件

11天前

访问微软官方Windows 10下载页面:https: 点击“立即下载工具”按钮,下载 。这是一个小型应用程序,用于帮助用户创建Windows 10安装介质。 运

宽带连接网页故障解析

11天前

宽带已连接网页打不开的若干原因和处理办法一、网络设置的问题 这种原因比较多出现于需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。仔细检查计算机的网络设置。 二、DNS服务器的问题 当IE无法浏览网

cf-blue-green-deploy 项目使用教程

10天前

cf-blue-green-deploy 项目使用教程 1. 项目的目录结构及介绍 cf-blue-green-deploy├── acceptance├── coverage├── fixtures├──

告别传统器,这款“颜值实力派”开源神器,让你体验极致高速与优雅_类似motrix软件

10天前

引言:下载,是CSDNers的“生命线”,但痛点无处不在! 各位CSDNers,IT领域的探索者们,大家好! 我们每日与代码、文档、开源项目、系统镜像、各类资源打交道,下载几乎是日常工作中不可或缺的一环。然而,你是否曾

拯救移动硬盘实录 - 参数不正确 卡系统_参数错误格式化又正常了

10天前

结论 大多数我们碰到的硬盘故障都不是物理故障,也就是硬件没坏,所以都是能修的, 不要在询问数据恢复相关的人后盲目的相信。 先说结论是因为这个才是重点。 最近移动硬盘莫名其妙就挂了,就是下

webdriver中的截图截图方法_webdriver截图

10天前

webdriver中的截图截图方法在webdriver中截图有两种,第一种:全屏截图,第二种:区域截图 1、全屏截图,这个非常简单,只需要截取图像、保存图像即可,其中用到了get_screenshot_as_fi

电脑无法打开Excel文件怎么办?_excel系统配置不能运行

10天前

修复Windows电脑无法打开Excel文件的七种方法 如何修复电脑打不开Excel文件的问题?有七种可行的方法供你参考。 方法1. 更改错误的文件扩展名 如前所述,XLS和XLSX都是Excel程序的扩展。2

解决360卸载之后遗留问题:windows defender无法开启_securityhealthservice启用

10天前

前几日,在对一台新电脑进行”净化工作“——卸载很多原装的垃圾软件,卸载了360之后发现windows defender无法打开,找到services.msc无法开启,启动按钮是灰色的,在查看了很多的教程之后,并确认windows de

一学就会:EasyRecovery简易指南帮你快速恢复误删的文件

9天前

简介:EasyRecovery是一款高效的文件恢复软件,它帮助用户恢复因误删除、格式化或其他原因丢失的文件。该工具扫描未被覆盖的硬盘空间,找回丢失文件的元数据和内容。它支持包括硬盘、外部硬盘、USB驱动器和SD卡在内的多种存储设备,并

EasyRecovery实战指南:从新手到高手,Windows文件恢复轻松搞定!

9天前

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

Windows10与笔记本配合时函数紊乱?轻松搞定指南

9天前

笔记本Windows10函数不正确?这里有解决方法在Windows10操作系统的使用过程中,许多笔记本电脑用户可能会遇到“函数不正确”的错误提示,这不仅影响了用户的正常使用,还可能导致一些关键功能无法正常运行。面对这种情

深度剖析:小米AX1800路由器SSH与IPv6网关设置的实操技巧

9天前

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

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

9天前

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

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

9天前

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

狂怒2"启动失败?wpcap.dll问题轻松修复,告别卡顿!

9天前

在启动《狂怒2》时遇到 wpcap.dll丢失的问题,可能会让玩家感到困扰。不过,通过以下几个步骤,您可以快速解决这一问题,恢复游戏的正常运行。 一、了解wpcap.dll文件wpcap.d

WPCAP.dll失踪?修复手册,轻松搞定电脑故障!

9天前

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

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

9天前

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

菜鸟也能学会!Windows 10系统还原轻松指南

9天前

有很多网友发现电脑系统出现问题后,知道可以通过重装系统来解决问题,但是如果不知道怎么重装系统或者是觉得重装太麻烦,还可以通过还原电脑系统解决,那么电脑系统还原怎么操作,今天小编就和大家说说还原电脑系统的具体操作方法。 更多

WinRAR小技巧:让你的文件包坚不可摧,不怕被乱动!

8天前

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

当Windows系统出问题时,如何借助DISM挂载映像进行修复,让电脑焕然一新?

8天前

如何使用DISM对Windows系统映像进行修复在前些天我更新电脑驱动的时候,更新程序报错了。我检查后发现是系统映像完整性的问题。在我解决完问题后,我决定把这个解决的过程记录下来,希望能帮到别人。 那么正文开始

发表评论

全部评论 0
暂无评论