MPLAB IDEによるデバッグ

MPLAB SIM

MPLAB IDE上で動作するデバッガです。シミュレータでI/Oを操作することにより擬似的に入出力を与え、それによる挙動を調べることもできます。

使用するには、メニューの【Debugger → MPLAB SIM】を選択します。
MPLAB IDEのメニューからMPLAB SIMを選択

※ リストに[MPLAB SIM]が表示されない場合には、MPLAB IDEにコンポーネントを追加します。

MPLAB ICD2

インサーキットデバッガ。実際にマイコンを動かしながらデバッグできます。
使い方は簡単で、DebuggerとしてMPLAB ICD2を選択した後はMPLAB SIMと同様に扱えます。
>> MPLAB ICD2の使用方法

デバッグ情報

デバッグを行うためには、デバッグ情報が作成されている必要があります。これが作成されていないと、ブレークポイントを設定したときに次のようなエラーが表示されます。

One or more breakpoints could not be resolved.
Select Breakpoints from the Debugger menu for details.

デバッグ情報を作成するには、プロジェクトウィンドウでデバッグを行うファイルのコンテキストメニューから[Build Options]を選択します。そして[Generate debugging information]の項目にチェックを入れます。

これはコンパイラオプションで「-g」を指定するのと同義です。

Build Options For FileのGenerate debugging information
ファイルのビルドオプション

ブレークポイント

Breakpoint

実行状態のモニタ

メニューの【View】から、以下で説明する各種のウィンドウを表示できます。
MPLAB Viewメニュー

Watch window
Watch

SFR window
Special Function Registers

File Registers window
File Registers

Program Memory window
Program Memory

実行時間の測定

Stopwatchによって、実行時間を測定することができます。
メニューの【Debugger → StopWatch】から表示します。

上段のInstruction Cyclesが命令サイクル、下段のTimeが実行時間になります。

Stopwatchウィンドウ

なお実行時間は実行周波数によって決まりますので、先にそれを設定しておく必要があります。これはメニューの【Debugger → Settings】にあります。

実行周波数の設定

UARTのシミュレート

メニューの【Debugger → Settings】からUart1 IOタブを選択し、[Enable Uart1 IO]にチェックを入れます。
Simulator SettingsウィンドウのUart1 IOタブ

出力先の指定

デバッガでMPLAB SIMを選択したときにUARTの出力先が指定されていないと、Outputウィンドウに次のようなメッセージが表示されます。

UART-W0005: Uart is enabled but no output destination has been assigned. (File or Output Window)

Simulator SettingsのUart1 IOの設定画面において、Outputの項目でWindowかFileを指定します。
Uart1 IOの出力先の設定

出力先にWindowが指定されるとOutputウィンドウにSIM Uart1タブが追加され、UARTからの出力がここに表示されます。
OutputウィンドウのSIM Uart1タブ

バッファオーバーランの通知

バッファがフルの状態で送信を試みると、Outputウィンドウでそれが通知されます。

UART-W0001: Write attempted to a Full FIFO buffer, data lost