Эмуляция EEPROM
Имитация побайтово адресуемой EEPROM: записи дописываются во флеш как журнал, а при заполнении страницы выполняется уплотнение.
Во многих микроконтроллерах EEPROM больше нет, а прошивке всё равно нужно где-то хранить калибровки и настройки. Флеш стирается только секторами, нередко по несколько килобайт сразу, и выдерживает порядка десяти тысяч циклов стирания против сотен тысяч у EEPROM. Выход — никогда не перезаписывать: каждое изменение дописывается как запись с виртуальным адресом и значением, и побеждает самая свежая запись для данного адреса.
Когда страница заполнена, актуальные значения копируются на запасную страницу, а старая стирается. Слова состояния в заголовке страницы определяют, какая из них валидна после пропадания питания, — именно там обычно и живут баги. ST, Microchip и другие публикуют application notes с готовым кодом. Библиотека EEPROM из Arduino на ESP32 делает то же самое под привычной обёрткой.