1 EDKTool作用

EDKTool是EDK代码的编译所需要的工具。由这指定编译器及编译选项,编译平台,编译active平台及编译DEBUG或Release版本。

EDKTool对X86及ARM的支持比较好,但对其它平台的支持不怎么好。鉴于EDK的包容性,即使没有对其它平台的支持,我们也要方便地构建其平台对应的工具。

2 EDKTool编译

BUILD SPEC上把EDKTool编译代码分成三个步骤:第一个步骤是预编译或者称元数据处理阶段;第二个步骤是编译步骤;第三个步骤是Image生成阶段。如果想在EDK代码还未支持的平台上做这几个步骤,首先要配置好EDKTOOL。

首先看一下Basetool文件夹内容:

这Bin和BinWrappers是编译过后的工具,我们配置环境的时候可以将其路径加入系统环境中,这是代码编译时,就知道build,GenFw,GenFv等工具在哪找寻。Conf是配置文件,其中有编译规则,编译目标的选择及编译工具,供我们使用者来配置。Source文件是第一阶段和第三阶段所用工具的源文件。Tests文件可以帮我们改的代码做一下语法检查。userManuals是对各个工具使用方法的说明。

3 EDKTool修改内容

我们要为一个EDK不支持的CPU架构做EFI成BIOS,主要是修改Conf和Source两个文件夹的内容。

3.1 build.py

这里要加入所要支持的CPU架构,要不然EDKTOOL不认识-a所带的参数。

3.2 FfsInfStatement.py

和3.1一样,加入CPU架构。不过用途不一样,此处主要是为Inf的解析及生成Ffs时使用。

3.3 PeImage.h

加入CPU的机器码,BIOS是PE32架构,都有PE头,这个机器码就是BIOS代码解析FFS的PE头使用的。

3.4 GenFw工具

如果在Linux下面编译,需要将ELF转成PE结构的。

3.5 tools_def.template

-t所需要的toolchain需要在此文件中设定。

EFI基本概念之UDK2015定制EDKTOOL相关推荐

  1. EFI基本概念之HOB

    1 基本概念及用法 HOB是Hand-offblock的缩写.是PEI阶段向DXE传递系统信息的手段.PEI阶段构建一些HOB结构,然后将其作为参数传给DXE阶段函数,DXE Core会根据其使用平台 ...

  2. 和老BIOS说永别 EFI BIOS技术解析

    BIOS最后的璀璨 BIOS,几乎和PC有着同样的寿命,当年康柏第一台"克隆"PC诞生的时候,它为了简化启动的设置,引入了固化程序的概念,在启动时负责将PC初始化,然后再将控制权交 ...

  3. ubuntu linux定制过程

    定制的组成部分 linux安装文件加载程序isolinu及其他相关信息.根文件系统镜像(Ramdisk).内核镜像.根文件系统四部分组成.安装过程由安装加载程序控制,直至完成后转入到挂载的根文件系统. ...

  4. 比较EFI和BIOS

    文章太长,有很多人会看不进去.在这个浮躁的社会里,能够把一本书逐字阅读已经变成了一种奢侈,尤其是现在大行其道的速读阅读法,讲究快即是美.而技术来不得半点取巧,需要一点点的读,一点点的思考和吸收,浮躁了 ...

  5. 【EFI系统分区】关于EFI系统分区的说明

    转载:https://zhidao.baidu.com/question/92653981.html EFI 可扩展固件接口(英文名Extensible Firmware Interface 或EFI ...

  6. efi系统分区是什么?efi系统分区怎么删除?

    efi系统分区介绍 EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力.不少人感觉它的不断发展将有可能代替现代的操作系统.事实上,EFI的缔造者们在第一版规范出台时就将EFI的 ...

  7. EFI删不删有什么影响

    EFI,可扩展固件接口英文名Extensible Firmware Interface 的缩写,是英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案. 1 ...

  8. 苹果8参数配置_黑苹果引导工具-Clover EFI bootloader(支持苹果10.12以上系统)

    Clover EFI Mac版是Mac平台上的一款最新支持Mac OS X10.12.10.13.10.14.10.15系统的四叶草启动引导配置工具.借助Clover EFI对Mac系统进行定制,用于 ...

  9. 手写操作系统(3)——开发环境建立与内核架构设计

    之前介绍了简单的Hello OS以及代码是如何运行的.接下来我们会真正动手开始往我们的Hello OS中增加功能,但是--操作系统架构是一个极其精细的活.如老话所言"凡事三思而后行" ...

最新文章

  1. 结构化的网络故障检测与排除方法
  2. :架构优化在何时,方成为公司的推动力与核心竞争力
  3. [OS复习]进程管理5
  4. C#模拟HTTP POST 请求
  5. 如何用dds实现线性调频_用神经网络生成线性调频
  6. android功耗iphone,是心目中的安卓小屏旗舰吗?iPhone 8尺寸大小,4000mAh电池容量...
  7. jersey spring_实施Jersey 2 Spring集成
  8. 26 MM配置-采购-采购申请-定义编码范围
  9. opencv颜色识别_opencv-python污水颜色识别
  10. 导入 kotlin(7)
  11. 电芯容量在前期循环中容量增加_锂离子电池容量“跳水”背后元凶找到了!——非均匀压力...
  12. 邬贺铨/余晓晖/田溯宁…千家从业者,数十位行业大咖共同烹制了一场怎样的AIoT“盛宴”?
  13. 洛谷——P1307 [NOIP2011 普及组] 数字反转
  14. Python实现多重弹窗脚本 整蛊朋友
  15. python生成随机中文_随机字生成器-Python
  16. DBCP连接池配置优化分析
  17. 朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?
  18. CSS3无限滚动(无线循环滚动)
  19. 青柚文案:水果店青柚推广文案,水果青柚广告文案
  20. android系统优化排行,性能最强的10大安卓手机排行,你用的排第几?

热门文章

  1. 注意力图Attention map可视化【亲测完美】
  2. 软件测试之性能测试(ios)——获取fps(流畅度)
  3. 产品三大文档BRD/MRD/PRD
  4. python抢票软件哪个好_买票回家难?软件加速包也无用?看我用python轻松抢票回家!...
  5. PS2045L-ASEMI肖特基二极管PS2045L
  6. 第十八届西南科技大学ACM程序设计竞赛
  7. 用Arduino和esp8266检测WIFI信号强度
  8. Vue电商后台管理系统项目开发实战(一)
  9. nvidia深度学习加速库apex简单介绍
  10. 高斯过程回归(六)核函数