对于使用Intel Tiano EDKII的Code Base进行image的source build时,官方发布的最常用的方法是使用VS自带的Command Prompt命令行工具。以下步骤则是直接利用VS环境进行build,以及对如何对生成的Image进行Debug。
1. 安装VS环境。本人安装的为Visual Studio Ultimate 2012。
2. 下载EDKII Code Base源码,下载地址为:https://svn.code.sf.net/p/edk2/code/trunk/edk2
3. 打开VS2012,导入EDKII源码,具体步骤为:
1). 文件-->新建-->从现有代码创建项目
2). 选择项目的类型为Visual C++,点击下一步。
3). 填入EDKII源码路径以及项目名称
4). 在“要添加到项目中的文件类型”中,填写如下文件类型:*.py;*.c;*.h;*.asm;*.asm16;*.s;*.inc;*.asl;*.aslc;*.fdf;*.dsc;*.dec;*.inf;*.uni;*.hfr;*.vfr;*.dxs,点击下一步。至此,这些类型的文件将在项目中被显示出来。
5). 选择“使用外部生成系统”,并且把如下内容保存为BuildVS2012.bat文件(在此默认Build NT32的Image),保存路径和Nt32Pkg在同一目录下:
@call edksetup.bat
@rem if you are using a platform that uses EDK components
@rem or you need the EdkCompatibilityPkg libraries
@REM set EFI_SOURCE=%CD%\Nt32Pkg
@set EFI_SOURCE=%CD%
build %1 -p Nt32Pkg\Nt32Pkg.dsc -t VS2012 -a IA32 -b DEBUG -n 100 --log=build.log
6).在“生成命令行”中,填写:BuildVS2012.bat
7).在“重新生成命令行”中,填写:BuildVS2012.bat all
8).在“清除命令行”中,填写:BuildVS2012.bat clean,并点击下一步
4.至此,就可以直接在“生成”-->“生成解决方案”中build image了(或者直接按F7)。
5.需要进行Source Debug时,在对应的Source文件中添加断点的方法:在对应C文件需要打断点处加上:_asm int 3; 然后重新Build image. Build完Image之后,打开BuildVS2012.bat文件,编辑最后一行build %1 -p Nt32Pkg\Nt32Pkg.dsc -t VS2012 -a IA32 -b DEBUG -n 100 --log=build.log,加上run。也就是build %1 -p Nt32Pkg\Nt32Pkg.dsc -t VS2012 -a IA32 -b DEBUG -n 100 --log=build.log run。
6.按F5进行调试,此时会出现如下警告信息:
选择“调试程序”,然后选择对应的Debug工具就可以进行Debug了。