對於使用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了。