1. 程式人生 > >Zedboard(二)使用Vivado+SDK開發嵌入式應用程序——實例一

Zedboard(二)使用Vivado+SDK開發嵌入式應用程序——實例一

跳過 管理 lock 使用 階段 驅動 選中 boa his

  本次介紹用Vivado構建Zedboard開發板的硬件平臺+SDK開發應用程序(Zedboard裸機開發)

過程如下:

一、運行Vivado,建立新工程

  指定好工程路徑,下一步,選擇RTL Project,勾選“Do not specify sources at this time”(先不添加源文件和引腳約束)

  技術分享圖片

  接下來選擇對應的開發板,勾選Board,選擇Zedboard XXXX

   技術分享圖片

  最後的界面顯示了新建工程的相關信息:

  技術分享圖片

  點擊finish完成。

二、添加處理器zynq-7000(IP)內核

  點擊左側菜單欄Flow Navigator->IP Intergrstor->Create Block Design

  技術分享圖片

  填上名字,選好所在文件夾(其實就是下圖的Sources)

  技術分享圖片

  點擊開發界面中的Add IP的加號,通過輸入關鍵詞來搜索需要添加的IP核

  技術分享圖片

  選中IP核後,系統會以圖形界面的形式把IP核顯示出來:

  技術分享圖片

  點擊上圖淺綠色條帶中的Run Block Automation

  技術分享圖片

  勾選apply board preset,將這個IP核相關的輸入/輸出信號映射到芯片具體的引腳上,並添加必要的約束。

  點擊OK按鈕後啟動自動化,完成後結果如下圖:

  技術分享圖片

  通過雙擊圖中的IP核(圖案會變成橙色)可以更改其內部配置。

  默認狀態下使能了M_AXI_GP0,可以將PL部分帶AXI從接口的IP連接到PS進行控制。這裏我們暫時不用到PL部分,所以把其禁用,否則驗證設計時會報錯。雙擊方塊,見下圖

  技術分享圖片

  完成配置後,右擊圖案,選擇“Validate Design”進行規則檢查。

  技術分享圖片

  如果沒錯誤則出現以下提示:

  技術分享圖片

  接下來是生成輸出文件並封裝成HDL形式

  為上述添加的模塊生成相關的綜合、實現及仿真文件,點擊Flow Navigator->IP Intergrstor->Generator Block Design

  技術分享圖片

  技術分享圖片

  生成輸出文件後,將其封裝成頂層HDL文件,Source窗口右擊core(添加的IP核名字),選擇Create HDL Wrapper

  技術分享圖片

  完成後,Source窗口多了一個HDL文件Core_wrapper.v

  技術分享圖片

  至此,我們完成了一個IP核的內部設計並將其封裝成基本的HDL形式(可以作為一個模塊被其他設計調用),接下來就可以進行RTL分析、綜合、實現和生成硬件比特流文件

  下一步,我們將生成比特流文件:

  左側導航欄Flow Navigator->Program and Debug->Generate Bitstream,如果之前沒有進行綜合和實現,則系統會提示是否進行,點擊yes即可。

  技術分享圖片

三、使用SDK完成軟件開發

  在上一步中我們已經完成了處理器硬件架構的設計,如果此時將比特流文件下載到ZYNQ-7000芯片內部,則此時的芯片將是一款用戶自己定制的處理器,但它還缺乏軟件程序。

  這一節,我們將硬件平臺信息導入到SDK 

  打開工程core,選擇IMPLEMENTATION(這一步是必須的,否則後面會報錯)

  技術分享圖片

  接著File->Exprot->Exprot Hardware for SDK,將硬件平臺信息、硬件比特文件全部導入SDK平臺並打開SDK軟件(打開後SDK的system.hdf就是)

  技術分享圖片

  註意勾選加入比特流文件

  技術分享圖片

  生成完成好,我們就完成了硬件平臺的構建,下一步就是進入SDK進行應用軟件開發了。

  File->Launch SDK,SDK開始運行。

  左側欄可以看到硬件平臺信息已經被導入。

  技術分享圖片

  下一步是創建BSP(板級驅動包)和Application Project(應用程序)

  BSP是在硬件平臺上運行程序必不可少的組件,在SDK中選擇File->New->Board Support Package

  技術分享圖片

  *裸機開發選standalone

  點擊finish以後會出現新創建BSP的配置信息:

  技術分享圖片

  這裏我們默認配置即可,點OK

  接下來就是建立應用工程,在SDK中選擇File->New->Application Project

  技術分享圖片

  命名和選擇信息,完成後點擊Next,

  技術分享圖片

  選擇Hello World作為工程模板,Finish。這時左側的工程瀏覽器就出現了剛剛建立的工程文件夾,下拉菜單src中找到helloworld.c,雙擊就可以編輯了 

  技術分享圖片

  編輯好代碼,點擊保存技術分享圖片,然後編譯技術分享圖片

  技術分享圖片

  在console中查看編譯報告,如果沒有出現錯誤,則編譯成功。下一步就可以連接Zedboard進行板級調試了。

四、進行板級調試

  完成應用程序的編寫並編譯成功以後,下一步便是連接PC和Zedboard進行調試。

  首先需要2根Micro-USB連接線,分別連接J14(UART)和J17(JTAG),如下圖所示。  

  技術分享圖片

  這裏稍微說明下J14和J17兩個接口的作用:

    (1)J14是USB轉UART串口,在這裏是用來輸出板卡的信息的(比如最簡單是輸出“Hello World”語句,要連接這條線才能在SDK的Console中顯示)

    (2)J17是USB-JTAG配置端口,用來配置板卡信息

  連接好線後,將跳帽JP7-11全部接地(進入JTAG模式),如下圖所示:

  技術分享圖片

  接通Zedboard電源,打開電源開關ON,通過PC的“設備管理器”,查看端口。

  技術分享圖片

  註意要辨別哪個COM端口是UART的,後面要用到。

  回到SDK,右擊工程lidar->Run As->Run configurations

  技術分享圖片

  雙擊Xilinx C/C++ application(GDB),出現“工程名 Debug”,選中後選中右側的STDIO Connection頁

  勾選"connect STDIO xxxx",將Port下拉選中UART對應的COM號(比如我的是COM4),下面是數值設置為115200,點擊Apply然後Close

  技術分享圖片

  設置好以後,我們就可以開始板級調試了,點擊菜單欄的技術分享圖片按鈕進入Run模型(當然在上面你Apply之後直接點Run也是一樣的效果)

  技術分享圖片

  *如果是要一步一步調試,則點擊技術分享圖片按鈕,進入Debug模式。

  *可能會提示沒有配置FPGA,跳過就好。

  通過Console就可以查看輸出了。

  技術分享圖片

  至此,一個簡單的應用程序就完成了。

  回顧一下,整個流程下來包括了以下幾個階段:

    1.搭建硬件平臺(在vivado中進行)

    2.將硬件平臺信息(包括比特流文件)導入SDK

    3.在SDK中建立驅動包和應用工程

    4.連接PC和開發板,進行板級調試

  

  

Zedboard(二)使用Vivado+SDK開發嵌入式應用程序——實例一