シミュレーションしてみよう!
プログラムがビルド出来たからといって、いきなり出来上がったソフトを実機に焼いて動作させるのは危険! ・・・なんでか?学校で電気回路や電子回路を勉強してきた人からすれば、物凄く常識的なことではあるが、そういう勉強をせずに文系や芸術系など他の勉強をしてソフト業界に入ってきた者も多くいます(私も建築業界からやってきた!)。
マイコン上で動くアプリケーションなので、ソフトの動作が正しいか確認しないと必要で無いところに電気を出力してしまい、回路を壊してしまう可能性がある。これが客先であるなら、数少ない開発用ボードを破壊してしまうので、その後の開発工程が遅れてしまうことになります。通常開発の現場では、このようなボードは数名でシェアしながら開発を行うので、1人の間違いで多くの仲間に迷惑をかけてしまう危険性があります。開発用ボードが壊れるだけならまだいいかもしれません。ひょっとしたら感電や火が出て怪我する人が出るかも知れません。
※とは言いますが、私はOS上で動作するアプリケーションの開発が主だったので、このような経験はありません。しかし近くでそのような惨状を見たことがあります。
なので、デバック環境があるなら(あるはずなのですが・・・)、必ずデバックをして動作を確認後、実機に焼き付ける習慣を付けましょう!
・・・ということで、次はシミュレータを動かします。
デバックをする前に、次の3つのWindowを開いておいて下さい。
・File Registers :マイコン内のファイルレジスタの内容を表示するものです。
・Special Function Registers :マイコン内のファイルレジスタ中の汎用レジスタを除いた部分の内容を表示するものです。
・Program Memory :今、プログラムが何処を実施しているのか見れるようです。一番左側の列の「Line」が、プログラム番号(プログラムカウンター)を示すようです。上のFile Register画面のPCLと連動しています(Lineが2になると、PCLも2になります)。
デバックツールの設定をします。
トップメニュー[Debugger]-[Select Tool]-[3 MPLAB SIM]を選択します。
そうすると、トップメニューの左側に、以下図の赤で囲ったアイコンが出てきます。
それでは、シミュレーションを実行します。デバックアイコンの左図(赤で囲ったところ)をクリックして下さい。
そうすると、ソースコードの左側に緑の矢印が出てきます。
今、wレジスタに”1″を代入するところで止まっています。
「Special Function Registers」Window(赤で囲ったところ)を見て下さい。wレジスタにはまだ値を入れていないので、値の「Hex」欄には”0x00″が入っています。
※プログラムカウンターの下位8ビット(:PCL)は、”0x00″を示していますね。まだ何の命令も実行していないことを示しています。
「Program Memory」Window(青で囲ったところ)を見て下さい。Lineが、”1″のところで止まっています。これからこのラインの命令を実行することを示しています。