【FPGA/HDL】Microblaze MCSを使ってLチカ日記4日目:アプリケーションプロジェクトの作成とソフトウェアコーディング

投稿日:2019年3月5日
最終更新日:2019年3月6日

今回やること

前回はBSP(Board support package:ハードウェアを動かすために必要なライブラリやドライバを集めたもの)プロジェクトの作成を行ったので、今回はいよいよLED点滅を実行するためのアプリケーションプロジェクトを作成し、C言語でコーディングしていく。

 

環境

Windows10
Vivado HLx 2018.3: WebPACK
ZYBO

 

アプリケーションプロジェクトを作成

まずはFileからApplication Projectを選択。

プロジェクト名は適当につける。また、BSPは前回作成したものを選択する。

このままFinishすると、デフォルトではHello Worldを出力するC言語のコードが既に作成されている。これに変更を加えて、LEDを光らせるコードにする。

ソースコードの名前がhelloworldになっているが右クリックでRenameして、わかりやすくblink_led.cにしておく。

 

LEDを点灯させるコードを作成

ヘッダーファイルとしてxparameters.hとxiomodule.hをincludeする。勉強がてら、少し中身を覗いてみる。まずはxparameters.h。こちらはその名の通り、DeviceのIDなどのパラメータが定義されている。

次にxiomodule.hだが、こちらはIO moduleへのRead/Writeなどの関数が定義されたファイルになる。今回はGPOに任意の値を書き込んでLEDを制御するので、XIOModule_DiscreteWrite関数を使用する。

最後にC言語のコードを載せておく。先ほどの関数を使い、まずはシンプルにLEDを点灯させるようにした。0xAをGPOに書き込むので、LEDが1個飛ばしで点灯するはず。記事書いている時に気付いたけど、点滅じゃなくて点灯なので厳密にはLチカじゃない(笑) まぁあとでタイマーやボタンで点灯パターンが変わるようにすることもできるし、まずはこれで良しとする。

 

FPGAをConfigurationとソフトウェア書き込み

いよいよZYBOのFPGAをConfigurationし、ソフトウェアを書き込んで動かしていく。FPGAのConfigurationはVivadoから実行しても良いのだが、SDKからも以下のように書き込みができる。

Program FPGAのウィンドが出るので、デフォルトのままOKを押す。

PSブロックのデザインがありませんよ~とWarningが出るが、今回はPLブロックしか使ってないので問題なし。OKを押す。

最後にソフトウェアを書き込む。以下のようにRun AsでLaunch on Hardwareを選択する。

これでLEDが光るはず…だったのだが、エラーが発生。Microblazeが見つからない…だと? ちょっと予定外だが、次回はこのエラーのデバッグをしていきたい。(※2日目の日記で、赤文字の追記部分を設定した場合はエラーはでません)

 

参考文献

公式のドキュメントが以下にあるので、参照しながら進めていきます。
https://japan.xilinx.com/support/documentation-navigation/design-hubs/dh0020-microblaze-hub.html

今回はC言語のコーディングの際に、以下のサイトも参照させて頂きましたm(_ _)m
http://logiclover.hatenablog.jp/entry/2017/08/24/213952
https://www.rs-online.com/designspark/getting-started-with-xilinx-zynq-all-programmable-soc-jp

 

ZYBOで遊ぼう日記まとめ

ZYBO関係の記事は、大まかな内容ごとに以下にまとめています。
https://wakky.tech/zybo/

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください