一. 环境准备
- Windows 10 (64位)专业版
- Visual Studio 2010旗舰版(默认路径安装)
- Mscrosoft SDKs 7.0A
- 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:BaseToolsdeksetup.bat,命令运行完后会在C:BaseToolsConf目录中生成target.txt和tools_def.txt配置文件。
2.1.2 修改配置文件
修改C:BaseToolsConf arget.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:BaseToolsConf ools_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:BaseToolsBuildNT32DEBUG_VS2010x86IA32目录中生成SecMain.exe,打开这个可执行文件就会出现uefi shell。
环境搭建完毕。
2.2 测试
2.2.1 修改配置文件
在C:BaseToolsConf arget.txt文件中,修改
*ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
其它选项保持环境搭建时的设置不变。
2.2.2 修改HelloWord.c文件
注释C:BaseToolsMdeModulePkgApplicationHell oWorldHelloWorld.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:BaseToolsBuildMdeModuleDEBUG_VS2010x86IA32目录生成HelloWorld.efi文件。
2.2.4 在UEFI Shell中运行HelloWorld.efi
在UEFI Shell中依次输入:
Shell> fsnt0:
fsnt0:>HelloWorld.efi,运行结果如图2.9所示。
图2.9 运行HelloWorld.c