Есть App note 2954, в котором довольно понятно все расписано. Проблема в том, что нет готовой библиотеки, которую можно просто подключить и пользоваться. Обычно везде захардкожены хедеры, причем там что переменные нельзя перекрыть - вместо подключения библиотеки надо ручками копировать код и править файлы.
Из наиболее правдоподобного нашел это:
1. https://github.com/jeelabs/embello/blob/master/lib/driver/romvars.h
- Симпатично сделано, но нужен низкоуровневый драйвер FLASH (похоже что от ардуины, а у меня просто HAL)
- Нельзя уменьшить размер потребляемой памяти (она всегда выделяется под максимально возможное количество переменныx)
2. https://github.com/offchooffcho/STM32-1/tree/master/lib/EEPROMEmulation_AN
Тут код лежит в общей солянке, надо выдирать.
Еще непонятно, как сделать чтобы не хардкодить адрес свободного флеша на хвосте, а определять автоматически.
==============
Как-то утомляет ситуация с эмбедами. Вроде даже библиотеки кто-то пишет, но как копнешь - все через одно место...
Может кто знает или делал нормально оформленную библиотеку которую можно воткнуть в platformio как зависимость и не уродоваться с копированием/правкой исходников?
PS. Ну или может кто возьмется сделать нормально...