今度は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_DEG_noUART_hw_platform と表示されていた。
次にDebugを行う。最初に、Xilinx ToolsメニューからProgram FPGAを選択して、Spartan-3A Starter Kitをコンフィグして置かないとだめみみたいだ。LCDに文字が表示されている。

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

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

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

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

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

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

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

デバック機能はうまく行ったようだが、元の表示に戻すのはどうやれば良いだろうか?
いろいろ試してみよう。
(追加)
Windows メニューからOpen Perspective -> C/C++を選択すると、元のプロジェクトの表示に戻りました。

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