PIC_colo_Update2を作った
PIC_colo_Updateは割り込み禁止の状態でPIC_coloデバッガ相当の機能を果たすユーザ・プログラムです。PIC_coloデバッガを書き換えるために開発しました。
PIC_coloデバッガの機能追加は、PIC_colo_Updateを使って次の手順で行って来ました。
(1)PIC_coloデバッガのコードを書き換える。
(2)PIC_colo_Updateを使って、新しいPIC_coloデバッガを書き込む。
(3)再起動して、新しいPIC_coloデバッガを起動する。
(4)追加機能の動作を確かめる。
(5)不具合があれば(1)に戻る。
こうして新たに組み込んだ機能がいくつかあって、現状のPIC_colo_UpdateはPIC_coloデバッガ相当の機能を果たすプログラムとは言えなくなっていました。そんな中、新たな機能を追加しようとして何度も上の手順を反復している内に、PIC_coloデバッガを壊して(不具合を抱えたプログラムを書き込んで)しまいました。orz
PIC_coloデバッガが動かないと、PIC_colo_Updateを使って書き換えることも出来ないのでお手上げです。泣く泣くPICkitを使ってPIC_coloデバッガを書き換えました。
今の方法(PIC_colo_Updateを使って何度もPIC_coloデバッガを書き換える)は、手間も掛かりリスクも高いので見直しが必要です。
やっぱり、PICkitで開発することになるのでしょうか?
う~ん(<==悩んでいる)
う~ん(<==PIC_colo単独で開発したい)
う~ん(<==まだ悩んでいる)
ん! (<==何か思い付いた?)
あらためて現状のPIC_coloデバッガ相当の機能を備えたPIC_colo_Update2を作ります。このPIC_colo_Update2が新しいPIC_coloデバッガの開発環境として打って付けだと気付きました。
(1)PIC_coloデバッガ相当の機能を備えている。
(2)簡単にリロード出来る。
(3)スナップ・ダンプをとって、動作を確認できる。
(4)PIC_colo_Update2で得た成果をPIC_coloデバッガに簡単に反映出来る。
(<==コードの差が小さい)
早速PIC_coloデバッガのコードをコピーして、PIC_colo_Update2を作りました。
改修箇所は・・・
(1)割り込み禁止にする。
(2)メイン・ループ内のポーリング処理でUART割り込みを扱う。
(3)リンカの設定をユーザ・プログラムと同じ条件にする。
これでO.K.だと思ったら、BREAK操作やSTOP操作でUARTの通信異常になりました。
二つ手順が抜けていました。
(4)break_loop内も同様にUART割り込みのポーリング処理を追加する。(5)Stop処理でPIC_coloデバッガに戻る所で割り込みを許可する。
ふ~。漸く新しいPIC_colo_Update2が動きました。
今後の機能追加は、先ずPIC_colo_Update2で行い、その成果をPIC_coloデバッガに反映します。そうすると、PIC_colo_Update2はPIC_coloデバッガ相当の機能を常に備えていることになるのです。
目出度し、目出度し。