”
ZynqBerryZero で Lチカをやってみよう2(ブロックデザインの作成、ビットストリームの生成)”の続き。
前回は、ZynqBerryZero で Lチカをやってみようということで、 Vivado 2020.2 の blink プロジェクトでブロックデザインを完成させて、論理合成、インプリメンテーション、ビットストリームの生成を行って成功した。今回は、Vitis 2020.2 でプラットフォームを作成し、アプリケーション・ソフトウェアを作成して、実機確認を行う。
まずは、ハードウェアをエクスポートする。
Vivado 2020.2 の File メニューから Export -> Export Hardware... を選択する。
Export Hardware Platform ダイアログが開く。

Output では、 Include bitstream を選択する。

Files はデフォルトのまま。

Exporting Hardware Platform 、 Finish ボタンをクリックする。

blink_wrapper.xsa が生成された。
Vitis 2020.2 を起動して、プラットフォームとアプリケーション・ソフトウェアを作成する。
Vivado 2020.2 の Tools メニューから Launch Vitis IDE を選択する。
Vitis IDE Launcher が表示された。

Brows... ボタンをクリックする。
blink_202 ディレクトリの下に vitis_work ディレクトリを作成して、 vitis_work を選択する。

Workspace に vitis_work がフルパスで入った。 Launch ボタンをクリックする。

Vitis 2020.2 が起動した。

Create Application Project をクリックする。
New Application Project ダイアログが表示された。

Platform では、 Create a new platform from hardware (XSA) タブをクリックする。

Hardware Specification の XSA File の Browse... ボタンをクリックする。

blink_wrapper.xsa を選択する。

blink_wrapper.xsa が Hardware Specification の XSA File に入った。

Application Project Details では、 Application project name に blink を入力した。

Domain はデフォルトのまま。

Templates では、 Hello World を選択する。

blink_wrapper プラットフォームが作成され、 blink_system アプリケーション・プロジェクトが作成された。

blink_system -> blink -> src の helloworld.c を確認した。

LED が点滅するようにコードを書き換えた。

修正した hellowrold.c の一部を示す。
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"
int main()
{
volatile uint32_t *axi_gpio_0;
init_platform();
axi_gpio_0 = (volatile uint32_t *)XPAR_AXI_GPIO_0_BASEADDR;
print("Hello World\n\r");
print("Successfully ran Hello World application");
cleanup_platform();
for(int i=0; i<1000; i++){
axi_gpio_0[0] = 0;
usleep(500000); // 500 ms
axi_gpio_0[0] = 1;
usleep(500000); // 500 ms
}
return 0;
}
Vivado 2020.2 の Explorer ウインドウの blink_wrapper を右クリックし右クリックメニューから Build Project を選択する。
すると、プラットフォームとアプリケーション・プロジェクトがビルドされて、 Binary の blink.elf が生成された。

アプリケーション・ソフトウェアの前に、 Ubuntu 18.04 なので gtkterm を起動しておく。
Port の設定は、 Port が /dev/ttyUSB1 で、 Baud Rate を 115200 にした。
Assistant ウインドウの blink_system -> blink -> Debug を右クリックし右クリックメニューから Run -> Debugger_blink-Default (Single Application Debug) を選択する。(これは、 2 回目だから、 1 回目は Launch on Hardware (Single Application Debug) を選択する)

gtkterm に Hello World が表示された。

ZynqBerryZero の LED も点滅した。下の写真は点灯時。

ZynqBerryZero で Lチカをすることができた。
- 2020年12月11日 04:00 |
- ZynqBerryZero
-
| トラックバック:0
-
| コメント:0