これは、PIC24系やdsPIC系のようにプログラム・エリアのフラッシュ・メモリは 多く持っていてるのに内蔵EEPROMがない場合には非常に役立ちます。 EEPROMを外付けする等の手間が省けます。 プログラム・メモリ範囲内にページを置き、そこにデータを書き込むことです。 eepromのようなプログラム・メモリ内の2ページを使用する仮想eepromドライバ virtual_eeprom.cの使用をお勧めします。 さらに、書込みと消去のバランシングが組み込まれているため使用するプログラム・ メモリ・ページが過度に消去されることはありません。 プログラムのコードの終わりを知って、その後のプログラム・エリアを EEPROMのように使いたい場合は以下の様な使い方が可能です。 PICC\Driversフォルダにある"virtual_eeprom.c"というドライバーを使います。 例えば、次の様になります。 #include "2416.c" #include "virtual_eeprom.c" #define init_ext_eeprom() init_virtual_eeprom() #define read_ext_eeprom(a) read_virtual_eeprom(a) #define write_ext_eeprom(a, v) write_virtual_eeprom(a, v) #define EEPROM_ADDRESS unsigned int8 を定義して init_ext_eeprom(); wrepdata = 0xa5; rdepdata = read_ext_eeprom( 0 ); printf( "VEP = %d = %x\n\r", 0, rdepdata ); write_ext_eeprom( 0, wrepdata ); rdepdata = read_ext_eeprom( 0 ); printf( "VEP = %d = %x\n\r", 0, rdepdata ); のように書いて、仮想EEPROMのアドレス0の値を見ます。 最初に起動するとアドレス0=0xffですが、0xa5に書き換え後は0xa5になり 2回目の起動は、既に0xa5となります。