Windows环境下使用VS调试EDK |
您所在的位置:网站首页 › windows10SDK使用方法 › Windows环境下使用VS调试EDK |
一、先下载好以下软件资料 【1】EDK2 下载地址:https://github.com/tianocore/edk2 功能说明:EDK2是UEFI标准的一种具体实现,而且是开源的
【2】Python2.7.12 下载地址:https://www.python.org/downloads/windows/
【3】Openssl 下载地址:https://www.openssl.org/source/
【4】Visual Studio 2015 下载地址:https://visualstudio.microsoft.com/
【5】edk2-BaseTools 下载地址: https://codeload.github.com/tianocore/edk2-BaseTools-win32/zip/master
【6】nasm-2.13.01-installer-x86.exe 下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win32/
二、软件配置 【1】软件安装 上一步下载的资源中,含有3个安装文件和3个需要解压的文件,文件的安装和配置按以下步骤依次进行。 1)先将VS2015安装好,注意需要勾选和C/C++相关的安装组件;
2)接着解压EDK到某个文件夹,在该文件夹里找到CryptoPkg\Library\OpensslLib\中的openssl文件夹,删除其中的内容,并将openssl-OpenSSL_1_1_0g.zip解压到该目录下。再将edk2-BaseTools解压到主目录下的BaseTools/Bin文件夹中,并命名为Win32(里面含有许多需要python环境来支持的文件); 3)接着安装nasm; 4)最后安装python;
【2】环境变量添加 该步骤为了避免每次cmd运行edksetup.bat –nt32后都要在shell里配置环境变量的麻烦。 操作方法为:右键我的电脑——属性——高级系统设置——高级——环境变量,添加如下环境变量名和变量值: 环境变量名 变量值 PYTHON_HOME python的安装路径 Path(PATH) Openssl文件夹的路径;nasm.exe的路径 如下图:
三、尝试编译EDK2工程 【1】先打开EDK2的解压目录,在目录下cmd打开shell界面输入edksetup.bat –-nt32并确定,估计目前应该会失败。
【2】前面编译失败的话,需要来修改一下工程里的配置文件,使用记事本或NotePad++打开主目录下的BaseTools/Conf/target.template,做以下修改: ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc TOOL_CHAIN_TAG = VS2015
【3】现在再次cmd,运行edksetup.bat -–nt32应该没有error提示了,Warning暂时不用取管它。运行结果如下图:
【4】接着build,出现“Done”,表示编译最终通过。
【5】最后build run,打开shell界面,即可运行shell下的App,如输出“Hello World!”
四、编写简单Shell APP并调用VS调试 一个简单的Shell APP最少需要包含一个.c文件和.inf文件,其中.inf文件是用于指导编译器编译本module。下面给出简单的.c和.inf文件的具体内容。 .c文件: #include
EFI_STATUS EFIAPI UefiHello ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { _asm int 3 /*调试程序*/ SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Hello_20181130\n"); return EFI_SUCCESS; } .inf文件: [Defines] INF_VERSION = 0x00010005 BASE_NAME = MyTest_1 #输出文件的名字为MyTest_1.efi #MODULE_UNI_FILE = MyTest_1.uni FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4FFFFFF MODULE_TYPE = UEFI_APPLICATION VERSION_STRING = 1.0 ENTRY_POINT = UefiHello [Sources] MyTest_1.c #.dec文件里定义include的路径,如include 的路径在MdePkg/Include文件夹中,.dec文件用于提供本pkg的资源 [Packages] MdePkg/MdePkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib [BuildOptions] MSFT:*_*_IA32_CC_FLAGS = /Oi-
调用VS调试工具的要点是,在需要停顿去逐步运行的代码前添加代码行:_asm int 3,以及在.inf文件中添加[BuildOptions] MSFT:*_*_IA32_CC_FLAGS = /Oi- 如下图的目的是在输出Hello前停顿调试:
该APP在shell中运行后会弹出:
点击“调试”,系统会启动VS,弹窗点击“Break”即可进入断点处代码。
接下来在想要运行停顿的地方设置断点即可调试了。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |