denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

PIC_colo_Updateが動いた

 着想を得てからそれが実現するまでの間に起こる諸々をつぶさにお伝えできれば良いのですが、大抵テンパっているのでそんな余裕は持てません。(^_^;)

 

 連携する複数のプログラムを更新する作業は難航しがちです。今回もそうでした。

 

 タイマー割り込みをポーリングで処理してLEDを点滅させることは出来たのですが、『割り込み禁止にしてUARTをポーリングで動かす』ことがなかなか上手く行きません。ようやく動いたと思ったら、レスポンスが何か変!orz

 

 PICkit3を使わずPIC_colo_Debuggerの機能も使えない状態でデバッグするのは大変でした。ハードウェア・リセットを掛けてPIC_colo_Debuggerに戻すという方法で、メモリーに蓄えたスナップ・ショットを読み取ってプログラムの動作を追いかけ、なんとかPIC_colo_UpdateとPIC_colo_Console間のコマンド送受が動きました。

 

 いよいよPIC_colo_Debuggerの書き換えです。0x1000番地以降の書き込みは出来るので、0x0000番地から書き込み可能にすれば良いと簡単に考えていました。ところが書き換えたPIC_colo_Debuggerが動いてくれません。orz

 

 PICkit3でプログラム・メモリを読み出すと、0x0000番地付近が正しく書き込まれていません。書き込み動作をモニタすると0x0000番地付近を最後に書き直しています。Hexファイルの末尾に書かれたコンフィグ・データを0x0000番地に上書きしていたのです。それが判るまでPICkit3を使って何度もPIC_colo_Debuggerを書き直す羽目になりました。

 

 そんなこんなで、何とかPIC_colo_Updateが動くようになりました。

パチパチパチ~

 

 修復手段を持っていないユーザにとってPIC_colo_Debuggerの書き換えは、大きなリスクを伴う作業です。出来るようになったとは言え、PIC_colo_Debuggerの頻繁なアップデートは控えるつもりです。