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

 
 
> Надежность FAT
Darti
сообщение Dec 12 2015, 16:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 17-09-14
Из: Спб
Пользователь №: 82 840



Всегда использовал FAT от чена, еще во времена avr, да и сейчас на stm32. Ответственных задач не было, поэтому пристального внимания не уделял, да вроде все работало. Часто видел темы на форуме, мол либа кривая, не работает то или это, но как то лично с проблемами не сталкивался. Сейчас попался заказчик, который стал в позу, мол юзать либу не православно, при этом в винде карта памяти должна обнаруживаться как обычный съемный диск, без дополнительного софта, т.е. фат эмулировать нужно.

В качестве аргументов против: энергопотребление с либой выше, чем посекторное. Но следующий аргумент как то меня поверг в шок. Мол 100 лет назад он проводил тесты, которые показали, что если писать в один и тот же сектор, то на ~60 раз сектор "портится" и контроллер карты памяти начинает переносить данные, все это проявляется резким снижением скорости записи. Для меня этот пункт странный, но пока мне возразить нечем. В качестве предложения, заполнять карту равномерно, стирать только когда целиком заполнится.

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

Собственно пока жду железо, чтобы проверить теорию плохого сектора, хотелось бы послушать мнение опытных в этом деле людей. Я заглядывал в исходники fat fs и ничего лишнего или слишком неумелого не увидел.

Вопросы: Я не предстваляю как можно будет сэкономить энергию, если буду делать тоже самое, что и библиотека, или даже не так - что можно делать иначе?. На чем основаны доводы о кривости этой библиотеки? Точнее даже ее ненадежности.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 28)
AlexandrY
сообщение Dec 14 2015, 06:56
Сообщение #16


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(_3m @ Dec 14 2015, 08:48) *
Нереальные тормоза это пытаемся записать - получаем зависание карты, при этом чтение работает.


Еще раз вас прошу не засорять ветку. Если есть что сказать приводите цифры, графики , типы и названия карт.
Например так:
Прикрепленное изображение


Тут надо обратить внимание, что карта поддерживает режим static Wear Leveling.
Это может приводить к спорадическому перемещению данных из одних AU в другие даже когда идет линейная запись, чтобы статические данные не залеживались в малоизношенных AU.

А вот ссылка на специальный анализатор карт : https://github.com/bradfa/flashbench
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 14 2015, 07:52
Сообщение #17


Гуру
******

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



Цитата(_3m @ Dec 14 2015, 09:48) *
Нереальные тормоза это пытаемся записать - получаем зависание карты, при этом чтение работает.


Уж поверьте мне, работаю именно с сд-картами несколько лет, на 8 разных контроллерах и платформах, с картами до 2гб и 8-16гиг, типов 10 тестировал на чтение и запись, НО чтоб такое... Ни разу не было! Что-то у вас там не того с программой или интерфейсом МК.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Dec 14 2015, 09:31
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
static Wear Leveling.

Это можно узнать по каким-то полям в статусных регистрах карты или только косвенно по поведению/бенчмаркам?
В открытом даташите упоминяния этих слов нет...
Цитата
SD Specifications
Part 1
Physical Layer Simplified Specification
Version 4.10
January 22, 2013
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 14 2015, 09:44
Сообщение #19


Гуру
******

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



Цитата(mantech @ Dec 14 2015, 10:52) *
Уж поверьте мне, работаю именно с сд-картами несколько лет, на 8 разных контроллерах и платформах, с картами до 2гб и 8-16гиг, типов 10 тестировал на чтение и запись, НО чтоб такое... Ни разу не было! Что-то у вас там не того с программой или интерфейсом МК.

Эх, был у меня волшебный китайский кард-ридер, после которого карты (разных производителей, что интересно) в какой-то момент начинали себя вести именно таким образом - нормальное чтение и жуткие тормоза при записи. Что он с ними делал - ума не приложу.
Нормальным износом добиться такого никогда не получалось.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 14 2015, 10:08
Сообщение #20


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Genadi Zawidowski @ Dec 14 2015, 11:31) *
Это можно узнать по каким-то полям в статусных регистрах карты или только косвенно по поведению/бенчмаркам?
В открытом даташите упоминяния этих слов нет...


Physical Layer Simplified Specification !? laughing.gif
На 32 Гб картах даже упомянутый анализатор уже ничего не понимает.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Dec 14 2015, 11:06
Сообщение #21


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Так скажите где описано.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 14 2015, 13:44
Сообщение #22


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Genadi Zawidowski @ Dec 14 2015, 13:06) *
Так скажите где описано.


В даташите на саму карту
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 15 2015, 12:05
Сообщение #23


Гуру
******

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



Прочитал исходное сообщение и не понял - откуда отвечающие поняли, что речь шла именно о SD-картах??? Телепаты здесь всё-таки есть и не в отпуске? :-)
А вообще, по теме: раз автор уже пытается писать свой аналог FatFS (и видно уже вовсю пишет, раз больше не появлялся), то может лучше написать LowLewel-прослойку между FatFS и физикой, которая обеспечит кеширование и распределение износа по всем секторам флешь-носителя (каким-бы он не был физически) при помощи дополнительной ОЗУ и например FRAM-памяти (для хранения таблицы переадресации блоков флешь). Эта прослойка будет работать уже на уровне 512-байтных секторов и написать её проще, чем разбираться со всеми механизмами FAT16/32, а может и других ФС.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 15 2015, 14:11
Сообщение #24


Гуру
******

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



Цитата(jcxz @ Dec 15 2015, 15:05) *
может лучше написать LowLewel-прослойку между FatFS и физикой, которая обеспечит кеширование и распределение износа по всем секторам флешь-носителя (каким-бы он не был физически) при помощи дополнительной ОЗУ и например FRAM-памяти


Ну хорошо, допустим, но сколько у вас этой ФРАМ?, килобайт, два, макс. 10... И много-ли толку от этого будет, тут нужна кэш как минимум на несколько блоков фат, а это уже только ОЗУ, соотв. гемор с питанием на случай его внезапного пропадания и т.п.
Уж если нужно так увеличить кол-во перезаписей, то придется разориться на SLC флеш, ибо гарантируют >100000 перезаписей одного блока.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 15 2015, 14:32
Сообщение #25


Гуру
******

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



Цитата(jcxz @ Dec 15 2015, 15:05) *
Прочитал исходное сообщение и не понял - откуда отвечающие поняли, что речь шла именно о SD-картах??? Телепаты здесь всё-таки есть и не в отпуске? :-)

А если это CF или даже MS, то что-то принципиально меняется? Вряд ли речь идет о xD-Picture или SmartMedia sm.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 15 2015, 18:01
Сообщение #26


Гуру
******

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



Цитата(mantech @ Dec 15 2015, 20:11) *
Ну хорошо, допустим, но сколько у вас этой ФРАМ?, килобайт, два, макс. 10... И много-ли толку от этого будет, тут нужна кэш как минимум на несколько блоков фат, а это уже только ОЗУ, соотв. гемор с питанием на случай его внезапного пропадания и т.п.

А у нас на дворе что - 90-ее до сих пор??
Мы в своих устройствах уже много лет используем FRAM на 32кБ, сейчас уже используем и на 256кБ (обратите внимание на большую 'Б').
А есть микросхемы FRAM и большей ёмкости, да и не говорил ТС ничего про бюджет и размер устройства, может он сможет и неск. микросхем впаять?
И во FRAM я предлагал хранить таблицу переадресаций блоков FLASH, которая будет обновляться при каждой новой записи в любое
место FLASH. Кеш я не предлагал туда писать, но если есть необходимость - и это можно.
К тому-же ничего не мешает обойтись без FRAM. Если целевая FLASH, используемая автором (о физической природе коей мы ничего не знаем), имеет достаточную (и известную заранее скорость записи), то эту таблицу переадресации и кеш можно хранить в ОЗУ и, имея хорошо работающий монитор питания, скидывать по его сигналу в эту же самую FLASH. Тогда время жизни накопителя будет зависеть ещё от кол-ва выключений питания устройства (выключений питания после сеанса работы в котором были записи в ФС).
Конечно - если этот FLASH-носитель у ТС съёмный и предполагается возможность вытаскивания его и втыкания в чужую систему, то тут будут проблемы.

PS: Да, прочитал ещё раз исходное сообщение - похоже ТСу именно это и нужно (возможность работы в винде без доп. костылей). Тогда своя таблица перемещений отпадает... sad.gif
Ну или пересматривать ТЗ....
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 15 2015, 18:08
Сообщение #27


Гуру
******

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



Цитата(jcxz @ Dec 15 2015, 21:01) *
Конечно - если этот FLASH-носитель у ТС съёмный и предполагается возможность вытаскивания его и втыкания в чужую систему, то тут будут проблемы.

В первом же сообщении ТС именно это и написано:
Цитата
...при этом в винде карта памяти должна обнаруживаться как обычный съемный диск, без дополнительного софта
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 15 2015, 18:14
Сообщение #28


Гуру
******

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



Цитата(aaarrr @ Dec 16 2015, 00:08) *
В первом же сообщении ТС именно это и написано:

Уже заметил....
Возможно тут имеет место быть плохая работа с заказчиком. Есть такой тип заказчиков, выставляющих неадекватно высокие требования и чтобы было только так как они хотят.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 15 2015, 18:43
Сообщение #29


Гуру
******

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



Цитата(jcxz @ Dec 15 2015, 21:14) *
Есть такой тип заказчиков, выставляющих неадекватно высокие требования и чтобы было только так как они хотят.

Клиент, как я понимаю, не хочет FatFS, боится износа, но все-таки хочет FAT.
Для реализации варианта "волки сыты и овцы целы", можно предложить сделать "подкладку" под FatFS, занимающуюся кэшированием и буферизацией записи на уровне секторов.
Go to the top of the page
 
+Quote Post

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

 


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


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