2024.12.2
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第169回]



●/VERIFYの問題表示(3)

最初はありえない超常現象のように見えたのですけれど。
苦闘苦悶しながら突き詰めて追及していったところ、やっぱり正体見たり枯尾花でありました。
下はやっと原因がほほ特定されたときのログです。
logfile piciolog\1201160307.txt open
*** pic i/o ***
picio-30 connected
>/hload asmtest2.hex
loading asmtest2.hex ...
i=217,binbfend=88
>/verify
inbfend=01
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/verify
inbfend=01
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/exit

リモート接続を終了しました
logfile closed at Sun Dec 01 16:05:02 2024

毎度書いていることですが、当記事は私の備忘録を兼ねております。
読者の皆様から見ると、なんだかよくわからんぞう、ということなども書いております。
全くコメント無しですと秘密のノートのようになってしまいますから、できるだけ説明を加えるつもりで書いておりますが、どうしても説明不足で分かりづらいところもあるかと思います。
そういうところは適当に読み飛ばしてください。
プログラムの不備、まあぶっちゃけ言ってしまえばバグですけれど、そこの問題部分を修正しましたので、前回おかしかった表示は正常表示になりました。
最初のエラー表示は前回まではアドレス0020のところに表示されていたのですが、今回は本来表示されるべきアドレス0000のところに表示されています。
これでいいのですが、実はここでのプログラム修正はいわば対症療法です。
大元はまだ退治できておりません。
デバッグのためにプログラムに一部追加をしてinbfendの値を表示させています。
inbfendはUSB受信バッファのバイト数です。
/VERIFYの実行直後に受信バッファに1バイトのデータがあります。
本来はこの時点ではinbfend=0であるべきです。
こいつがそもそもの犯人だったのでした。

PIC WRITER回路を制御しているPIC18F13K50を一旦USBケーブルから切り離して強制リセットしたあと最接続したあと実行したログです。
logfile piciolog\1201161704.txt open
*** pic i/o ***
picio-30 connected
>/hload asmtest2.hex
loading asmtest2.hex ...
i=217,binbfend=88
>/verify
inbfend=0
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/verify
inbfend=1
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/exit

リモート接続を終了しました
logfile closed at Sun Dec 01 16:18:14 2024

リセット直後に実行した/VERIFYではinbfend=0になっています。
しかし2回目からの/VERIFYではinbfend=1になってしまいます。
もう間違いありません。
/VERIFY(/PICWRも同じ)の実行終了時に最後にPIC18F13K50からUSB経由で送出されるデータをWindows側のプログラム(CPPプログラム)が受けることなく終了してしまっていたのが問題の原因でした。

その大元のバグを退治しました。
logfile piciolog\1201163421.txt open
*** pic i/o ***
picio-30 connected
>/hload asmtest2.hex
loading asmtest2.hex ...
i=217,binbfend=88
>/verify
inbfend=0
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/verify
inbfend=0
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/verify
inbfend=0
startcode=01
i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[0f]*verify error! 0,10-00
i=34,b=16,[00]0020[0f]*verify error!20,55-50
i=54,b=16,[00]0030[0f]*verify error!31,5e-4e
i=60,b=2,[04]0000[01]*i=68,b=4,[00]0000[01]*i=74,b=2,[00]0005[01]*i=84,b=6,[00]0008[0f]*verify error! 8,0f-03
vfend
>/exit

リモート接続を終了しました
logfile closed at Sun Dec 01 16:35:26 2024

やっと。
一件落着です。
全く思ってもみないところにバグが潜んでいるものです。
バグがみつかってよかった。
なにより悪霊のしわざでなくてほっとしました。
何日かぶりに心が平穏になりました。

PICBASICコンパイラ[第169回]
2024.12.2 upload

前へ
次へ
ホームページトップへ戻る