AVR Dragon を使い始めましたが、忘れてしまいそうなことをメモ
できること
- ブレークポイントでプログラムを止める。(デバッグ実行時にはランモードとストップモードがある。)
- ステップ実行
- メモリ、レジスタ、プログラムカウンタ等プロセッサ内部の状態をモニタ。(ストップモード時のみ)
- プログラマとしても使える。ただしデバッグ中はプログラマ機能は使えない。
- ワッチポイントの設定ができるかどうかは調査中。できないような気がする。
利用のためのメモ
- チュートリアルはAtmel公式のドキュメントが結局一番わかりやすかった
http://www.atmel.no/webdoc/avrdragon/index.html - Dragon とターゲットを繋ぐ方法は複数サポートされているが、ATTiny* と繋ぐには debugWire を使う。debugWire は ISP プログラミングのための6ピンコネクタがそのまま使えるので便利。
- Dragon はOCD (On Chip Debugging) デバイスとしてもプログラマとしても使えるが、両方同時には使えない。OCD 時にはターゲットプロセッサのヒューズビットも変更する必要があるので、開発環境全体でモード変更する。AtmelStudio の場合デバッグ実行を開始するとソフトが面倒を見てくれる。デバッグモードから通常モードに戻るには debug -> disable debugWire and close ただしデバッグ実行中でないとこれはできない。
- Dragon と Arduino が同じ USB ハブに繋がっていると干渉する。具体的には、Dragon を使っていると Arduino のシリアルポートインタフェースが死んでしまう。お互い別の USB ポートに繋ぐこと。