1.リセット直後のEEPROMは書き込みが保護されているため、書き込む前に保護を解除する必要があります。
2.EEPROMの初期値とフラッシュメモリの初期値が違う場合があります。多くの場合、フラッシュメモリの初期値は「1」ですが、EEPROMは「0」の場合が多いです。しかし、これは製品ごとに仕様が異なるため、必ずマニュアルやデータシートなどの仕様書を確認してください。
3.フラッシュメモリにアクセスしている間、EEPROMの動作に制限がある場合があります。例えば、フラッシュメモリとEEPROMがバスなどのハードウェアを共有している場合、フラッシュメモリのアクセス中、EEPROMは動作を停止し、フラッシュメモリのアクセス終了後に動作を開始します。
また、一部のハードウェアを共有している場合、フラッシュメモリのアクセス中にEEPROMの読み出しのみできるといった場合もあります。
STの汎用8ビットマイコン「STM8Sシリーズ」*2)では、マニュアルに「プログラムメモリの読み出しや実行中に、データEEPROM への書き込み操作を行うことができます」と記載されています。このプログラムメモリは、フラッシュメモリを指しています。この場合、実行時間は最適化されます。一方、「プログラムメモリへの書き込み中にデータメモリを読み出すことはできません」とも記載されており、フラッシュメモリへの書き込み中には制限があるため注意が必要です。
STM32L1シリーズは、もう少し複雑で、製品によって動作が異なります。フラッシュメモリとEEPROMなどを含む不揮発性メモリを構成するモジュールが2バンク構成の製品の場合、一方のバンクにあるフラッシュメモリにアクセス中に、もう一方のバンクにあるEEPROMは同時にアクセスできますが、同じバンク内にあるEEPROMにはアクセスできません。1バンク構成の製品の場合、フラッシュメモリへのアクセス中はEEPROMにアクセスできません(図4参照)
*2)STM8Sシリーズ
Copyright © ITmedia, Inc. All Rights Reserved.