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

|
Цитата(scifi @ May 8 2015, 12:53)  Что, прямо настоящий код, исправляющий ошибки? Или банальная контрольная сумма, как у всех? Банальная сумма, т.к. модель сбоев flash в STM32 мне неизвестна, и шансы скорректировать отдельные битые биты ничтожны. Я готовлю запись, считаю сумму, записываю во flash, считываю. Если считанные данные совпали с записанными, то возвращаю "успех", иначе "ошибка". Смысл в том, что без контроля нельзя использовать ни одну flash.
|
|
|
|
|
May 8 2015, 12:27
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Сергей Борщ @ May 8 2015, 15:54)  LPC177x, 178x вроде достаточно свежий? Упоминания про 16 байт в руководстве пользователя не нашел. И тем не менее - так и есть. При попытке дописать к 16 байтам ранее записанным, получите мусор. Так что писать только кратно 16. Цитата(Сергей Борщ @ May 8 2015, 15:54)  Нет, я помню про раскрученный много лет назад встроенный загрузчик, и тем не менее 16 байт можно записать только недокументированными методами. Или я что-то неправильно понял? Прочитать эти самые 256 | 512 | 1024 | 4096, модифицировать в них требуемый участок, выровненный на 16 и записать. Только документированные методы.
|
|
|
|
|
May 11 2015, 08:01
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Господа, не отвлекаемся от темы: LPC, а уж тем более страны к сути топика не имеют никакого отношения.
Напомню исходный вопрос: есть stm32f407, где хранить настройки? во внутренней flash или во внешней. Большинством голосов пришли к выводу, что во внутренней можно. Страницы, ECC и т.п. большой роли не играют, т.к. при грамотной реализации у людей, использующих эмуляцию eeprom в stm32, нет проблем с надежностью.
Из тонких моментов можно обсудить: "большие" страницы у некоторых МК; задержка(?) доступа к flash при стирании/записи.
|
|
|
|
|
May 12 2015, 08:01
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата(adnega @ May 11 2015, 12:58)  И соответствующий пункт в ES (правда, для f42x, f43x): Интересно, такое проявлялось только в f42x, f43x. Т.к. использовал Эмуляцию eeprom от ST, изменив её выбором через дефайны какой тип данные используется для записи/чтения 8/16/32 бит. А также изменил оптимизировал некоторые ф-ции при вкл./выкл. блокировки флешь. Отладил, всё заработало, но в устройствах на 405 и аккумуляторном питании, периодически наблюдается сброс всех настроек и перезапись непонятными данными по 2-м используемым страницам флеша. Использовались 2-ая и 3-ая страницы. Вычитывал их ST-Link(ом) после сбоя. И стационарное устройство на 407 на нём всё в порядке. На 405 ножка PA12 используется, на 407 ножка PA12 не используется. На аккумуляторном устройстве (тот что на 405) стал думать, что в момент разряда аккумулятора (такое может быть хоть каждый день) мк часто перезапускается внешним супервизором (хотя задержка такого запуска ~ 1 сек.) и я, где-то, что-то в программе не учёл, и поэтому портятся данные. Но при включении записи нет есть только чтение, откуда берется перезапись 2-х страниц флеша мне не понятно. Пока эксперименты были отставлены из-за других дел. Но как вернусь к ним обязательно буду смотреть в сторону ножки PA12 в том числе.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|