製作中のNゲージの電機用コントローラ。前回製作した主幹制御器のノッチの指示板に続いて、主幹制御器上にあるその他3種類の指示板を作成。
MPLAB X IDEで、はまる・・(3)
MPLAB 8からMPLAB X IDEに移行し、ついでに今後はC言語じゃ~ということで・・ドツボにはまっている状態。
今回は、いよいよ解決編。
最終的にわかってきたのは、「c言語でビルドした.hexファイルをPICKit3で書き込んだ際、ベリファイで失敗する」ということ。
PICKit3が言うには、命令アドレスには5番地に飛ぶ命令が欲しいらしい。
ならば、リンカのオプションを調べてメインルーチンを5番地に配置すればいいのか?
などと、考え始めていたが、ふと思った。
ベリファイで失敗するなら、ベリファイしなけりゃいいじゃん
PICKit3 Programmerでベリファイのオプションを外して書き込んだら、書き込みは正常に終わった。
その後、PICから読みだして1画面に表示された部分を、.hexを読み込んだ時点のハードコピーと見比べたら「だいたい同じような感じ」。ということで目視によるベリファイはOK!?
まだ動作は確認していないけど、これでMPLAB X IDEとc言語に移行してもいいのかな。
大量に同じPICを作るんじゃなく、1~2個作ってその動作をみて、100%動作をチェックするんだから、ベリファイしなくても失敗してりゃ動かないのですぐわかるだろう。
MPLAB X IDEのProject Propertiesの画面で、PICKit3の設定に関する項目を見てベリファイの設定がどうなるのかみてみた。
ベリファイの省略の設定はできないみたい。
PICKit3はベリファイに失敗したら、何かほかのものを書き込んでるみたいだから、やはりベリファイは省略して正常終了させる必要がある。
(イレースしたあとに確認しても何か入っている。なに書いてんだろう。)
やはり、今後も書き込みはPICKit3 ProgrammerやIPEのお世話になる必要があるみたい。
さて、
書き込んだものはちゃんと動くんでしょうか。
・・おそらく、最終的にはMPLAB X IDEがバージョンアップすることで解決できる・・ハズ。
つまり、ドツボの原因は・・MPLAB X IDEのベリファイのバグじゃねぇのかい!?