|
stm32f407 хранение настроек |
|
|
|
May 5 2015, 20:59
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Dr.Alex @ May 5 2015, 23:30)  Вообще делать контроллер без еепрома это свинство (не могу опять не пнуть СТМ) Дык, эстешники вам в ответ апликуху - "эмуляция eeprom". Если питание пропало и какая-то настройка не сохранилась остается ее предыдущее значение. Я правда, эмулирую eeprom по-своему (не как ST предлагают), но за много лет использования косяков не заметил. Даже циклический журнал событий держу в контроллере. Кста, с записью событий "появилось питание", "пропало питание" - по сработке PVD, времени сохранить запись хватает.
|
|
|
|
|
May 5 2015, 21:06
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Я тоже изменяемые данные сохраняю во флеш. Правда, в отличие от, скажем, STM8, STM32 не позволяют перезаписывать области произвольного размера — только кратные размеру страницы. На STM32F103 о 100 ногах мне пришлось пойти на хитрость: выравнять не только размер структуры на 2кБ, но и ее начало (чтобы четко 1 страницу заняла). И вот так из-за десятка новых байт приходится 2кБ перезаписывать. Благо, нечасто. Кстати, для обозначения конца структуры (а также выравнивания) мне подсказали интересную штуку, которую я и использовал: "массив нулевого размера".
|
|
|
|
|
May 5 2015, 21:16
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Эдди @ May 6 2015, 00:06)  приходится 2кБ перезаписывать В F407 страница вообще по 16кБ, а настройки у меня 64 байта занимают (степень 2). Страниц минимум две (больше - лучше). Находим первое пустое место после записей. Пишем туда. Если при этом запись попадает на новую страницу, то предыдущую стираем. Все разумеется в терминах "кольца". Надежность (10к перезаписей страницы) * (16к размер страницы / 64 байта размер структуры) * (2 число страниц) > 5М перезаписей.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|