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

 
 
> Хранение указателя на конец данных в AT45xx DataFlash, Как лучше организовать?
Baser
сообщение Jan 20 2008, 19:22
Сообщение #1


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Прибор должен сохранять лог измеряемых данных в DataFlash 32Мбит в худшем случае каждые 3 секунды по одной или несколько строк из 16 байт. Работа прибора непрерывная с непредсказуемыми перерывами (может вкл./выкл. в любое время с любой частотой). Батарейного питания на плате нет. Срок жизни прибора лет 10 (может и больше smile.gif ).
Где лучше хранить указатель на конец данных и как это все получше организовать?

Посколько DataFlash не позволяет писать меньше страницы в 512 байт, то планирую кешировать данные в буфере. При кешировании указатель будет в ОЗУ. При сохранении страницы во флеш и при вкл/выкл прибора действия могут быть разными. Придумал два варианта:

1. Сохранять указатель в одной ячейке EEPROM AVR только при выкл. прибора, а при вкл. грузить его в ОЗУ и с ним работать.
+ простота алгоритма
- проблема в случае сбоя записи при выкл.: нужно искать конец данных в 32Мбит DataFlash

2. Сохранять указатель в циклическом буфере ячеек EEPROM не только при выкл. прибора, но и при записи страницы во флеш.
Циклический буфер указателей нужен из-за малого ресурса перезаписи у EEPROM.
- сложности с организацией циклического буфера указателей
+ всегда можно будет найти предыдущий указатель и конец данных.

Какие есть еще варианты и соображения?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Jan 21 2008, 11:56
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А что будет, если ErasePage из-за пропадания питания не выполнится и следующая страница не пустая?


Если вдруг из-за понижения питания не сработает ErasePage, то дальше дело не пойдет, процессор просто упадет в сброс от BOD'а. Тут конечно, надо процедуру PageErase делать правильную, с тестом, стаботало или нет. И, например, повторять, пока не очистится. Вообщем, такой алгоритм получается вполне транзакционный (если не учитывать то, что самые старые записи могут быть выброшены до записи новой, но это не беда, если это архив событий).

Цитата
Кроме того, не нужно деление.

Если все числа будут кратны 2, то деление и остаток будут преобразованы компилятором в сдвиги и and. Так что тут не волнуйтесь.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Baser   Хранение указателя на конец данных в AT45xx DataFlash   Jan 20 2008, 19:22
- - Aesthete Animus   2Baser Первый вариант я бы рассматривать не стал,...   Jan 20 2008, 20:06
- - Rst7   Давно использую в приборе для архива 45DB021. Тоже...   Jan 20 2008, 20:06
- - Baser   Цитата(Aesthete Animus @ Jan 20 2008, 22...   Jan 20 2008, 20:59
|- - Alex B._   со связанным списком сложно получится - нужно буде...   Jan 20 2008, 21:18
|- - singlskv   Цитата(Baser @ Jan 20 2008, 23:59) Объемы...   Jan 20 2008, 21:24
|- - DenisN   Цитата(Baser @ Jan 20 2008, 22:59) Это я ...   Jan 21 2008, 18:18
- - Baser   Цитата(Alex B._ @ Jan 20 2008, 23:18) ......   Jan 20 2008, 22:02
|- - Alex B._   Цитата(Baser @ Jan 21 2008, 01:02) У меня...   Jan 21 2008, 08:02
- - defunct   Можно поставить рядышком NVRAM (с RTC) и хранить в...   Jan 21 2008, 00:29
- - Rst7   ЦитатаОбъемы флешки у вас не те. В 2Мбитах можно и...   Jan 21 2008, 06:25
- - proba   32Mb состоит из 4096 секторов, следовательно для п...   Jan 21 2008, 08:55
- - Baser   Цитата(defunct @ Jan 21 2008, 02:29) NVR...   Jan 21 2008, 09:25
|- - Alex B._   Цитата(Baser @ Jan 21 2008, 12:25) А чем ...   Jan 21 2008, 11:01
|- - defunct   Цитата(Baser @ Jan 21 2008, 12:25) А чем ...   Jan 21 2008, 11:20
- - Rst7   Цитатадля поиска свободного сектора требуется чтен...   Jan 21 2008, 09:31
- - Rst7   ЦитатаВариант с пустым сектором как маркером конца...   Jan 21 2008, 11:21
|- - alcosar   Цитата(Rst7 @ Jan 21 2008, 15:21) Вы види...   Jan 21 2008, 11:46
- - Baser   Цитата(Alex B._ @ Jan 21 2008, 13:01) С и...   Jan 21 2008, 12:03
|- - defunct   Цитата(Baser @ Jan 21 2008, 15:03) Вашу м...   Jan 21 2008, 12:37
- - Rst7   ЦитатаВ EEPROM никто эти указатели не сохраняет? ...   Jan 21 2008, 12:16
- - GDI   А я в свое время хранил адрес следующей записи(или...   Jan 21 2008, 13:08
- - Rst7   ЦитатаА я в свое время Вот и у меня так было (тол...   Jan 21 2008, 13:49
- - Baser   to defunct: все понял, спасибо. Наконец-то до мен...   Jan 21 2008, 20:32


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

 


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


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