FC2カウンター FPGAの部屋 AXI4 Master IP にAXI4 Lite Slave を追加7(SDKリモートデバッグ)
FC2ブログ

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

FPGAの部屋

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

AXI4 Master IP にAXI4 Lite Slave を追加7(SDKリモートデバッグ)

このブログ記事のトップは、”AXI4 Master IP にAXI4 Lite Slave を追加1(インプリメント)”
前の記事は、”AXI4 Master IP にAXI4 Lite Slave を追加6(Cテストプログラム)”

前回は、カメラ・インターフェイスIP とビットマップ・ディスプレイ・コントローラIP のAXI4 Lite Slave インターフェースに実装したレジスタのRead/Write を実行をテストするCのプログラムを作成した。
今回は、そのソフトウェアをVirtualBox 上に実装したUbuntu12.10 のSDKからZedBoardのディレクトリへダウンロードして、リモートデバッグを行う。

・SDKのAXI_Lite_test_linux プロジェクトを右クリックして、右クリックメニューからDebug As -> Debug Configurations... を選択した。
AXI4M_and_Lite_Slave_55_130415.png

・Debug Configurations ダイアログが開く。Remote ARM Linux Application の右クリックメニューからNew を選択した。
AXI4M_and_Lite_Slave_56_130415.png

・Properties ダイアログが開いて、AXI_Lite_test_linux Debug が出来た。Connection をすでに登録してあった192.168.3.130 に変更した。
AXI4M_and_Lite_Slave_57_130415.png

・Remote Absolute File Path for C/C++ Application のBrowse... ボタンをクリックした。
AXI4M_and_Lite_Slave_58_130415.png

・Select Remote C/CC+ Application File ダイアログが開く。ここで、Remote (ZedBoard) のディレクトリを指定して、デバックするファイルを作成する。/Apps ディレクトリを展開して、右クリックメニューからNew -> File を選択した。
AXI4M_and_Lite_Slave_59_130415.png

・New File ダイアログでNew file name にAXI_Lite_test_linux.elf と入力して、Finish ボタンをクリックした。
AXI4M_and_Lite_Slave_60_130415.png

・Select Remote C/CC+ Application File ダイアログの /Apps ディレクトリに、AXI_Lite_test_linux.elf が入った。OKボタンをクリックした。
AXI4M_and_Lite_Slave_61_130415.png

・Properties ダイアログに戻った。Remote Absolute File Path for C/C++ Application の項目には、/Apps/AXI_Lite_test_linux.elf が入力されている。Apply ボタンをクリックして、現在の設定を反映させた。
AXI4M_and_Lite_Slave_62_130415.png

・Debug ボタンをクリックした。
AXI4M_and_Lite_Slave_63_130415.png

・Debug persective に切り替えるというダイアログが表示された。Yes ボタンをクリックした。
AXI4M_and_Lite_Slave_64_130415.png

・SDKがデバックモードになって、AXI_lite_test_linux.c の main() の最初の行が表示された。2つのIPのレジスタを読み出し、書き込み、読み出しをしているが、それぞれの先頭部分にブレークポイントを設定した。
AXI4M_and_Lite_Slave_65_130415.png

・Resume アイコンをクリックして、ブレークポイントまでのコードを実行した。これで2つのIPのレジスタを読んでいることになるが、mt9d111_inf_reg_d, bm_disp_cnt_reg_d は、0x1A000000 のはずなのに、0と表示されていた。おかしい?
AXI4M_and_Lite_Slave_66_130415.png

・もう一度、Resume アイコンをクリックして、ブレークポイントまでのコードを実行すると、ブレークポイントまで行かないで止まってしまった。2つのIPのレジスタのWrite でおかしくなるようだ。Linux のターミナルをいじっても応答が無い。Linuxも停止してしまっていた。

AXI Lite Slave のプロトコルがおかしいかもしれないので、ChipScoep を入れて確かめてみることにした。

次のブログ記事は、”AXI4 Master IP にAXI4 Lite Slave を追加8(ChipScopeデバッグ)
  1. 2013年04月16日 04:47 |
  2. 複数のAXI4 バスを持つIPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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