eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2017-12-06 08:19 pm

Сниппеты для STM32

Второй вечер вожусь с эмуляцией EEPROM во флеш-памяти STM32F0. Раньше как-то не парился, и стирал страницу каждый раз, как менял настройки. Теперь решил поаккуратней сделать. Завел новую директорию Snippets в репозитории на гитхабе.
Работает очень просто: начиная с заданного адреса (я выделяю последнюю, с номером 15) выделяется одна килобайтная страница. По команде сохранения ищется первая пустая ячейка и в нее записываются данные; если все пустые ячейки кончились, страница стирается и процесс начинается с нулевого индекса. Для чтения настроек процесс проходит аналогично: ищем первую пустую запись, возвращаем индекс предыдущей; если индекс неотрицательный (-1 означает девственно чистую флеш, -2 — повреждение данных), memcpy записывает в текущий конфиг данные из флеша, если же индекс отрицательный, оставляется дефолтное значение конфига.

Потихоньку клепаю прошивку ММФП. Пока что отлаживаю на девборде китайской, как будет более-менее похоже на рабочий код, прошью чипы в платах системы управления.