小華的部落格: 快快樂樂學EFI(4)-使用VS2010建立EDKII專案

搜尋此網誌

網頁

星期日, 9月 09, 2012

快快樂樂學EFI(4)-使用VS2010建立EDKII專案

這一篇文章說的方式可以適用於VS2008與VS2010,使用Visual Studio建立專案的好處其實就只是有Tag功能,也就是方便你去追CODE改CODE的功能,雖然我都是使用SlickEdit 不過還是跟各位說一下怎麼使用吧~

在建立Visual Studio專案之前,請確認你已經在DOS Command Prompt下成功進入到NT32的EFI Shell模擬環境,如果還沒成功,請先試試看下面方式:

1) E:\MyWorkSpace:\> EdkSetup.bat
2) 修改E:\MyWorkSpace\Conf\Target.txt 內,搜尋關鍵字MYTOOLS ,並把他改成VS2008x86或是VS2010x86,我是用VS2010,所以要改成VS2010x86

3) 先產生 SHELL檔案,透過 E:\MyWorkSpace:\> build -D BUILD_NEW_SHELL
4) 測試看看能不能看到EFI Shell模擬環境E:\MyWorkSpace:\> build run
5) 如果可以看到Shell,則輸入reset 離開模擬環境

如果上面步驟都已經成功,則你可以繼續底下的步驟來設定VS2010的EDKII專案


Step1: 執行VS2010
Step2: 選擇File->New->Project From Existing Code ...
Step3: 出現的畫面上選擇"Visual C++" project type 


Step4: Click "Browse" 然後選擇你的工作目錄 (我的是E:\MyWorkSpace)

Step5: 並在File type的地方輸入底下這些附檔名,他的用意是去辨識哪些檔案要加入專案

 *.c;*.h;*.asm;*.asm16;*.s;*.inc;*.asl;*.aslc;*.fdf;*.dsc;*.dec;*.inf;*.py


Step6: 繼續下一步,並選擇 "Use external build system" 然後直接按下 "Finish" (後面的其他設定可以忽略)


Step7: 在步驟6結束後,你應該可以看到專案檔被開啟成功,然後在專案的地方按滑鼠右鍵,然後選擇"Properties"

Step8: 選擇左邊的 "NMake" 然後設定 Configuration 成 "All Configurations".


Step 9: 然後再編輯右邊的 "Build Command Line","Rebuild All Command Line" 和 " Clean Command Line" ,分別輸入下面的設定(請依照自己的工作目錄設定):

For Build Command Line:
------------------------------
   cd /d E:\MyWorkSpace
   set WORKSPACE=E:\MyWorkSpace 
   call edksetup.bat --nt32
build 

For Rebuild All Command Line:
------------------------------
cd /d E:\MyWorkSpace
  set WORKSPACE=E:\MyWorkSpace
  call edksetup.bat --nt32
  build clean
build 

For Clean Command Line:
------------------------------
cd /d E:\MyWorkSpace
  set WORKSPACE=E:\MyWorkSpace
  call edksetup.bat --nt32
  build clean

Step10: 確定你的工作目錄下的Conf\Target.txt內的TOOL_CHAIN_TAG有設定成VS2010x86,不然你會沒辦法使用VS2010的專案來Compiler,如果你是使用VS2008則設定成VS2008x86即可! 

Step11: 再選擇一次專案的"Properties",然後選擇左邊的"Debugging",接著邊及右邊的這兩個選項:




Step12:  當上述的動作都完成了,你就可以試試看Rebuild和Start Debugging的功能了.

成功的話,你會看到EFI Shell的模擬畫面! 


※ 本篇文章是參考我以前同事部落格所多做的一些說明,如果你需要更仔細的說明,請參考我以前同事 Tim Lewis 的部落格~ 










2 則留言:

ZongNan 提到...

非常感謝您不斷的分享EFI的相關知識,我的工作主要是寫測試程式,目前正學習在shell裡面去測試一些東西,您的blog給我很多的幫助,希望可以再多分享新知識,感謝!

匿名 提到...

Hi, 在efi下運行寫好的程式出現了assertion ”tmp !=NULL “failed: file “sys\open.c”. line 171的訊息,不曉得您是否有遇過?不知道問題該怎麼解中…