R8Cデータフラッシュの操作

さて、今回はデータフラッシュメモリーを扱います。

R8Cには、プログラムフラッシュとは別に、データの記録用の小規模なフラッシュメモリーが別にあります。

3000番地から始まり、容量2048バイトです。
※1024バイト毎にバンク0、バンク1と分かれています。
フラッシュメモリーは、「1」のビットを「0」にする事は出来ますが、「0」のビットを「1」にする場合は、バンク毎に
イレースコマンドを発行して、全て「1」の状態に戻します。

この辺りのマネージメントが、多少難しいのですが、電源を切っても、記録を残す事が出来るので、非常に有益なメモリーと言えます。

テストプログラムでは、バイト単位での読み出し、書き込み、イレースなどが対話形式で行えるようにしてあります。
※シリアルポートにターミナルを接続します。

Start R8C FLASH monitor
# ?
erase bank[01]
r xxxx
write xxxx yy
# r 3
FF
# write 3 56
# r 3
56

操作説明:
? ---> 簡単な説明
r xxx ---> xxx のデータをリード
write xxx yy ---> xxx へ yy を書き込み
erase bank0 ---> バンク0を消去(0x3000 to 0x33ff)
erase bank1 ---> バンク1を消去(0x3400 to 0x37ff)

※xxx アドレスは、0 から 7ff までの領域です
※値は全て16進数で行います

本来は、プログラム領域の操作関数も含めたいところですが、それは、また次の機会(必要になったら)とします。

-----
R8Cへのプログラム書き込みには、ルネサスのFDTを使っていましたが、コマンドラインから気軽にプログラム出来れば便利です。
又、FDTは Windows 環境にしか対応しておらず、Linuxや、OS-X での開発には不向きでしたが、先日、AVR関係でお世話になっている
YCITのsenshuさん
の掲示板で、コマンドラインで使える、R8C 用プログラムコマンドが公開されました。
元々は、ゆきさん開発の r8cprog を元にしていて、M120AN 32K Flash に対応した
ものですが、使いやすいように、その他の小規模な改造も行っており、安定性も増しています。
私は、コマンドラインから使えるのが便利ですが、GUI 版も用意されており、シンプルで良く精査されたシンプルな設計により、予備知識が無く
ても直ぐに使えるようになっています。
Linux にも対応している事から、OS-X にも対応可能と思います、こちらは、時間が出来たら挑戦してみるつもりです。