PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第229回]
●PIC16F84A(6)/ERASE
今回はうっかりしてテストをするのを忘れていたバルクイレーズ(全消去)をテストしました。
最初に/PICRDコマンドでPIC16F84Aが書き込み済みであることを確認しました。
logfile piciolog\0308180634.txt open *** pic i/o *** picio-30 connected >/picrd 400C[60][05][FB][3F] type=04,uadrs=00 [08] 0000[10][05][28][FF][3F][FF][3F][FF][3F][FF][3F][83][16][85][01][86][01] 0010[10][83][12][21][08][85][00][10][20][A2][0B][0B][28][A1][03][09][28] 0020[10][3E][30][A0][00][86][06][A0][0B][12][28][08][00][FF][3F][FF][3F] 0030[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07E0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07F0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] [01] type=04,uadrs=01 [08] 400E[FB][3F] [10] > |
続いて/ERASEコマンドを実行したあとでもう一度/PICRDコマンドを実行しました。
>/erase 400C[60][05][FB][3F] >/picrd 400C[60][05][FF][3F] type=04,uadrs=00 [08] 0000[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0010[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0020[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0030[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07E0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07F0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] [01] type=04,uadrs=01 [08] 400E[FF][3F] [10] >/exit リモート接続を終了しました logfile closed at Sat Mar 08 18:08:40 2025 |
/ERASEコマンドの実行時に読み出したデバイスIDとConfigの値はまだ消去する前の値です。
続いて実行した/PICRDコマンドで読み出したデバイスIDとConfigの値は消去後の値です。
デバイスIDは変わっていませんがConfigは消去されて3FFFになりました。
続いて読み出したユーザープログラムエリアとConfigは全て消去されて3FFFになっています。
消去もOKです。
これにて一件落着。
ではありませんでした。
まだコピープロテクトをかけたPIC16F84Aでも消去できるかどうかテストしてみなければいけませんでした。
最後のテストです。
コピープロテクトをかけたテストプログラム16F84TEST2.HEXをロードして/PICWRを実行しました。
logfile piciolog\0309204454.txt open *** pic i/o *** picio-30 connected >/hload 16f84test2.hex loading 16f84test2.hex ... i=167,binbfend=68 >/picwr 400C[60][05][FF][3F] i=6,b=2,[04]0000 [05][04][02][00][00][00][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [01] i=12,b=2,[00]0000 [05][00][02][00][00][05][28][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [01] i=22,b=6,[00]000a [05][00][06][00][0A][83][16][85][01][86][01][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [01] i=42,b=16,[00]0010 [05][00][10][00][10][83][12][21][08][85][00][10][20][A2][0B][0B][28][A1][03][09][28] [01] i=58,b=12,[00]0020 [05][00][0C][00][20][3E][30][A0][00][86][06][A0][0B][12][28][08][00][FF][FF][FF][FF] [01] i=64,b=2,[00]400e [05][00][02][40][0E][0B][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [03] picwrend > |
16F84TEST2.HEXは[第222回]で紹介しています。
PIC16F84のために作ったプログラムですが16F84Aでも変わるところはありません。
そのまま使えます。
続いてベリファイを実行しました。
>/verify inbfend=0 400C[60][05][0B][00] i=6,b=2,[04]0000 [06][04][02][00][00][00][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] (01)(60)(05)(0B)(00)(94)(C4)(0E)(61)(08)(EC)(A0)(88)(18)(40)(42)(A4) i=12,b=2,[00]0000 [06][00][02][00][00][05][28][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] (02)(00)(00)(0B)(00)(94)(C4)(0E)(61)(08)(EC)(A0)(88)(18)(40)(42)(A4) [x][x]error! i=22,b=6,[00]000a [06][00][06][00][0A][83][16][85][01][86][01][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] (06)(00)(00)(00)(00)(00)(00)(0E)(61)(08)(EC)(A0)(88)(18)(40)(42)(A4) [x][x][x][x][x][x]error! i=42,b=16,[00]0010 [06][00][10][00][10][83][12][21][08][85][00][10][20][A2][0B][0B][28][A1][03][09][28] (10)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00) [x][x][x][x][x][o][x][x][x][x][x][x][x][x][x][x]error! i=58,b=12,[00]0020 [06][00][0C][00][20][3E][30][A0][00][86][06][A0][0B][12][28][08][00][FF][FF][FF][FF] (0C)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00)(00) [x][x][x][o][x][x][x][x][x][x][x][o]error! i=64,b=2,[00]400e [06][00][02][40][0E][0B][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] (10)(0B)(00)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F) [o][o] vfend error=33 > |
コピープロテクトがかかっていますからプログラムは読み出せません。
全部エラーになってしまいます。
念のため/PICRDコマンドを実行しました。
>/picrd 400C[60][05][0B][00] type=04,uadrs=00 [08] 0000[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 0010[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 0020[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 0030[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 0040[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 0050[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 07D0[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 07E0[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] 07F0[10][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00] [01] type=04,uadrs=01 [08] 400E[0B][00] [10] > |
ユーザープログラムエリアは読み出しても全部00になります。
あれ?
Configの一部ビットは読み出せていますね。
ま。
この程度は読み出せても問題はありませんでしょう。
ここまでは準備作業です。
このようにコピープロテクトがかかったPIC16F84Aのコピープロテクトを解除してかつ全データが消去できればバルクイレーズ成功です。
/ERASEを実行しました。
そのあと/PICRDを実行しました。
>/erase 400C[60][05][0B][00] >/picrd 400C[60][05][FF][3F] type=04,uadrs=00 [08] 0000[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0010[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0020[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0030[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07E0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07F0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] [01] type=04,uadrs=01 [08] 400E[FF][3F] [10] >/exit リモート接続を終了しました logfile closed at Sun Mar 09 20:47:20 2025 |
プロテクトが解除されて同時にプログラムが全部消去されたことが確認できました。
今度こそ本当に。
これにて一件落着。
です。
PICBASICコンパイラ[第229回]
2025.3.9 upload
前へ
次へ
ホームページトップへ戻る