EEPROMエミュレーション
フラッシュにレコードを追記し、ページが埋まったら整理することで、バイト単位でアクセスできるEEPROMを装う手法。
いまやEEPROMを内蔵しないマイコンは多いが、ファームウェアは校正値や設定の保存先を必要とする。フラッシュは消去がセクタ単位、しばしば数キロバイトずつで、消去可能回数もEEPROMの数十万回に対して1万回ほどしかない。そこで上書きは決してせず、変更のたびに仮想アドレスと値を持つレコードを追記し、同じアドレスでは最新のレコードを有効とする。
ページが埋まると、有効な値を予備ページへコピーして古いページを消去する。電源断の後にどちらのページが有効かを決めるのはページヘッダのステータスワードで、バグが潜みやすいのもまさにここだ。STやMicrochipなどが、すぐ使えるコード付きのアプリケーションノートを公開している。ESP32上のArduino用EEPROMライブラリも、おなじみの顔をして同じことをしている。