vitis_zcu102_2_Vitis 實現 Bare-Metal 工程


具體方法與 SDK 的 Bare-metal 工程基本一致,詳細操作可以參考 zcu102 系列文檔

建立 Vivado 工程

建立基於 zcu102 開發板的 Vivado 工程。

建立 Block Design,添加 Zynq UltraScale+ MPSoc 的 IP

在這裏插入圖片描述

點擊 Run Block Automation,自動配置 IP 模塊。

雙擊打開配置窗口查看 UART 0 和 UART 1 已按照 zcu102 開發板的硬件連接設置完成。

在這裏插入圖片描述

並且在 PS-PL Configuration 頁關閉 AXI HPM0 FPD 和 AXI HPM1 FPD

在這裏插入圖片描述

保存 Block Design,Generate Output Products 並且 Create HDL Wrapper,完成後 Sources 窗口如下:

在這裏插入圖片描述

在 Flow Navigator 中選擇 Generate Bitstream,等待運行結束。

在 Vivado 菜單欄選擇 File > Export > Export Hardware,選中 Include Bitstream,點擊 OK 按鈕。

在這裏插入圖片描述

導出完成後在 Export to 路徑下出現導出的 xsa 文件:

在這裏插入圖片描述

建立 Platform Project

啓動 Vitis Software Platform,設置 Workspace 路徑後點擊 Launch 按鈕。

在這裏插入圖片描述

進入 IDE 後在菜單欄選擇 File > New > Platform Project

設置 Project name 後點擊 Next 按鈕

在這裏插入圖片描述

選中 Create from hardware specification (XSA) 後,點擊 Next 按鈕

在這裏插入圖片描述

點擊 Browse 按鈕,選中由 Vivado 工程導出的 xsa 文件

選擇 Operating system 爲 standlone

選擇 Processor 爲 psu_cortexa53_0

點擊 Finish 按鈕

在這裏插入圖片描述

關閉默認的 Welcome 界面,在 Explorer 中的工程上右鍵點擊,打開菜單選擇 Build Project

在這裏插入圖片描述

建立 Application Project

在菜單欄選擇 File > New > Application Project

彈出窗口中設置工程名稱,然後點擊 Next 按鈕

在這裏插入圖片描述

選中之前建立的 Platform Project,然後點擊 Next 按鈕

在這裏插入圖片描述

接下來的頁面保持默認,點擊 Next 按鈕

在這裏插入圖片描述

選中 Hello World 模板後點擊 Finish 按鈕

在這裏插入圖片描述

在 Explorer 中出現 hello 工程,雙擊打開 helloworld.c

在這裏插入圖片描述

修改原始代碼爲下方代碼

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"


int main()
{
    init_platform();

    print("Hello Uart\n\r");

    cleanup_platform();
    return 0;
}

運行測試

雙擊打開 Platform Project 中的 platform.spr

在這裏插入圖片描述

選中當前 a53 的 Board Support Package,在頁面內點擊 Modify BSP Settings… 按鈕

在這裏插入圖片描述

在彈出配置窗口的 standalone 頁面選擇 stdout 爲 psu_uart_0,或者 psu_uart_1

在這裏插入圖片描述

重新 Build Platform Project

在 Application Project 的右鍵菜單選擇 Build Project

板卡上電並且打開 TinySerial,打開 ttyUSB0 串口

在這裏插入圖片描述

在 Application Project 的右鍵菜單選擇 Run As > Launch on Hardware

在 TinySerial 中收到 Hello Uart

在這裏插入圖片描述

同樣的方法測試 uart_1。

在 BSP Settings 中選中 stdout 爲 psu_uart_1,在 TinySerial 中打開 ttyUSB1 串口,卻發現串口打開失敗,於是用查看串口狀態

在這裏插入圖片描述

原來是 ttyUSB1 權限設置問題,於是修改權限:

在這裏插入圖片描述

TinySerial 中打開成功後運行 Vitis Application

在這裏插入圖片描述

發現未收到 FSBL 的信息,原因是 FSBL 的 BSP 設置爲 uart_0 的 stdout,使用 2 個 TinySerial 程序分別打開 ttyUSB0 和 ttyUSB1,再次運行 Vitis Application:

在這裏插入圖片描述

Vitis 自帶的串口 Terminal

在 Vitis 菜單中選擇 Window > Show View > Xilinx/Vitis Serial Terminal

在界面上點擊 + 號按鈕連接串口(旁邊的 x 按鈕用於關閉當前串口)

在這裏插入圖片描述

在彈出窗口中配置串口

在這裏插入圖片描述

按前述辦法運行 Vitis Application,Vitis Serial Terminal 收到正確的數據

在這裏插入圖片描述

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