一. 环境准备

  1. Windows 10 (64位)专业版
  2. Visual Studio 2010旗舰版(默认路径安装)
  3. Mscrosoft SDKs 7.0A
  4. BIOS综合包里的EDK开发环境

    二. 实验步骤

    2.1 环境搭建

    2.1.1 准备实验所需文件

    解压BIOS 综合包里的UDK20120.SR1.UP1.P1.MyWorkSpace,解压BaseTools(Windows)。把BaseTools(Windows)文件夹里面的BaseTools文件夹放到C盘根目录;打开UDK20120.SR1.UP1.P1.MyWorkSpace文件夹里的MyWorkSpace,把这个文件夹里的内容放到C:\BaseTools文件夹里面;把从BaseTools(Windows)解压的edksetup.bat放到C:\BaseTools文件夹里面。
    在windows cmd中运行C:\BaseTools\deksetup.bat,命令运行完后会在C:\BaseTools\Conf目录中生成target.txt和tools_def.txt配置文件。

    2.1.2 修改配置文件

    修改C:\BaseTools\Conf\target.txt文件:
    ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
    TARGET = DEBUG
    TARGET_ARCH = x64 IA32
    TOOL_CHAIN_CONF = Conf/tools_def.txt
    TOOL_CHAIN_TAG = VS2010x86
    MAX_CONCURRENT_THREAD_NUMBER = 1
    BUILD_RULE_CONF = Conf/build_rule.txt
    修改C:\BaseTools\Conf\tools_def.txt文件:
    DEFINE WINSDK_VERSION = v7.0A

    2.1.3 生成uefi模拟器

    打开VS2010中的VS命令提示(2010),如图2.1所示。

    图2.1 VS2010中的VS命令提示(2010)
    在VS命令提示(2010)中输入以下命令:
    C:>cd BaseTools
    C:\BaseTools>edksetup.bat,如图2.2所示。

    图2.2 运行edksetup.bat
    C:\BaseTools>build,如图2.3所示。

    图2.3 编译生成UEFI SHELL
    大概2分钟后编译完成,如图2.4所示。

    图2.4 编译生成UEFI SHELL
    完成后在C:\BaseTools\Build\NT32\DEBUG_VS2010x86\IA32目录中生成SecMain.exe,打开这个可执行文件就会出现uefi shell。
    环境搭建完毕。

    2.2 测试

    2.2.1 修改配置文件

    在C:\BaseTools\Conf\target.txt文件中,修改
    *ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
    其它选项保持环境搭建时的设置不变。

    2.2.2 修改HelloWord.c文件

    注释C:\BaseTools\MdeModulePkg\Application\Hell oWorld\HelloWorld.c源文件中关于“UEFI HelloWorld !”字符串的输出,添加“liangshihaoS201607097”字符串的输出语句,保存退出。如图2.5所示。

    图2.5 修改HelloWorld.c

    2.2.3 编译源文件

    打开VS2010中的VS命令提示(2010),输入以下命令:
    C:>cd BaseTools
    C:\BaseTools>edksetup.bat,如图2.6所示。

    图2.6 运行edksetup.bat
    C:\BaseTools>build,如图2.7所示。

    图2.7 编译源文件
    大概2分钟后编译完成,如图2.8所示。

    图2.8 编译完成
    在C:\BaseTools\Build\MdeModule\DEBUG_VS2010x86\IA32目录生成HelloWorld.efi文件。

    2.2.4 在UEFI Shell中运行HelloWorld.efi

    在UEFI Shell中依次输入:
    Shell> fsnt0:
    fsnt0:>HelloWorld.efi,运行结果如图2.9所示。

    图2.9 运行HelloWorld.c

EDK_II环境搭建与测试的更多相关文章

  1. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  2. 【运维技术】kafka三实例集群环境搭建及测试使用

    kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...

  3. Tensorflow object detection API(1)---环境搭建与测试

    参考: https://blog.csdn.net/dy_guox/article/details/79081499 https://blog.csdn.net/u010103202/article/ ...

  4. C++调用Lua编程环境搭建及测试代码示例

    C++调用Lua编程环境搭建及测试代码示例 摘要:测试环境是VS2005+LuaForWindows_v5.1.4-45.exe+WIN7 1.安装lua开发环境LuaForWindows_v5.1. ...

  5. 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍

    基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...

  6. Mybatis环境搭建及测试

    1.新建java project,导入相应jar包 本次使用到的mybatis-3.2.7版本 mybatis需要jar包:mybatis-3.2.7.jar.lib文件下的依赖jar mysql驱动 ...

  7. webDriver环境搭建与测试

    1.安装jdk 2.安装eclipse 3.安装selenium 由于使用的是开发语言是java,因此需要安装java版的selenium包.下载地址:http://pan.baidu.com/s/1 ...

  8. ssh运行环境搭建及测试

    一.运行环境 1.Spring环境 Spring是一站式开发框架,在SSH中主要有以下作用,就像一个大管家: 控制反转(Inversion of Control):类不再自己进行类创建,而是交给Spr ...

  9. php学习笔记1——使用phpStudy进行php运行环境搭建与测试。

    1. 新手第一步还是使用phpStudy搭建一下windows下的php环境,并测试.如下: http://jingyan.baidu.com/article/3c343ff7067eff0d3679 ...

随机推荐

  1. mysql索引和外键

    innodb外键: 1.CASCADE:从父表删除或更新会自动删除或更新子表中匹配的行 2.SET NULL:从父表删除或更新行,会设置子表中的外键列为NULL,但必须保证子表列没有指定NOT NUL ...

  2. MySQL 性能测试

    MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行.最终目标是提交 SELECT 语句查找数据行,而不是排除数据行.优化器试图排除数据 ...

  3. Delphi XE7调用C++动态库出现乱码问题回顾

    事情源于有个客户需使用我们C++的中间件动态库来跟设备连接通讯,但是传入以及传出的字符串指针格式都不正确(出现乱码或是被截断),估计是字符编码的问题导致.以下是解决问题的过程: 我们C++中间件动态库 ...

  4. Python连接MySQL数据库执行sql语句时的参数问题

    由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...

  5. 20155327 java第四周学习笔记

    20155327 java第四周学习笔记 五六章知识整理 1子类与父类 父类是接口或者是抽象类,子类必须继承自父类. 2子类的继承性 在Java中,通过关键字extends继承一个已有的类,被继承的类 ...

  6. 2016年JD工作遇到的问题:6-15,日常小问题

    6.eclipse通过类名,找到所在的jar包. 解决办法:选中class, 快捷键 Ctrl +Shift+ T!!然后-- 之前经常是,根据类名找到对应的源文件,大脑短路,忘了下面的jar包提示. ...

  7. RabbitMQ 安装 rabbitmq_delayed_message_exchange插件

    rabbitmq_delayed_message_exchange插件主要是实现延迟队列 一.下载插件 下载地址:http://www.rabbitmq.com/community-plugins.h ...

  8. Codeforces 914 C 数位DP+暴力打表+思维

    题意 给出一个二进制数\(n\),每次操作可以将一个整数\(x\)简化为\(x\)的二进制表示中\(1\)的个数,如果一个数简化为\(1\)所需的最小次数为\(k\),将这个数叫做特殊的数, 问从\( ...

  9. cogs468 [NOI2010]超级钢琴

    http://cogs.pro:8080/cogs/problem/problem.php?pid=468 emmmmmm 今天考试爆炸顺便切了这题 这题我肯定不会啦然后看一sol.. 固定一个右端点 ...

  10. restful framework之频率组件

    一.频率简介 为了控制用户对某个url请求的频率,比如,一分钟以内,只能访问三次 二.自定义频率类.自定义频率规则 自定义的逻辑 #(1)取出访问者ip # (2)判断当前ip不在访问字典里,添加进去 ...