PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第202回]
●PIC16F627(3)CONFIGについて
前回からの続きです。
HPの記事にはタイムラグがあります。
ずっと時間に追われる毎日を送っています。
その日におきた問題点とか気がついたことや解決できたことなどはできるだけ早い時点でノートにメモするようにしています。
問題が解決できなかったりして悩んでいる時やご注文の納期が迫って目がつりあがっていたりするととてもHPの更新どころではなくなってしまいます。
結果としてHPには後日落ち着いてから過去の内容を整理しながらあらためて検証しつつ書くことになります。
前回はPIC16F627の書き込みプログラムに問題があってCONFIGが正しく書き込めていませんと書きました。
それは過去の話です。
今はその点についてはほぼクリアしています。
前回も書きましたがPICのCONFIGアドレスには思い違いがありました。
そのことについては[第197回]に書いています。
下はPIC16F627/628のPROGRAM MEMORY MAPです。
[出典]Microchip Technology Inc.PIC16F62X Flash Memory Programming Specification
CONFIGアドレスは2007になっています。
このメモリマップはWORD単位の表記ですからBYTE単位のアドレスに直すと400Eになります。
PIC16F627のWRITERプログラムにはそのほかにも問題があって、このCONFIGの問題をクリアしたのは別のPICに対するWRITERプログラムを作成したときでした。
そのあたりのこともいずれ書くつもりです。
CONFIGのアドレスを正しく直してから書き込みプログラムを実行しました。
昨日はここまで書いたところで続きを書くのを中止しました。
PIC16F627の書き込みテストについては何日も前に作業していたのでそのときのログを使うつもりだったのですが、よくよく見たところプログラムにバグがあることに気が付きました。
これはいかんということで急遽バグ取りをすることに…。
昨日UPできなかったのはそういう事情からでした。
本日バグ取り後にあらためて実行しました。
今度は大丈夫です。
まず最初に/PICRDFを実行しました。
logfile piciolog\0123082223.txt open *** pic i/o *** picio-30 connected >/picrdf startcode=01 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] 07A0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07B0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07C0[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] 0800[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] [01] |
>/hload 16f627test.hex loading 16f627test.hex ... i=175,binbfend=72 >/picwr startcode=01 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][07][30][9F][00][83][16][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [01] i=42,b=16,[00]0010 [05][00][10][00][10][85][01][86][01][83][12][21][08][85][00][12][20][A2][0B][0D][28] [01] i=62,b=16,[00]0020 [05][00][10][00][20][A1][03][0B][28][FA][30][A0][00][86][06][A0][0B][14][28][08][00] [01] i=68,b=2,[00]400e [05][00][02][40][0E][F9][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF] [03] picwrend |
デバッグのためにヘキサファイルの1行をPIC WRITER回路に送出する毎に送信データを表示しています。
書き終わったあとは/VERIFYコマンドで読み出してベリファイを行います。
>/verify |
ここでもプログラムのデバッグのためにチェックデータを表示させています。
[XX]は書き込んだデータで(XX)はそれを読み出したデータです。
[o]は両者が一致していることを示しています。
不一致のときは[x]が表示されます。
最後のerror=0は全データが一致したことを示しています。
念のため後でもとのファイルと比較するためもう一度プログラムエリアを読み出してヘキサファイルを作成しました。
今度はファイル名を指定して/PICRDFを実行しました。
>/picrdf 16f627test250123.hex startcode=01 type=04,uadrs=00 [08] 0000[10][05][28][FF][3F][FF][3F][FF][3F][FF][3F][07][30][9F][00][83][16] 0010[10][85][01][86][01][83][12][21][08][85][00][12][20][A2][0B][0D][28] 0020[10][A1][03][0B][28][FA][30][A0][00][86][06][A0][0B][14][28][08][00] 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] 07A0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07B0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] 07C0[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] 0800[10][F9][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F] [01] >/exit リモート接続を終了しました logfile closed at Thu Jan 23 08:26:51 2025 |
WinMergeでもとのヘキサファイルと今回作成したファイルを比較しました。
データがあるところはCONFIGを含めて全て一致しています。
WinMergeについては[第193回]で書いています。
PICBASICコンパイラ[第202回]
2025.1.23 upload
前へ
次へ
ホームページトップへ戻る