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


PICBASICコンパイラ

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

[第134回]



●コマンドの動作確認(6)/DMRD

/DMRDもPICBASICコンパイラ開発のために作ったデバッグ用のコマンドです。
/DMRDはPICBASICターゲットボードPICBS02に搭載しているPIC18F4550のデータメモリ(データレジスタ)の値を読み出すためのコマンドです。
データメモリの値を読み出すためのコマンドとしては/RDコマンドがあります。
/RDコマンドは[第131回]で説明しました。
/RDコマンドはPICBASICコンパイラプログラムで使っている変数名やPIC18F4550のSFR(Special Function Register)の名前を指定して読み出すことができるという簡便さがあります。
しかし/RDで読み出すことのできるメモリ範囲はアドレス000〜05FおよびF60〜FFFに限られます。
これは/RDのアクセスの対象がPICのAccess Bankであることから来ています。
Access Bankについては[第132回]で引用したData Memory Mapに記載されています。
PIC18F4550のデータメモリはアドレス000〜7FFおよびF60〜FFFです(同Data Memory Map参照)。
/DMRDは/RDではアクセスできない上記の全メモリ範囲をアクセスすることができます。

13)/DMRDコマンド

実は今回の記事は数日前に書き始めたのですが、その時点での/DMRDの機能にはちょっと使いにくいところがありました。
それでこの数日の間にそこのところを改良しました。
下の画面は改良前のテスト画面です。
改良後の/DMRDについては次回説明します。



上の画面は[第133回]のテストの後で実行したものです。
/DMRDの書式は
/dmrd x,y
です。
xは0〜F,yは0〜7の定数です。
コマンドを実行するとパラメータで指定したメモリアドレスから始まる32バイトのデータメモリの値が表示されます。
x=0はアドレス000〜0FFの上位アドレス0を指定したことになります。
x=FはF00〜FFFの上位アドレスFを指定したことになります。
yは下位アドレスの指定です。
y=0は下位アドレス00を指定したことになります。
y=1は下位アドレス20を指定したことになります。
y=7は下位アドレスE0を指定したことになります。
上の画面で最後に実行した
/dmrd 0,1
で表示されたデータはPIC18F4550のデータメモリアドレス020〜03Fのデータです。
その上のほうで実行した/R30、/R31、/R32で表示された値が/dmrd 0,1の実行によって表示された2行目の先頭から3バイトに表示されています。

PICBASICコンパイラ[第134回]
2024.1.29 upload

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