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


PICBASICコンパイラ

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

[第230回]



●PIC16F84(8)念のために再テスト

PIC16F84はすでにテスト済みですが前回PIC16F84Aのためにプログラムを一部書き換えましたので念のために再テストをしておきます。
最初に/PICRDコマンドでPIC16F84が書き込み済みであることを確認しました。
logfile piciolog\0310063247.txt open
*** pic i/o ***
picio-30 connected
>/picrd
400C[FF][3F][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]
>

まずは読み出しOKです。

続いて/ERASEコマンドを実行したあとでもう一度/PICRDコマンドを実行しました。
>/erase
400C[FF][3F][FB][3F]
>/picrd
400C[FF][3F][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]
>

/ERASEコマンドの実行時に読み出したデバイスIDとConfigの値はまだ消去する前の値です。
PIC16F84はデバイスIDは未定義のようです。
続いて実行した/PICRDコマンドで読み出したConfigの値は消去後の値です。
Configは消去されて3FFFになりました。
続いて読み出したユーザープログラムエリアとConfigは全て消去されて3FFFになっています。
消去もOKです。

続いてコピープロテクトのかかったプログラムを書き込んでそれを消去できるかどうかテストしてみます。
前回と同じテストになります。
コピープロテクトをかけたテストプログラム16F84TEST2.HEXをロードして/PICWRを実行しました。
>/hload 16f84test2.hex
loading 16f84test2.hex ...
i=167,binbfend=68
>/picwr
400C[FF][3F][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回]で紹介しています。

続いてベリファイを実行しました。
>/verify
inbfend=0
400C[FF][3F][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)(FF)(3F)(0B)(00)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
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)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
[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)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
[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[FF][3F][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になります。
PIC16F84Aのときと同様Configの一部ビットは読み出せています。

/ERASEを実行しました。
そのあと/PICRDを実行しました。
>/erase
400C[FF][3F][0B][00]
>/picrd
400C[FF][3F][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 Mon Mar 10 06:36:47 2025

プロテクトが解除されて同時にプログラムが全部消去されたことが確認できました。
プログラム一部変更後のPIC WRITERプログラムでもPIC16F84が正しくWRITE、READ、消去できることが確認できました。

PICBASICコンパイラ[第230回]
2025.3.10 upload

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