FC2カウンター FPGAの部屋 Zynq-7000(ZC702)のチュートリアル2をやってみた4(実機でテストの準備)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Zynq-7000(ZC702)のチュートリアル2をやってみた4(実機でテストの準備)

Zynq-7000(ZC702)のチュートリアル2をやってみた3(PSの設定、インプリメント)”の続き。

今回は、”Zynq-7000 EPP Concepts, Tools, and Techniques A Hands-On Guide to Effective Embedded System Design UG873 (v14.1) May 31, 2012”の2番めのチュートリアルを実機でテストしてみた。

・File メニューからExport -> Export Hardware... を選択した。
ZC702_90_120707.png

・Export Hardware ダイアログが開く。Launch SDKにチェックを入れて、OKボタンをクリックした。
ZC702_91_120707.png

・Hardware 構成をExport してSDKが立ち上がった。
ZC702_92_120707.png

・FileメニューからNew -> Xilinx C Projectを選択した。

・New Projectダイアログが開いた。Hello Worldが選択されている。
ZC702_24_120622.png

・次のダイアログが開いた。Finishボタンをクリックした。
ZC702_25_120622.png

・Hello Worldプロジェクトがビルドされた。トータルでは0x12C10 (76.8KBytes) メモリを使用している。さすがに大きい。
ZC702_93_120707.png

次にhelloworld.c を書き換える。どのように修正するかはチュートリアルの47ページ、”Application Software”に書いてある。

main()関数 はソフトを実行するエントリポイントです。main() 関数は初期化とシステムの周辺デバイスの設定をします。EMIOインターフェースを使用して、そのようなAXI GPIOおよびPS GPIOなど、さまざまなユースケースを実行するために選択する手順を持っています。シリアル端末上の命令にで、異なるユースケースを選択することができます。

ソフトウェア実行の手順

1.AXI GPIOモジュールを初期化。

2.ボード上のSW5プッシュボタンに接続されている入力ピンとして、AXI GPIOピンの方向コントロールを設定する。ピン配置は、システムの作成時にユーザー制約ファイル(UCF)でLOC制約を使用して固定されている。

3.デバイスIDが0のAXI TIMERモジュールを初期化。

4.AXI timer ISRにコールバック関数を対応付ける。
この関数は、タイマ割り込みが発生するたびに呼び出される。コールバック関数はDS23 LEDをスイッチし、割り込みフラグをセットする。
main()関数は実行を停止する割り込みフラグを使用して、タイマー割り込みを待ち、再起動実行。

5.リセット間にタイマー設定値をタイマーにロード。

6.割り込みモードやAuto Reload mode などのタイマーオプションを設定。

7.PSセクションのGPIOを初期化

8.PSセクションGPIOのチャネル0、ピン番号10を設定する。これはMIOピンにマッピングされ、ボード上のLED"DS23"に接続された出力ピンだ。

9.PSセクションGPIOのチャネル2、ピン番号0を設定する。これはEMIOインターフェースを介してPLサイドに接続されたSW7プッシュポタンスイッチだ。

10.Snoop control unit Global Interrupt controllerを初期化。ID '91'割り込みの割り込みルーチンを登録。例外ハンドラを登録して、割り込み許可。

11. シリアル端末経由で選択されたAXI GPIO または PS GPIO ユースケースを元にシーケンスを実行。

ソフトウェアは、シリアル端末からの選択でプロシージャを実行する。
シリアル端末を経由しての使用例を選択した後は、端末上の指示に従ってボード上のプッシュボタンを押す必要がある。そうすると、'DS23'LEDが消灯、タイマーがスタートし、タイマー割り込みが来るまでウエイトする関数が呼ばれる。タイマー割り込みが起こったら'DS23'LEDを点灯して実行を再スタートする。

(英語に自信がないので、間違っていたらお知らせください)


書き換えたhelloworld.c はデザインファイル ug873_design_files.zip に入っていた。

・デザインファイル ug873_design_files.zip に入っていたhelloworld.c をSDKのhello_world_0 -> src のhelloworld.c と置き換えた。
ZC702_94_120707.png

・順番を間違ったが、Project メニューからClean... を選択した。

・Clean ダイアログが開く。OKボタンをクリックした。
ZC702_95_120707.png

・再コンパイルされた。

Zynq-7000(ZC702)のチュートリアル2をやってみた5(実機でテスト)”に続く。

  1. 2012年07月07日 05:55 |
  2. Zynq
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2191-d2ed7a03
この記事にトラックバックする(FC2ブログユーザー)