前回の【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のプログラムは正常に動作していると思います。