FC2カウンター FPGAの部屋 The Simple MicroBlaze Microcontroller 5(デバック機能)
FC2ブログ

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

FPGAの部屋

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

The Simple MicroBlaze Microcontroller 5(デバック機能)

今度はSMMのデバック機能を使ってみることにした。
The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)のSMMはUARTなし、Debugなしだったが、今回は、SMM_S3\SMM_DBG_noUARTの下のhwフォルダのsmm.bmm, smm.ngcをコピーしてISEで再度インプリメントを行った。
次に、MM_S3\SMM_DBG_noUARTの下のswフォルダのsmm.xmlファイルをコピーして、同様にEmpty Application を作成した。
SMM_23_101128.png

今度は、SMM_DEG_noUART_hw_platform と表示されていた。

次にDebugを行う。最初に、Xilinx ToolsメニューからProgram FPGAを選択して、Spartan-3A Starter Kitをコンフィグして置かないとだめみみたいだ。LCDに文字が表示されている。
SMM_23_101127.jpg

RunメニューのDebug Configurationを選択する。Debug Configurations ダイアログが起動する。Xilinx C/C++ ELFを展開して、empty_application_0 Debugを選択する。Debugボタンをクリックする。
SMM_24_101128.png

Error opening JTAG UARTと表示されて、心配になったが、Confirm Perspective Switchダイアログが出てきたので、Yesボタンをクリックした。
SMM_25_101128.png

Debug用のウインドウになった。main関数の最初のmicroblaze_register_handlerがポイントされている。button_push関数は値が入っていないので、Xになっている。
SMM_26_101128.png

lcd_init();の左をクリックして、ブレークポイントを設定し、RunメニューからResumeを選んだら、ブレークポイントまで実行された。
SMM_27_101128.png

その後、Step IntoやStep Overも試したが、意図どおり実行された。
main関数の中のbutton_push変数が初期化された後にブレークポイントを設定して、実行したら、button_push変数に値が表示された。
SMM_28_101128.png

South Pushbuttonをおしながら、Step Intoすると、button_push変数が-128になった。
SMM_29_101128.png

Step Overしていく。lcd_clear();を実行すると、LCDがクリアされた。
lcd_print(1, "Thank You!");を実行すると、Thank You!がLCDに表示された。
SMM_24_101127.jpg

デバック機能はうまく行ったようだが、元の表示に戻すのはどうやれば良いだろうか?
いろいろ試してみよう。

(追加)
Windows メニューからOpen Perspective -> C/C++を選択すると、元のプロジェクトの表示に戻りました。
SMM_30_101128.png

(2010/12/20追加)
Debug を終了する方法。Debug モードからC/C++モードに戻るのに、Debug を終了する必要がある。それは、Debug
ウインドウのTerminateアイコンをクリックする。
SMM_59_101220.png
  1. 2010年11月28日 05:47 |
  2. SMM
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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