реклама на сайте
подробности

 
 
> stm32f407 хранение настроек
sergey sva
сообщение May 5 2015, 20:21
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Какую память использовать для хранение настроек в stm32f407? Думал прицепить память spi но в самом микроконтроллере 1мб памяти, для всех настроек 10кб хватит вполне. Опасение если использовать память программ вдруг в момент записи пропадет питание или еще что то, не хотелось бы что бы повредилась программа, как правильнее сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mantech
сообщение May 6 2015, 07:14
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(sergey sva @ May 5 2015, 23:21) *
Думал прицепить память spi но в самом микроконтроллере 1мб памяти, для всех настроек 10кб хватит вполне.


Если подужать до 4кб, и используете встроенные часы с батарейкой, то можно просто писать в backup RAM.

Сообщение отредактировал mantech - May 6 2015, 07:15
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 6 2015, 10:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ May 6 2015, 13:14) *
Если подужать до 4кб, и используете встроенные часы с батарейкой, то можно просто писать в backup RAM.

Ненадёжно. При сбое питания/перезагрузке в момент записи потеряете все данные.
Журнал с несколькими записями однозначно надёжнее: если не валидна последняя запись (из-за прерывания записи перезагрузкой), читаете предыдущую, валидную.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 6 2015, 17:05
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ May 6 2015, 13:46) *
Ненадёжно. При сбое питания/перезагрузке в момент записи потеряете все данные.


Ни разу не терялись, батарейку меняю при включенном основном питании, и ее очень надолго хватает.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 7 2015, 08:04
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ May 6 2015, 23:05) *
Ни разу не терялись,

Это не довод. Вероятность низкая, но всё равно не годится если нужна надёжность. 1000раз не случилось в 1001й раз попадёт сбой во время записи.
Если не проблема переконфигурить устройство при таком случае - то тогда на страшно.
Но если ответственная область, где важна надёжность работы и трудно будет переконфигурить заново - не годится.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 8 2015, 08:34
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ May 7 2015, 11:04) *
1000раз не случилось в 1001й раз попадёт сбой во время записи.


Это запись в обычную память, вероятность сбоя не больше, чем запись в любую ячейку памяти и уж куда меньше, чем процедура записи во флеш, т.к. там пишет не байтами, а страницами. Если произойдет сбой при записи в память, то потеряете байт или 4 байта, а в случае флеши - всю страницу.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 8 2015, 08:42
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(mantech @ May 8 2015, 11:34) *
Если произойдет сбой при записи в память, то потеряете байт или 4 байта, а в случае флеши - всю страницу.

Забавная выдумка. Не обманывайте неокрепшие умы.
Флеш стирается постранично. А запись происходит гораздо меньшими порциями. У тех же STM32 в зависимости от подсемейства может быть и побайтовая запись, и запись 16-битными словами. Это очень удобно для эмуляции EEPROM, реализации всяческих журналов и т.п.
Это только убогие флеши типа как у LPC требуют записывать гораздо более крупными пачками, потому что каждая пачка защищается кодом коррекции ошибок.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 8 2015, 08:50
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(scifi @ May 8 2015, 11:42) *
Это только убогие флеши типа как у LPC требуют записывать гораздо более крупными пачками, потому что каждая пачка защищается кодом коррекции ошибок.

О как! Оказывается, наличие ECC свидетельствует об убогости.

Пачка 16 байт всего. Не сказал бы, что это сильно мешает эмулировать EEPROM.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 8 2015, 09:54
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(aaarrr @ May 8 2015, 11:50) *
Пачка 16 байт всего. Не сказал бы, что это сильно мешает эмулировать EEPROM.
LPC177x, 178x вроде достаточно свежий? Упоминания про 16 байт в руководстве пользователя не нашел.
Цитата
Param2: Number of bytes to be written. Should be 256 | 512 | 1024 | 4096.
Нет, я помню про раскрученный много лет назад встроенный загрузчик, и тем не менее 16 байт можно записать только недокументированными методами. Или я что-то неправильно понял?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 8 2015, 10:06
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Сергей Борщ @ May 8 2015, 12:54) *
LPC177x, 178x вроде достаточно свежий? Упоминания про 16 байт в руководстве пользователя не нашел.

Действительно, у них такого нет. Для LPC11, LPC13 написано явно.

Цитата(scifi @ May 8 2015, 13:02) *
Конечно, калека может внушить себе, что его костыли - вовсе не костыли, и вообще это классно и модно. Но это его личные проблемы :-)

То есть серверную технику и всякие поделия на Cortex-R4 с ECC всего и вся записываем в калеки автоматом?

Тут уж надо или представлять данные о (не)надежности флеш NXP, или не заниматься домыслами.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 8 2015, 10:20
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(aaarrr @ May 8 2015, 13:06) *
Тут уж надо или представлять данные о (не)надежности флеш NXP, или не заниматься домыслами.

У нас свобода слова, так что извините. Что хочу, то и говорю.
Ну и то, что мнения по этому вопросу у нас отличаются, - тоже не проблема, у нас же разрешён плюрализм мнений :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   stm32f407 хранение настроек   May 5 2015, 20:21
- - Dr.Alex   Вообще делать контроллер без еепрома это свинство ...   May 5 2015, 20:30
|- - adnega   Цитата(Dr.Alex @ May 5 2015, 23:30) Вообщ...   May 5 2015, 20:59
- - Эдди   Я тоже изменяемые данные сохраняю во флеш. Правда,...   May 5 2015, 21:06
|- - adnega   Цитата(Эдди @ May 6 2015, 00:06) приходит...   May 5 2015, 21:16
- - Эдди   Если писать по кругу, то где-то придется как-то со...   May 5 2015, 21:33
|- - aaarrr   Цитата(Эдди @ May 6 2015, 00:33) Если пис...   May 6 2015, 02:41
- - Эдди   И как узнать номер последней актуальной? Перебират...   May 6 2015, 04:24
|- - kolobok0   Цитата(Эдди @ May 6 2015, 07:24) И как уз...   May 6 2015, 06:51
- - aaarrr   Да, перебрать все. Выполняется один раз на старте ...   May 6 2015, 05:03
|- - adnega   Цитата(mantech @ May 6 2015, 10:14) Если ...   May 6 2015, 07:17
|- - Quasar   Цитата(jcxz @ May 7 2015, 11:04) Это не д...   May 7 2015, 09:46
|||- - jcxz   Цитата(aaarrr @ May 8 2015, 14:50) Пачка ...   May 8 2015, 09:03
|||- - jcxz   Цитата(Сергей Борщ @ May 8 2015, 15:54) L...   May 8 2015, 12:27
|||- - aaarrr   Цитата(jcxz @ May 8 2015, 15:27) Прочитат...   May 8 2015, 12:41
||- - adnega   Цитата(scifi @ May 8 2015, 11:42) потому ...   May 8 2015, 08:59
|- - jcxz   Цитата(mantech @ May 8 2015, 14:34) Это з...   May 8 2015, 08:59
- - Quasar   Я во флеш храню настройки как на старых железках н...   May 6 2015, 18:43
- - sergey sva   Буду использовать внутреннюю память. Скачал исходн...   May 7 2015, 10:44
- - scifi   Цитата(aaarrr @ May 8 2015, 11:50) О как...   May 8 2015, 09:53
|- - aaarrr   Цитата(scifi @ May 8 2015, 12:53) Именно ...   May 8 2015, 09:58
||- - scifi   Цитата(aaarrr @ May 8 2015, 12:58) То, чт...   May 8 2015, 10:02
|- - adnega   Цитата(scifi @ May 8 2015, 12:53) Что, пр...   May 8 2015, 10:32
- - sergey sva   В lpc использовал для хранения настроек внешнюю па...   May 8 2015, 12:32
- - adnega   Господа, не отвлекаемся от темы: LPC, а уж тем бол...   May 11 2015, 08:01
|- - scifi   Цитата(adnega @ May 11 2015, 11:01) Из то...   May 11 2015, 09:14
|- - adnega   Цитата(scifi @ May 11 2015, 12:14) А ещё ...   May 11 2015, 09:58
|- - scifi   Цитата(adnega @ May 11 2015, 12:58) И соо...   May 11 2015, 10:05
- - Golikov A.   круто что эта нога вообще ничто... как так они уму...   May 11 2015, 11:27
|- - adnega   Цитата(Golikov A. @ May 11 2015, 14:27) к...   May 12 2015, 07:12
- - Rash   Цитата(adnega @ May 11 2015, 12:58) И соо...   May 12 2015, 08:01
- - adnega   Цитата(Rash @ May 12 2015, 11:01) буду см...   May 12 2015, 10:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 01:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016