シミュレーション、デバッグ


【シミュレーション】

MPLABではシミュレーションを2つの方法で行うことが出来ます。
ひとつはソフトウェアシミュレータでパソコンのMPLAB上でソフトだけで行う方法で、
もうひとつは外付けのハードウェア(ICDとかICEなど)を接続して、ハードウェアと
ソフトウェアを協調させて行う方法です。通常エミュレーションと言います。

ここではソフトだけで行うシミュレーションの仕方を説明します。

【シミュレータの設定】

MPLABのシミュレータを使うためには、使うという設定をする必要があります。
これは簡単で、下図のようにMPLABのメニューから、
 Debugger → Select Tool → MPLAB SIM
と指定するだけです。




この指定をすることで、下図のように、MPLABのメニューのDebuggerの下に
沢山の選択項目が追加されます。
ここからプログラムの起動停止や走行制御が出来るようになります。
特にVer 6.30からは、Animate機能が追加されました。








【デバッグ】

シミュレータを使ってプログラムデバッグをする方法を説明します。
この新バージョンではこのデバッグの機能が大幅に強化されて使い易くなって
います。
全体としてVisual Basic風に変更されました。

(1) プログラムの起動と停止
  
  F6 : Processor Reset ハードリセットしたのと同じ状態にします。
  F9 : Run 現在地から実行開始
  F5 : 強制停止 HALT状態にします。
  F7 : ステップ実行 1命令ずつ実行しては状態を更新します。
  F8 : ステップオーバー サブルーチンCALLも一つの命令として実行し
       サブルーチンの中にはステップでは入りません。(新規追加機能)
  
 この走行状態から停止したときには、下図のように現在のプログラムカウンタ
の位置が緑矢印で表示されています。次に実行される命令を指しています。

(2) ブレークポイントの設定
 機能強化された項目のひとつで、ブレークポイントの指定が簡単に出来ます。
ブレークさせたい行の操作バーのところでダブルクリックするだけで、赤い丸の
Bマークが表示されブレークポイントが設定されます。
このBマークをダブルクリックすれば、ブレークポイントが解除となります。

もう一つの方法は、ブレークさせたい行で右クリックすると、下図のようなポップ
アップメニューが表示されます。
ここでSet Breakpointとするだけで、その行がブレークポイント行として設定
され、図のような赤いBマークが追加されます。ブレークポイントを削除するとき
にも同じようにして、ポップアップメニューから Remove Breakpointを選択する
だけです。






(3) 変数の値のチェック
 プログラムがブレークポイントなどで停止中にマウスカーソルを変数記述の
上に置くだけで、そのときのその変数の値が表示されます。これはかなり便利
に使えます。値だけでなく、アドレス値も表示するように設定ができます。
(この設定はEdit → Properties → Editor でShow Address in Mousoverにチェック)





(4) Watch Windowの設定
 変数やSFRレジスタの値のチェックは、Watch Windowに設定しておくことで
いつでも同じ状況で確認することが出来ます。
このWatch Windowの設定は簡単で、メニューから View → Watch とすると
下図のダイアログが開きますので、ここでAdd SFRかAdd Symbolの欄にある▼を
クリックすると表示される一覧から選択していずれかのAddボタンを押すだけです。
これで見たい変数やSFRをいくつでも指定できます。
さらにVer6.30からは、ソースファイルの変数を、ソースファイルからWatch Windowに、
コピー&ドラッグするだけで追加できるようになりました。




そしてこのWatch Windowに指定された変数やSFRの値はブレークポイント
などで停止した時に、下図のように前回停止時から変更になったものは値が
赤字で表示されます。
従って、ブレークポイントで停止させ、その後F7キーでステップ実行させながら
変数の変わる様子を逐次確認しながらデバッグをすることが出来ます。





このようにしてデバッグの基本はブレークポイントを設定してポイント毎に
停止させてはステップ実行させて、変数や走行状態を確認することで
行うことになります。

【その他のデバッグツール】

上記の他にデバッグ用の道具としてはいくつかあります。前バージョンと同じ
レベルのものが多いのですが、表示指定はViewからと統一されましたので
判りやすくなりました。

(1) Hardware Stack
 下図のように8レベルのスタックメモリの内容の表示と現在の位置を
 表示します。







(2) File Register、Program Memory、EEPROM、Special Function Register
  これらはいずれもメモリ内容を表示するもので、以前と大幅には変わって
 いません。
  強化された点はいずれも表示窓から直接値の変更ができることです。
 プログラムメモリの内容も変更できますから、一時的に命令を変更して
 シミュレーションすることができます。
 また当然データも変更できます。


(3) Stimulusの設定
 この設定はかなり変更されていて設定の仕方も変更になています。
 Stimulusは メニューからDebugger → Stimulus とすると下図のように
かなり大きなダイアログが表示されます。ここで Pin Stimulusタグを指定
すれば、入出力ピンのシミュレーション設定の画面となります。
ただ、設定する内容は以前のバージョンと変わっていませんので使い方も
ほぼ同じです。












       目次ページへ