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

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

更多相关文章

《英雄联盟》游戏闪退弹窗“找不到d3dcompiler 47.dll”该如何应对?LOL英雄联盟游戏崩溃提示“缺失d3dcompiler 47.dll文件”的处理妙招

10天前

当游戏因“找不到d3dcompiler_47.dll”而崩溃时,一种方法是重新安装DirectX组件,因为该文件是DirectX的一部分。也可以从可靠的网站下载该文件,然后放置到系统相应目录中。还可以通过更新显卡驱动来尝试解决,因为显

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

9天前

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

安装windows系统到移动硬盘_将windows系统安装到移动硬盘

9天前

因为本本是mint,想在移动硬盘上装一个windows,这样可以使用多个系统了。 设备我使用的是一台xp系统的本本。补充说明,xp系统下只能打开32位的执行文件,64位的安装执行文件需要另求他法。

解读Autorun.inf病毒和autorun.inf_光盘里有autorun exe

9天前

这几天我的机子病毒大暴发,其中有一种病毒就是关于autorun.inf的。和它一起运行的是sxs.exe文件。它在每个驱动盘下都有这两个文件,并且文件夹选项里显示所有隐藏文件和文件夹选中后又会被改回去,很苦恼啊!于是上网查了一些这方面

autorun.inf病毒手动删除方法_手动删除autorun

9天前

中毒症状: 1.每个盘的盘符下有autorun.inf 和相应的病毒文件,通常通过移动存储来转播,双击或右键打开均会中毒, 2.杀毒软件,系统维护的工具,均无法打开,无论是卡巴也好,咖啡也好,瑞星也好,Sreng、aut

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

9天前

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

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

9天前

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

易用EasyRecovery,一键恢复误删的Flash文件,重拾创作激情

8天前

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

EasyRecovery:迅速救回丢失的Adobe文件,让Flash中心焕然一新!

8天前

EasyRecovery:您的数据恢复专家 项目介绍 在数字时代,数据的重要性不言而喻。无论是工作文档、珍贵照片还是个人视频,一旦丢失,都可能带来巨大的困扰。EasyRecovery作为一款功能强大的数据恢复软件,旨在

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

8天前

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

**从PowerDVD到图片:你的电影截图攻略**

8天前

方法一: Windows Media Player10 首先介绍,最简单的视频截图方法。Media Player10是常用的视频播放器,也可以视频截图。我们在播放电影的过程中,遇到想截取的图片,只需按下【“Ctrl+I”

Flash中心:隐藏的宝藏和22个强大功能指南

8天前

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

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

8天前

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

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

8天前

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

遇到wpcap.dll问题?解决攻略与预防小妙招,一步到位

8天前

在使用计算机的过程中,有时会遇到系统提示丢失wpcap.dll文件的情况。这种情况可能会导致某些依赖于该DLL(动态链接库)的程序无法正常运行。那么,当您遭遇这种问题时,应该如何应对呢?本文将详细介绍几种有效的解决方案,并提供一些预防

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

8天前

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

Python玩转ZIP压缩包:从基本操作到高级技巧

7天前

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

掌握C#中的SWF压缩与解压缩,优化Flash应用效率

7天前

【【【【C#压缩文件】】】】方法1:【filepath想要压缩文件的地址】【zippath输出压缩文件的地址】private void GetFileToZip(string f

系统维护必备工具:DISM++助你轻松应对Flash中心和Player

7天前

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

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

7天前

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

发表评论

全部评论 0
暂无评论