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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Хранение файлов на at45db, DataFlash + мк с малыми ресурсами. Как?
Kovrov
сообщение Oct 10 2007, 16:13
Сообщение #16


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



78L03


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
alsenin
сообщение Oct 11 2007, 05:33
Сообщение #17





Группа: Новичок
Сообщений: 2
Регистрация: 28-03-07
Пользователь №: 26 571



Цитата(kada @ Sep 6 2007, 17:31) *
Выделить несколько страниц для хранения FAT и тем самым создать круговой буфер. В начале FAT предусмотреть некий маркер, по которому можно определить что данная страница содержит в себе валидную FAT. Для чтения из FAT находится страница с маркером. Для записи новой информации в FAT копируется текущая FAT в следующую страницу памяти. В старой затирается маркер. В новой меняются необходимые данные. Вместо маркеров можно использовать индекс номера текущей страницы с валидной FAT. Безусловно, по скорости такое решение далеко не лучший вариант. Зато несложное в реализации путем доработки исходников той же FatFS от ChaN`а


После реального опыта работы с FatFS без внешнего ОЗУ любые движения по перезаписи нескольких копий FAT видится крайне напряжными. Тем более в случае краха FAT'а крайне сложно будет вытянуть данные имея n+1 несинхронизированных копий FAT.

Для реализации же файловых систем, экономно расходующих ресурс циклов перезаписи давно существуют другие решения. Например jffs, jffs2, jffs3 (правда примеров их реализации для Meg'и мне не известно).

Кстати, после более-менее осмысленного применения различных файловых систем в своих девайсах интересует горзадо более актуальный вопрос fail safe систем. Есть некотрые мысли, если кому-то интересно можно продолжить обсуждение в этой ветке или создать новую.



Цитата(Kovrov @ Oct 9 2007, 11:46) *
Вот такой вопрос волнует в последнее время..
применяете ли вы, уважаемые колеги, какие нибудь методы контроля за записью или чтением в буфер
дата флеш?
Вопрос встал достаточно ощутимо после того, как попалась дфлешка с полуживым SPI..
и наблюдался такой глюк:
читаю полностью страничку памяти 528 байт
в ней заранее записаны нули..
и при чтении нет нет да промелькнет где то еденичка..
вчера всю голову сломал- думал что это: наводки или косяки в программе.
пока не заменил дфлеш.


Конечно применям. smile.gif

Недаром размер страницы 528 байт - есть лишние 16 байт для хранения контрольной суммы или исправляющего кода. Очень актуально не только при битом SPI. Плюс верификация записи.


Цитата(alcosar @ Sep 6 2007, 10:48) *
Сам ФАТ нужно хранить в ОЗУ либо мк, либо DataFlash. В мк мало ОЗУ. В DataFlash во время записи используются оба буфера, чтобы ускорить запись.


ФАТ в ОЗУ хранить может и не получится... он (ФАТ) может быть и достаточно большой smile.gif))

Для реально ускорения работы с DF я применял массив из 4 м/с DF с параллельной записью/чтением буфферов (типа страйпинга в райдах).

Но на самом деле FAT на Meg'e это больше мучений, чем пользы, ИМХО.

Сообщение отредактировал alsenin - Oct 11 2007, 05:36
Go to the top of the page
 
+Quote Post
alcosar
сообщение Oct 11 2007, 14:38
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598



Цитата(Kovrov @ Oct 10 2007, 19:13) *
78L03

Чем запитана 78L03 ? Похоже на проблемы с питанием. Чем пишете/читаете DataFlash ? Atmega?

Цитата(alsenin @ Oct 11 2007, 08:33) *
Кстати, после более-менее осмысленного применения различных файловых систем в своих девайсах интересует горзадо более актуальный вопрос fail safe систем. Есть некотрые мысли, если кому-то интересно можно продолжить обсуждение в этой ветке или создать новую.

Конечно интересно. От FAT я и сам отказался. Интересно как делают другие.

Сообщение отредактировал alcosar - Oct 11 2007, 14:43
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Oct 11 2007, 17:39
Сообщение #19


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(alsenin @ Oct 11 2007, 09:33) *
Недаром размер страницы 528 байт - есть лишние 16 байт для хранения контрольной суммы или исправляющего кода. Очень актуально не только при битом SPI. Плюс верификация записи.

можно обо всем этом поподорбнее.
Контрольную сумму можно пропустить...


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
alsenin
сообщение Oct 12 2007, 03:24
Сообщение #20





Группа: Новичок
Сообщений: 2
Регистрация: 28-03-07
Пользователь №: 26 571



Цитата(Kovrov @ Oct 12 2007, 00:39) *
можно обо всем этом поподорбнее.
Контрольную сумму можно пропустить...


Если ставить цель - отказоустойчивое хранение информации, то надо исходить из того, что сбой может произойти на любом этапе операции чтения/записи. Поэтому необходимо контролировать не только правильность чтения, но и достоверность записи. Вывод - принимаем решение, что операция записи прошла успешно после верификации записи. Т.е. если по максимуму - сравниваем буфер записи с буфером DF и сравниваем буфер DF со страницей DF.

Тоже самое с операцией чтения. В простейшем случае вычисляем и храним контрольную сумму и принимаем решение, что операция чтения завершилась удачно. Либо вычисляем и храним исправляющий код, который позволяет при устойчивых искажениях исправлять одиночные ошибки. Ключевое слово - "
Код Хемминга".

Для хранения контрольных кодов и выделены дополнительные 16 байт в каждой странице DF, так как все таки это не очень надежный носитель информации.

PS. Правда все это не очень применимо для МК с малыми ресурсами smile.gif


Цитата(alcosar @ Oct 11 2007, 21:38) *
Конечно интересно. От FAT я и сам отказался. Интересно как делают другие.


Иногда от FAT нельзя отказаться, например если ее использование оговаривается в ТЗ для работы с Windows. Поэтому хочется несколько повысить надежность хранения при использовании FAT.

Например введя понятие транзакции в операции записи.

Более подробно попробую изложить свои мысли чуть позже, так как жестко не хватает времени.
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Oct 12 2007, 06:18
Сообщение #21


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



понятно. спасибо.
А что вы считаете более подходящим для хранения информации?


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
kada
сообщение Oct 26 2007, 15:08
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 23-05-05
Из: Ташкент
Пользователь №: 5 324



Цитата(alsenin @ Oct 11 2007, 10:33) *
После реального опыта работы с FatFS без внешнего ОЗУ любые движения по перезаписи нескольких копий FAT видится крайне напряжными. Тем более в случае краха FAT'а крайне сложно будет вытянуть данные имея n+1 несинхронизированных копий FAT.

Для реализации же файловых систем, экономно расходующих ресурс циклов перезаписи давно существуют другие решения. Например jffs, jffs2, jffs3 (правда примеров их реализации для Meg'и мне не известно).

Это понятно. Но речь идет о AVR-ах, а JFFS ориентирована на более производительные платформы.
Go to the top of the page
 
+Quote Post

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

 


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


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