【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(2)

前回の【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(1)の続きです。



開発環境

  • Vivado v2022.1
  • Xilinx Vitis IDE v2022.1
  • Windows10
  • Tera Term



VITISを起動

VIVADOのウィンドウからTools -> Launch Vitis IDEをクリック。WorkspaceとしてArty_ledを作成。もちろん別の名前でもかまいません。

File -> New -> Application Projectをクリック。

Nextをクリック。

Create a new platform from hardware(XSA)タブを選択しBrowseをクリック。

前回の【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(1)で生成されたdesign_1_wrapper.xsaを選択し、開くをクリック。

Nextをクリック。

Application project nameに、ここではArty_led_00と入力しNextをクリック。別の名前でもかまいません。

Nextをクリック。

Hello Worldを選択しFinishをクリック。

プロジェクトが生成されるので、helloworld.cを開きます。

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

XGpio Gpio;

int main()
{
	int Status;

    init_platform();

    // XGpio初期化
    Status = XGpio_Initialize(&Gpio, XPAR_GPIO_0_DEVICE_ID);
    if(Status != XST_SUCCESS) return XST_FAILURE;
    // LEDに接続されているピンを出力に設定
    XGpio_SetDataDirection(&Gpio, 1, 0);
    XGpio_DiscreteWrite(&Gpio,1,0x0a); // 値を0x0aに設定

    print("\n\rHello World\n\r");
    print("Successfully ran Hello World application\n\r");

    while(1);

    cleanup_platform();
    return 0;
}

このようにプログラムを修正します。そしてArtyをPCのUSBポートに接続。

ここでTera Termを起動。

シリアルを選択し、該当するCOMポートを選択します。COMポート番号はそのときの状態で変わるので、どのCOMポートがArtyに接続されているか確認してください。そしてOKをクリック。

転送レートは9600なのでディフォルトのままです。9600になっていなければ、設定 -> シリアルポートから9600を設定してください。

その後プロジェクト名(Arty_led_00_system)の上で右クリックしてBuild Projectを選択。無事にBuildが完了するとBinariesの下にelfファイル、ここではArty_led_00.elfが生成されます。

elfファイルをを選択した状態で、虫マークから上のように選択。

VITISはDebug用画面になります。

上部にあるスタートボタンをクリック。

Artyボードで、0xaに該当するLEDが正常に点灯しました。ざっくりですが、これで一応MicrBlazeのプログラムは正常に動作していると思います。



© 2024 サニーサイド