2009/05/01

PICKIT2でPIC16F887のICD(インサーキットデバッグ)

PICKIT2にはICD(インサーキットデバッグ)機能が備わっていて、MPLAB IDEと組み合わせてシステムの外側からプログラムのデバッグ(ブレークポイントを張ったり、メモリ内容をダンプしたり)ができます。
ただ、そのためには専用のコネクタで接続してやらないといけないと言ったビミョーな制約があって(コネクタつきで売られているのがPICKIT2のDebugExpress)、ちょっと縁遠いかなあと思ってました。そもそも、PIC程度でデバッガ要らないし、というのもありましたし。

ところが最近、PIC16F887は外付け回路なしでICDできると言うのを耳にしたので、ちょっと試して見たらあっさりとデバッグできました。SourceBoostコンパイラですが、ちゃんとソースコードデバッグも出来ます。
  • 前準備として、PICKit2をターゲットに接続しておきます。
  • MPLAB IDEから、Debugger→Select Tool→PICKit2を選択するとデバッガが起動して、自動的にPICKit2とその先のターゲットPICに接続します。
  • デバッガでよくありがちなラジカセボタン(「停止」、「実行」、「早送り」)といったボタンが出て来ますので、それでプログラムを操作します。

  • ブレークポイントを張って、変数をWatchウィンドウで見ているところです(WatchウィンドウはViweメニューの下のほうにあって、わかり辛いですが)。おかげで、ソースブーストライブラリのバグっぽい挙動を一つ解明することができました。

注意点としては、
  1. 電源をターゲットから取る場合には、Debugger→Settingsの「Use target power always」にチェックを入れます。
  2. ISP用のピン(16F887の場合、RB6とRB7)は、デバッガがアクセスできるように入力に設定しておく必要があります。
  3. たまにうまくターゲットに接続することが出来ないことがあって、そのときは Debugger→Reset→Processor Reset (F6)を選択するとPICにリセットが掛かって直ります。

0 件のコメント: