FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Zynq ZedBoardを使ってPSとPLの協調プログラミング入門(4)

ここからは、ARM上のプログラムの開発に入る。

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

  • 使用ツール : Vivado 2016.2
  • 使用OS : Windows 10

ARM上で動作するプログラムを書いてCustom IPを制御する

[File]→[New Project]をクリックする。

f:id:msyksphinz:20160828022542p:plain

プログラムは以下のような記述にした。

int main()
{
    init_platform();

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

    Xil_Out32(XPAR_SIMPLE_BRAM_0_S_AXI_BASEADDR + 0, 123);
    Xil_Out32(XPAR_SIMPLE_BRAM_0_S_AXI_BASEADDR + 4, 345);
    uint32_t result = 0;
    result = Xil_In32(XPAR_SIMPLE_BRAM_0_S_AXI_BASEADDR + 0);
    xil_printf("BRAM[0] = %d\r\n", result);
    result = Xil_In32(XPAR_SIMPLE_BRAM_0_S_AXI_BASEADDR + 4);
    xil_printf("BRAM[1] = %d\r\n", result);


    cleanup_platform();
    return 0;
}

ベースアドレスから2ワード分の領域に、123, 345と書き込みを行い、それを読み込む。

Debugの設定

デバッグ用の設定を行う。デバッグに使用するのはUARTなので、この設定を行う。デフォルトの通信速度は115200なので、このように通信速度を変更する。

f:id:msyksphinz:20160828022901p:plain

f:id:msyksphinz:20160828022904p:plain

FPGAを起動し、動作させる。この結果、以下のように、正しく読み書きができることが確認できた。

f:id:msyksphinz:20160828022945p:plain

参考文献

以下を参考にさせて頂いた。というかほぼパクってしまった。ありがたい。

qiita.com