GPIOプログラム

はじめに
 VivadoでMaicroblaze(導入編)で作ったデザインにGPIO制御用のプログラムを追加してみます.

GPIOのサンプルプログラムで動作確認して、その後にプログラムを改造してディップスイッチの値を読み込んでLEDに表示してみます.


1.SDKの起動
 Vivadoを起動してVivadodでMaicroblaze(導入編)で作った設計プロジェクトarty_pj_01を開きます.
File->"Lunch SDK"でSDKが起動する.

2.ワークスペースの指定
 OKをクリックすると"Local Project"にエキスポートされたデータを元にSDKが起動する.

3.GPIOのAPIドキュメントの表示
 起動したSDKでProject Explorerのprog_01_bspにあるsystem.mssをダブルクリックして開く.
system.mssのgpioの横のDocumentationをクリックするとブラウザ上にGPIOのAPIドキュメントが表示される.

4.GPIOのAPI
 GPIOのAPIドキュメントの左側のgpio_v4_3->APIs->Allをクリックすると利用できる関数、マクロが表示される.

5.サンプルプログラムのインポート
 SDKでsystem.mssのgpioの横のImport Examplesをクリックするとサンプルプログラムのインポートが開始する.

6.サンプルプログラムの選択
 xgpio_exampleにチェックいれてOKをクリック

7.サンプルプログラムの内容
 xgpio_example.cにGPIOのAPIを利用してGPIOに接続されたLEDを点滅させるプログラムが書かれている.

8.ビルドの実行
 Project Explorerのprog_01_bsp_xgpio_example_1の上でマウス右ボタンを押してBuild Projectを選択するとビルドが実行される.

9.Bitファイルの書き込みツール起動
 ArtyをUSBケーブルでPCと接続しtて、SDKで"Xilinx Tools"->"Program FPGA"を選択

10.Bitファイル書き込み
 Bitファイルがトップ階層名(diagramデザイン名_wrapper).bitになっていることを確認して
Programをクリックする.ArtyのFPGAへ書き込みが実行される.

11.プログラムの実行
 "Project Explorer"->"prog_01_bsp_xgpio_example_1"の上でマウスの右ボタンを押して
"Run As"->"1 Launch on Hardware(System Debugger)"を選択する
プログラムの実行ファイルがArtyにダウンロードされて、実行される.

12.プログラムの実行結果
LED4が点滅する

13.プログラムの改造①
 GPIOでディップスイッチの値を読み込んでLEDに表示するようにプログラムを改造します.
ハードウェアの設計でデップスイッチを接続したのはGPIO2なので
#define SW_CHANNEL 2
とマクロ定義する

14.プログラムの改造②
 main関数なにのwhile(1)のループ内部をコメントアウトする
GPIOのAPIドキュメントを参考してGPIO2の値を読み込んでGPIO1へ書き込む処理を追加

ファイルをセーブしてビルドを実行する

15.改造プログラムの実行結果

prog_01_bsp_xgpio_example_1を実行する.

ディップスイッチの設定に応じてLEDが点灯すれ
正常動作です.