1.UEFI-edk2 開發環境搭建

EDK2是UEFI使用比較廣泛的開源實現,支持在多種操作系統平臺下進行開發。爲了開發調試方便,這裏採用在win10下用visual studio進行UEFI的開發。VS號稱地表Top one的IDE,功能強大自不在話下,開發起來往往起到事半功倍的效果。此篇博客我們完成edk2源碼的開發編譯環境的搭建,同時編譯運行一個模擬器,用來測試efi程序。

一、相關工具安裝

首先下載安裝vs2017或者vs2015,安裝組件裏面勾選上“使用C++的桌面開發”這一項。
接着要下載NASM工具,下載後建議安裝到"C:\NASM"目錄下。
最後下載安裝IASL工具,下載後建議安裝到"C:\IASL"目錄下。
安裝完成後,需要配置下環境變量,在Path環境變量裏面添加IASL的安裝路徑,如下圖所示。
在這裏插入圖片描述
還需要創建一個新的環境變量NASM_PREFIX,變量的值設置爲NASM的安裝路徑。
在這裏插入圖片描述

二、編譯basetools

edk2 github項目主頁上下載edk2的源碼包,通過Win+R -> cmd打開windows下的命令行,cd到edk2的源碼目錄下,輸入如下命令編譯basetools。

edksetup.bat  Rebuild

編譯完成後會在 $(edk2-base)\BaseTools\Bin\Win32 目錄下生成一些工具,這個工具會在後續編譯efi工程的時候使用到。
在這裏插入圖片描述

三、config build

接下來需要編譯生成config文件,該文件用於配置後續編譯工程的工具鏈和項目名等信息,輸入如下命令即可。

edksetup.bat 

edksetup.bat命令執行完成後,會在 $(edk2-base)\Conf 目錄下生成幾個.txt的文本文件,其中 Conf\target.txt 文件需要更改下TOOL_CHAIN_TAG配置,這個根據自己的VS版本來寫,可以是VS2015/VS2017/VS2019等。
在這裏插入圖片描述
ACTIVE_PLATFORM配置的是默認編譯的工程,EmulatorPkg/EmulatorPkg.dsc是一個模擬器的工程路徑。
TARGET配置的是工程的編譯模式,可以是RELEASE或者DEBUG。
TARGET_ARCH是目標架構,在windows+VS的話可選X64或者IA32。

四、編譯模擬器

有了模擬器,就可以很方便的開發調試EFI驅動/程序,不用每次都把固件燒錄到實體機上FLASH啓動測試那麼麻煩。Conf\target.txt 默認配置的就是EmulatorPkg模擬器的工程,這裏只接用build命令編譯即可。

edk2setup.bat
build

編譯成功後如下圖所示。
在這裏插入圖片描述
編譯完成了,就可以運行模擬器了,我們可以cd到工程的輸出目錄下,運行目標文件。

cd Build\EmulatorIA32\DEBUG_VS2017\IA32\
WinHost.exe

運行WinHost.exe之後,UEFI固件的啓動界面就出來了,可以通過按鍵選擇進入UEFI SHELL或者配置界面進行efi程序的加載測試。
在這裏插入圖片描述

五、調試模擬器

用visual studio打開模擬器工程:$(edk2-base)\EmulatorPkg\Win\VS2017\Win.sln,即可在visual studio軟件中編譯運行UEFI模擬器工程了,也可以在efi應用/驅動上打上斷點,以調試模式運行模擬器工程,即可調試efi應用/驅動,如下圖所示,具體調試開發過程後續慢慢再講。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章