Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.31;
Скачать: [xml.tar.bz2];

Вниз

Равномерное заполнения SD карты.   Найти похожие ветки 

 
Дмитрий С ©   (2012-11-28 17:14) [0]

Как известно ресурс SD карты ограничен. В следствии чего возникает два вопроса:
1. Про флеш карты (которыми SD по больше части и являются) пишут, что их продвинутые NAND контроллеры сами следят за равномерным износом карты. Как определить продвинутый на карте контроллер или нет?
Т.е. если он продвинутый, то я могу сколько угодно писать в один и тот же блок, NAND контроллер сам будет "распихивать" данные по карте?

2. Ближе к задаче. Предположим что взятая SD не имеет такой функции.
В моей задаче карта памяти используется без файловой системы. Приложение записывает данные на карту блоками (по 512 байт).
Приложению необходимо держать на карте следующие данные:
1. 64КБ очень редкоменяющихся данных.
2. Блок текущего состояния (512 байт, частоменяющихся).
3. Два блока swap (необходимы для временного хранения данных).
4. И вся остальная область - лог. Каждая запись лога занимает 8 байт. Каждый блок лога перезаписывается 64 раза во время появления тех или иных событий.

Приложение - МК с 2КБ ОЗУ.

Вопрос: Как организовать хранение данных с учетом ресурса SD карты?

Предположительное решение у меня такое:
1. Резервируем 64 КБ вначале.
2. Первый блок лога.
3. Пустой блок
4. Блок состояния.
5. Пустой блок
6. Два блока swap-а.

Когда первый блок лога заполняется, вся эта конструкция смещается на один блок. И так далее. Получаем более-менее равномерное использование карты. Но тут вопрос, в случае перезапуска приложения, как определить, где находится блок состояния (или граница лога). Чтение SD карты происходит достаточно медленно, поэтому нужен какой-то хитрый способ поиска.


 
RWolf ©   (2012-11-28 17:26) [1]

сформатировать SD в FAT12/16 и забыть о проблеме.
для хранения часто меняющихся данных прицепить отдельную микросхему с бесконечным ресурсом, см. http://www.ramtron.com


 
kilkennycat ©   (2012-11-28 17:45) [2]


> для хранения часто меняющихся данных прицепить отдельную
> микросхему с бесконечным ресурсом

или разработать свой контроллер, что несложно.


 
RWolf ©   (2012-11-28 17:49) [3]


> [2]

ТС пишет программу для самопального контроллера, насколько я понимаю.
предусмотреть на плате пару дорожек для подключения м/с памяти совсем не сложно.


 
Медвежонок Пятачок ©   (2012-11-28 17:52) [4]

Но тут вопрос, в случае перезапуска приложения, как определить, ....

Есть более банальный вопрос.
Допустим карта без этого распределятора служит год.
А с распределятором десять тысяч лет.
Сколько ты сэкономишь до конца жизни (не карты, а своей), если сама карта стоит почти ничего?


 
Jeer ©   (2012-11-28 17:53) [5]

Если 100500 пользователей - то, много.


 
Дмитрий С ©   (2012-11-28 17:55) [6]

ТС пишет программу для контроллера ATMega328. Который записывает на SD карту происходящие события.

Нет никакого смысла решать проблему припаиванием деталей, которые к тому же стоят денег, если ее можно решить программно.


> или разработать свой контроллер, что несложно.

Вот я и хочу разработать принцип записи исходя из условий задачи.


 
RWolf ©   (2012-11-28 18:03) [7]


> [6]

удобство SD-карты в том, что её можно вынуть из устройства и прочитать на ПК, а это требует стандартной разметки, самописные файловые системы обнуляют это преимущество.
насчёт ФС с балансированием износа можно в сторону JFFS2 копнуть, но не уверен, что используемый м/к её потянет в плане памяти.


 
Дмитрий С ©   (2012-11-28 18:15) [8]


> удобство SD-карты в том

Удобство SD карты в данном случае в том, что она мелкая, простая в использовании, большая по объему и очень дешевая, в комп ее втыкать пока никто не планирует.


> насчёт ФС с балансированием износа можно в сторону JFFS2
> копнуть

Какой в этом смысл, если ФС как таковая мне не требуется? К тому же на таком ограниченном МК.


> Сколько ты сэкономишь до конца жизни (не карты, а своей),
>  если сама карта стоит почти ничего?

Это надо будет каждый год ездить, менять ее, зачем мне это:)


 
Jeer ©   (2012-11-28 18:21) [9]

Так выходов-то не много:
- использование SLC-разновидности с контроллером;
- использование MLC, TLC .. с качественным контроллером;
- использование без контроллера, но с реализацией спец. файловых систем типа JFFS2 ( LogFS, UBIFS и YAFFS )


 
kilkennycat ©   (2012-11-28 18:23) [10]

если говорить о надежности, то NAND тут вообще как бы смешновато получается. независимо от того, как там распределяется.


 
Jeer ©   (2012-11-28 18:23) [11]


> Какой в этом смысл, если ФС как таковая мне не требуется?
>  К тому же на таком ограниченном МК.
>


Кто мешает изучить спецификацию JFFS2 и повторить подвигЪ :)


 
Jeer ©   (2012-11-28 18:24) [12]

Да, но и NOR совсем не для регулярных и частых изменений предназначена.


 
kilkennycat ©   (2012-11-28 18:31) [13]

Да. но все-таки уже понадежней.


 
Jeer ©   (2012-11-28 18:33) [14]

Число циклов на порядок больше - да.


 
brother ©   (2012-11-28 18:48) [15]

http://winitpro.ru/index.php/2011/06/20/fajlovaya-sistema-exfat/
?


 
QAZ9   (2012-11-28 18:59) [16]

Удалено модератором


 
kilkennycat ©   (2012-11-28 19:23) [17]


> Jeer ©   (28.11.12 18:33) [14]

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


 
Дмитрий С ©   (2012-11-28 21:43) [18]

Ребят. Я же не про ячейки спрашивал и не про файловые системы.


 
Dennis I. Komarov ©   (2012-11-28 21:51) [19]


> > Сколько ты сэкономишь до конца жизни (не карты, а своей),
>
> >  если сама карта стоит почти ничего?
>
> Это надо будет каждый год ездить, менять ее, зачем мне это:
> )

Через пару-тройку лет, может и CD уже не быть...


 
Jeer ©   (2012-11-28 22:07) [20]


> Ребят. Я же не про ячейки спрашивал и не про файловые системы.


А как ты думаешь, на чем SD построена ?
И что сделано на аппаратном и ОС-программном уровне для решения проблемы иерархичного по-блокового доступа во флешках ?

Для NAND даже специально разработали FS - YAFFS (Yet Another Flash File System) -> YAFFS2.
Неужели делать было нечего ?

Об JFFS2 я уже упоминал.

P.S.
Прежде чем изобретать свои методы работы с железом, стоит взглянуть на то, что уже сделано в этом мире до тебя.

К примеру:
http://www.xakep.ru/magazine/xa/124/084/1.asp


 
Jeer ©   (2012-11-28 22:13) [21]

Да и вообще, рекомендую за вопросами ходить на специализированные форумы.

http://electronix.ru/forum/lofiversion/index.php/t66883.html


 
Дмитрий С ©   (2012-11-29 01:57) [22]


> Jeer ©   (28.11.12 22:07) [20]

Блин. Не нужна мне ФС. Мне карта памяти нужна как просто память - ПЗУ. Но приходится учитывать особенности.

Спасибо за ссылку. (Сарказм) На микроконтроллере 2 кб ОЗУ и всего 8 МГц частота, давайте линукс поставим и YAFFS.


 
Германн ©   (2012-11-29 03:12) [23]


> Дмитрий С ©   (29.11.12 01:57) [22]
>
>
> > Jeer ©   (28.11.12 22:07) [20]
>
> Блин. Не нужна мне ФС. Мне карта памяти нужна как просто
> память - ПЗУ. Но приходится учитывать особенности.
>

Если приходится "учитывать особенности" - значит их нужно учитывать.
И прежде чем заявлять что-то типа "это мне не нужно" стоит детально уяснить конкретный совет.


 
Германн ©   (2012-11-29 03:26) [24]

Например напиши собственный драйвер для такой памяти, который с точки зрения ОС будет являться "просто память -ПЗУ", а по внутренней реализации "учитывать особенности".


 
Германн ©   (2012-11-29 03:40) [25]

Кстати. "По внутренней реализации" - самая проблемная операция - это стирание. Как-то изначально операция "стирания" для ПЗУ предполагала полное стирание всей области памяти. (Если вообще предполагала). Потом вводилось "страничное" стирание, ну и за тем побайтное.
Имхо, собственно операции "стирания" в основном влияют на продолжительность жизни таких микросхем.


 
RWolf ©   (2012-11-29 09:33) [26]


> Не нужна мне ФС. Мне карта памяти нужна как просто память
> - ПЗУ.

ну так и закладывали бы в прибор просто память, а не SD-карту с держателем, раз уж её даже вынимать не планируется.
и дешевле, и доступ быстрее был бы, и ОЗУ для посекторного чтения не пришлось бы резервировать.
какая-нибудь at25df*** вполне закрыла бы потребности (имхо, конечно).


 
Jeer ©   (2012-11-29 10:38) [27]


> На микроконтроллере 2 кб ОЗУ и всего 8 МГц частота


Так железо выбирается под задачу, а не наоборот.

Ничто не мешает выбрать, к примеру, FreeRTOS ( ядро 4..9 kb ) с поддержкой FATFS.

http://www.freertos.org/
http://elm-chan.org/fsw/ff/00index_e.html
http://elm-chan.org/docs/mmc/mmc_e.html


 
Jeer ©   (2012-11-29 10:39) [28]


> какая-нибудь at25df***

+1


 
kilkennycat ©   (2012-11-29 11:12) [29]


> На микроконтроллере 2 кб ОЗУ и всего 8 МГц частота

это очень много.


> RWolf ©   (29.11.12 09:33) [26]

> и дешевле,


кстати, да. стоимость карты и держателя позволяют выбрать пракитически любой контроллер


 
Дмитрий С ©   (2012-11-29 11:47) [30]


> кстати, да. стоимость карты и держателя позволяют выбрать
> пракитически любой контроллер

А когда память выйдет из строя, что делать? Да и к тому же есть разница 2GB и несколько Мегабайт в лучшем случае.


>  Jeer ©   (29.11.12 10:38) [27]
> Так железо выбирается под задачу, а не наоборот.

В моем случае выбран компромисс.


>
> это очень много.

Достаточно, я бы сказал, но зачем ставить зачем отдавать часть этого под ненужную мне файловую систему и тем более ОС?


> кстати, да. стоимость карты и держателя позволяют выбрать
> пракитически любой контроллер

В моем случае необходимо собрать слишком много устройств, чтобы паять их самому и слишком мало, чтобы разрабатывать и паять схему промышленным способом. Плюс к тому же опыта это делать у меня нет, как и времени получать его (хотя в дальнейшем я все же хочу научится это делать). Поэтому была взята готовая плата, где помимо ATMega328 есть все необходимые детали. Стоимость ее устроила заказчика. На этой плате так или иначе уже есть SD разъем.


 
Jeer ©   (2012-11-29 18:15) [31]

Если речь идет об Ардуино, то там есть есть библиотека для работы с SD-картами.
Open-source.


 
Дмитрий С ©   (2012-11-29 18:18) [32]


> Jeer ©   (29.11.12 18:15) [31]

А это тут причем?


 
Jeer ©   (2012-11-29 18:19) [33]

Да я откуда знаю, чем ты пользуешься - гадаю :)


 
Дмитрий С ©   (2012-11-29 18:27) [34]


> Jeer ©   (29.11.12 18:19) [33]

Разве вопрос был в том, как работать с SD картой? С этим вопросов нет. И благодаря раскрученному в поиске слову "Ардуино", скорее всего и не будет.

Вопрос: как организовать структуру данных на ней?


 
brother ©   (2012-11-29 19:13) [35]

> Вопрос: как организовать структуру данных на ней?

типа FileSystem?


 
Jeer ©   (2012-11-29 21:37) [36]


> типа FileSystem?


Вот и я не пойму - чего ТС хочет.
Есть носитель данных, общеизвестный.
Реализованы разные способы доступа к нему от примитивных до файл-системных.
1. Примитивные способы реализованы от "сохи" или "как получилось".
2. FS-способы реализованы, есс-но, на базе той или иной embedded-OS (больших братьев не считаем).

Первые не претендуют на универсальность и "загадочны".
Вторые - универсальны, учитывают текущие знания, общедоступны, многократно проверены.

Вывод: читать/смотреть исходники второго способа и транслировать в свой, самобытный.


 
kilkennycat ©   (2012-11-29 22:00) [37]


> В моем случае необходимо собрать слишком много устройств,
>  чтобы паять их самому и слишком мало, чтобы разрабатывать
> и паять схему промышленным способом.

любопытно количество, если не секрет. у меня, например, середина-наполовину. от 10 штук я делаю полностью сам, это если примерно на плате сотни две-три контактных площадок. от 10 до 1000 штук - платы заказываю, а пайка все равно сам. например, хрень, где будет такая атмега и картридер и еще десяток элементов, спаяю около 50 за рабочий день. это если еще буду чай пить и курить и на параллельном мониторе киношку смотреть.


 
kilkennycat ©   (2012-11-29 22:00) [38]


> В моем случае необходимо собрать слишком много устройств,
>  чтобы паять их самому и слишком мало, чтобы разрабатывать
> и паять схему промышленным способом.

любопытно количество, если не секрет. у меня, например, середина-наполовину. от 10 штук я делаю полностью сам, это если примерно на плате сотни две-три контактных площадок. от 10 до 1000 штук - платы заказываю, а пайка все равно сам. например, хрень, где будет такая атмега и картридер и еще десяток элементов, спаяю около 50 за рабочий день. это если еще буду чай пить и курить и на параллельном мониторе киношку смотреть.


 
kilkennycat ©   (2012-11-29 22:00) [39]

вроде ж делалось антидублирование?


 
Jeer ©   (2012-11-29 22:12) [40]


> еще буду чай пить

Ты себя-то не сравнивай, с новичком в embeded.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.004 c
2-1286953967
Evgeney
2010-10-13 11:12
2013.03.31
Вставка изображения в BLOB поле


15-1354718984
Kerk
2012-12-05 18:49
2013.03.31
Начальники


8-1227335832
Б
2008-11-22 09:37
2013.03.31
Media


15-1354870894
stas
2012-12-07 13:01
2013.03.31
Convert Doc to PDF


15-1354711862
Error0xDEADBEEF
2012-12-05 16:51
2013.03.31
VirtualBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский