我們正在開發(fā)高性能 MicroBlaze 系統(tǒng),因此我們希望能從 DDR SDRAM 執(zhí)行我們的程序,并且還能使用更多特殊功能(包括 DMA),這樣 MicroBlaze 處理器能夠處理所捕獲的數(shù)據(jù)。DDR 存儲器接口由于其復(fù)雜的驅(qū)動要求而難以實現(xiàn),但是賽靈思 MIG 可以自動生成 AXI 總線與 DDR SDRAM 之間的 DDR 接口。
MIG 在 IP Catalog 中提供,通過對它進行自定義,我們可以選擇想要的時鐘頻率、目標(biāo)存儲器設(shè)備、存儲器選項、終止計劃以及引腳分配。圖 3 給出了目標(biāo) DDR 設(shè)備的選擇。盡管開始看起來比較復(fù)雜,但其實很容易上手和使用,而且運行快速。
?
圖 3:MIG 選擇目標(biāo)設(shè)備
根據(jù)應(yīng)用需求對接口進行自定義后,本例中我們需要提供兩個時鐘:200MHz 參考時鐘和 166.667MHz 系統(tǒng)時鐘。
設(shè)計中所有模塊都根據(jù)需求進行了自定義,我們可以創(chuàng)建 RTL 包裝器并重新生成輸出,這樣就能構(gòu)建系統(tǒng)并開發(fā)第一個應(yīng)用。
開發(fā)軟件
完成項目實現(xiàn)并獲得數(shù)字文件后,我們可以打開實現(xiàn)后的設(shè)計,并將 HDF 和數(shù)字文件導(dǎo)出至 SDK?,F(xiàn)在,我們已準(zhǔn)備好創(chuàng)建軟件應(yīng)用。
如果是第一次打開 SDK,那么軟件會詢問你想使用哪個工作空間。工作空間是存儲項目和相關(guān)軟件項目文件(例如板支持包 (BSP) 和硬件定義)的區(qū)域。
要啟動并在 SDK 中運行,我們需進行以下操作:
創(chuàng)建硬件定義項目
為硬件定義創(chuàng)建 BSP
創(chuàng)建應(yīng)用
構(gòu)建應(yīng)用
定義調(diào)試環(huán)境,以使我們能夠通過 JTAG 鏈路在開發(fā)板上運行應(yīng)用
第一步是導(dǎo)入硬件定義。要在 Vivado 中進行此操作,應(yīng)從 SDK 菜單中選擇 file -> new -> other。這會打開一個對話框,如圖 4 所示。選擇 Xilinx 文件夾下的“Hardware Platform Specification”
?
圖 4:選擇硬件平臺規(guī)范
在下個對話框中輸入項目名稱。比較好的方法是始終命名為 project_HW,以清楚標(biāo)明。瀏覽至 Vivado 項目中包含 HDF 文件的目錄。注意,這在 Vivado 項目下的 .sdk 文件夾內(nèi)。
這樣可創(chuàng)建硬件規(guī)范,并出現(xiàn)在 SDK 左側(cè)的項目瀏覽器中。這個項目中,你可打開 HDF 文件,并查看所有存儲器映射的外設(shè)的地址。
利用創(chuàng)建的硬件平臺,我們現(xiàn)在就可創(chuàng)建 BSP。這里面包含用來驅(qū)動和控制硬件的驅(qū)動程序和 API。我們可選擇 file -> new -> board support package,以創(chuàng)建 BSP。這將打開一個對話框,我們可以逐頁設(shè)置。
輸入項目名稱。注意它如何關(guān)聯(lián)我們剛創(chuàng)建的硬件平臺。本例中,我們使用獨立的操作系統(tǒng)。這會打開一個 BSP 的設(shè)置彈出窗口。在這里,我們不需要做任何修改,但是如果需要,可以添加一些選項,例如輕量級 IP 協(xié)議棧等。
在獨立頁面中,我們還可為編譯器選擇 stdin 和 stdout。確保將它設(shè)置成 AXI UART。
此時,我們就可以創(chuàng)建自己的應(yīng)用了。本例中,我使用“hello world”簡單模板。我們在 SDK 中選擇 -> new -> application project ,以創(chuàng)建應(yīng)用項目。這將打開一個對話框,我們可以在對話框中選擇之前創(chuàng)建的 BSP,以及硬件定義和我們針對的處理器。(本例中只有一個。)
通過這些步驟,我們可以創(chuàng)建一個通過 UART 輸出“hello world”字符串的簡單應(yīng)用。選擇“build all”以構(gòu)建 BSP 和應(yīng)用項目,并產(chǎn)生一個 ELF 文件,你可以下載這個文件并在硬件上運行。
在硬件上運行
我們需要創(chuàng)建一個調(diào)試環(huán)境,然后點擊下載 ELF 文件。為此,右鍵點擊應(yīng)用項目并選擇 Debug As -> Debug Configurations。這將打開一個對話框,如圖 5 所示,在此創(chuàng)建一個新的調(diào)試環(huán)境。我們希望創(chuàng)建一個新的 GBD 調(diào)試應(yīng)用。
?
圖 5:創(chuàng)建調(diào)試配置
提供一個名稱,在接近底部的下拉菜單中選擇“Reset Processor”。我們還需要點擊“Debugger applications”標(biāo)簽,并將“stop at main() when debugging.”選項取消選中,以確保應(yīng)用程序下載后自動運行。最后,點擊apply,而非調(diào)試,然后關(guān)閉。
評論