EFI基本概念之UDK2015定制EDKTOOL

来源:互联网 发布:千元头戴式耳机 知乎 编辑:程序博客网 时间:2024/04/29 04:32

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需要在此文件中设定。


0 0
原创粉丝点击