FC2カウンター FPGAの部屋 ZynqBerryZero で Lチカをやってみよう3(アプリケーション・ソフトの作成と実機確認)
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZynqBerryZero で Lチカをやってみよう3(アプリケーション・ソフトの作成と実機確認)

ZynqBerryZero で Lチカをやってみよう2(ブロックデザインの作成、ビットストリームの生成)”の続き。

前回は、ZynqBerryZero で Lチカをやってみようということで、 Vivado 2020.2 の blink プロジェクトでブロックデザインを完成させて、論理合成、インプリメンテーション、ビットストリームの生成を行って成功した。今回は、Vitis 2020.2 でプラットフォームを作成し、アプリケーション・ソフトウェアを作成して、実機確認を行う。

まずは、ハードウェアをエクスポートする。
Vivado 2020.2 の File メニューから Export -> Export Hardware... を選択する。
Export Hardware Platform ダイアログが開く。
ZynqBerryZero_58_201210.png

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

Files はデフォルトのまま。
ZynqBerryZero_60_201210.png

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

blink_wrapper.xsa が生成された。

Vitis 2020.2 を起動して、プラットフォームとアプリケーション・ソフトウェアを作成する。

Vivado 2020.2 の Tools メニューから Launch Vitis IDE を選択する。

Vitis IDE Launcher が表示された。
ZynqBerryZero_62_201210.png

Brows... ボタンをクリックする。

blink_202 ディレクトリの下に vitis_work ディレクトリを作成して、 vitis_work を選択する。
ZynqBerryZero_63_201210.png

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

Vitis 2020.2 が起動した。
ZynqBerryZero_65_201210.png

Create Application Project をクリックする。

New Application Project ダイアログが表示された。
ZynqBerryZero_66_201210.png

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

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

blink_wrapper.xsa を選択する。
ZynqBerryZero_69_201210.png

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

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

Domain はデフォルトのまま。
ZynqBerryZero_72_201210.png

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

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

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

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

修正した 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 が生成された。
ZynqBerryZero_77_201210.png

アプリケーション・ソフトウェアの前に、 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) を選択する)
ZynqBerryZero_78_201210.png

gtkterm に Hello World が表示された。
ZynqBerryZero_79_201210.png

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

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

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5085-21cd3aa4
この記事にトラックバックする(FC2ブログユーザー)