Emulazione EEPROM
Simulare una EEPROM a indirizzamento per byte accodando record in flash e compattando quando una pagina si riempie.
Molti microcontrollori non includono più una EEPROM, eppure il firmware ha comunque bisogno di un posto dove conservare calibrazioni e impostazioni. La flash si cancella solo un settore alla volta, spesso di diversi kilobyte, e regge forse diecimila cicli di cancellazione contro le centinaia di migliaia della EEPROM. Il trucco è non sovrascrivere mai: ogni modifica viene accodata come record con un indirizzo virtuale e un valore, e per ciascun indirizzo vale il record più recente.
Quando la pagina è piena, i valori validi vengono copiati in una pagina di riserva e quella vecchia viene cancellata. Le parole di stato nell'intestazione della pagina stabiliscono, dopo un'interruzione di corrente, quale sia valida: ed è proprio lì che tendono ad annidarsi i bug. ST, Microchip e altri pubblicano application note con codice già pronto. La libreria EEPROM di Arduino su ESP32 fa la stessa cosa sotto un aspetto familiare.