Как сохранить параметры в STM32

Опубликовано: 20.11.2015 Автор: Александр

Небольшая заметка о том, как сохранить параметры при работе с контроллерами STM32.

Часто бывает нужно сохранить небольшие значения в памяти (флаги и т.п.), чтобы можно было использовать в дальнейшем. Например, можно сделать независимый счетчик запусков контроллера или счетчик зависаний.

Памяти FLASH много, но в STM32 она разбита на страницы (pages), и если нужно перезаписать 1 байт на этой странице, нужно стереть ее всю. Так как же сохранить наши флаги или счетчик?

Карта памяти STM32F103

Часто последние страницы выделяют под такую задачу. И периодически перезаписывают ее или еще что-то делают с ней.

Я расскажу как можно сохранить 2 байта в памяти. Для этого я буду использовать область называемую User Option Bytes, тут располагаются флаги о запрете на чтение прошивки, запись в страницы, настройки резета и сторожевого таймера, а также есть 2 байта для пользовательских данных.

Для доступа к ним есть структура OB:

В коде доступ к этим двум байтам так:

Но это чтение данных, тут все просто. А вот записать новое значение – это та же процедура, что и для обычной области, за исключением размера этой области. Функция записи нового значения может выглядеть так:

Смысл в том, что сохраняем во FLASH лишь маленький объем, а не всю страницу.

Проблем, думаю, возникнуть не должно, но если есть вопросы, пишите.


В рубриках: Электроника
Метки:
Поделиться записью: