LoginSignup
3
2

More than 3 years have passed since last update.

Ultra96V2のPLでLEDチカを行う(VitisのHello worldから起動編)

Last updated at Posted at 2021-04-03

はじめに

Ultra96V2 で PL から LED を光らせるいわゆるLチカ記事です。

前提

まず別記事のUltra96V2用にPLでLEDチカを行うbitstreamを作るにてLチカを行うbitstreamができるところまで準備ができていることが前提の記事となります。

環境

今回はこんな環境で行っています。

  • Vivado 2019.2
  • Vitis 2019.2
  • Windows10マシン

Vivadoからハードウェア情報をエクスポート

まず、先の記事の Vivado プロジェクトから、「File」->「Export」->「Export Hardware」を選びます。

image.png

次に、ダイアログが出てきますので include bitstream にチェックを付けて、ultra96v2_led という名前で OK を押します。

image.png

指定した出力先に ultra96v2_led.xsa というファイルが出来ていることを確認します。

image.png

ultra96v2_led.xsa には、Vivadoで設定したPS部分の設定や、合成したbitstreamなど様々な情報が含まれています。

Vitis でプロジェクトを作る

まず Vitis を起動すると、ワークスペースの場所を聞いてきますので適当な場所を指定して Launch を押します。

image.png

起動したら Create Application Project を選びます。
image.png

Project name を入力して Nextを押します。今回は ultra96v2_led としました。

image.png

Platform 選択画面になるので Create a new platform from hardware(XSA) タブを選びます

image.png

+ボタンを押して新規にXSAファイルを指定します。

image.png

ファイル選択ダイアログが出るので先ほど Vivado で export した ultra96v2_led.xsa を選びます。

新しく ultra96v2_led[custom] というプラットフォームが出てくるので、選択して Next を押します。

image.png

Domain選択が出てきますが、今回は Cortex-A53 に standalone で問題ないのでそのまま Next を押します。

image.png

Template の選択が出てくるので Hello World を選び、Finishを押します。

image.png

ultra96v2_led というプロジェクトが出来上がるので、右クリックして「Build Project」を選んでビルドします。

image.png

しばらく待つとビルドが完了します。

SDカードからの起動する場合

起動イメージ作成

SDカードから起動するイメージを作るには「Create Boot Image」を選びます。

image.png

このようなダイアログが表示されます。

image.png

Boot image partition の部分がイメージの中身になります。

  • xsaの情報に基づく初期化と初期ブートを行うFSBL(first stage bootloder)
  • Vivadoで生成したLEDチカするbitstream
  • "Hello world"をシリアルに出力するプログラム

が含まれます。
「Create Image」ボタンを押すと BOOT.BIN というイメージが生成されます。

image.png

BOOT.BINをフォーマット済みの micro SDカードにコピーしてください。

image.png

今回は BOOT.BIN 1つだけあればOKです。

ボード起動

microSDカードをUltra96V2本体に取り付けて、起動ボタンを押してください。

image.png

LEDの点滅が確認できれば成功です。

JTAGから起動する場合

JTAGボードを持っている場合は、JTAGからも起動可能です。

ブートモードの変更

JTAGから起動する場合は、DIP-SWを ON-ON の設定として JTAGモードにする必要があります。

image.png

JTAGモードにして電源を繋いだ後に、起動ボタンを押して起動してください。

図のように 「Run As」 から 「Lanch on Hardware」を選べば、bitstream がダウンロードされ、FSBLの実行が始まります。

image.png

無事起動するとmain関数の初めまで実行され、ブレークポイントで止まるはずです。

image.png

この段階ですでにボードではLEDが点滅を始めているはずです。

ちなみにLinuxなどを用いずにスタンドアロンでPSのソフトウェアを開発する場合は、この延長で行うことが可能で、ここからソフトウェアをステップ実行してデバッグしたりすることも可能です。

UARTに "Hello World" を表示するには(おまけ)

ちなみにこの時BSDの設定で stdout を uart1 に変更すると JTAG ボードの UART(PCにはCOMで認識される)に Hello World を表示することもできます。

image.png

image.png

Vitis のシリアルコンソールに繋いでもいいし、別途 TeraTerm などから接続してもかまいません。

PSのLEDも点滅させる(さらにおまけ)

Hello World のついでにさらに GPIO を制御するコードを足すとPS のLEDも点滅させることができます。

image.png

おしらせ

2020/10/30 にて Qrunch がサービス終了したので移転してきた記事となります。
一時退避場所:https://github.com/ryuz/qrunch_blog

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2