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

 
 
> Надежность 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
 
Start new topic
Ответов
_3m
сообщение Dec 13 2015, 21:09
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(Darti @ Dec 12 2015, 19:32) *
Сейчас попался заказчик, который стал в позу, мол юзать либу не православно, при этом в винде карта памяти должна обнаруживаться как обычный съемный диск, без дополнительного софта, т.е. фат эмулировать нужно.
В качестве аргументов против: энергопотребление с либой выше, чем посекторное.

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

Информация заказчика верная. При перезаписи в один и тот же сектор после NNN перезаписей однократно в десятки раз возрастает время записи. Предположительно в этот момент контроллер карты обнаруживает несовпадение записанной информации из-за износа флэш и выполняет автоматическую замену сектора на резервный. Если продолжать перезапись того же сектора частота явления увеличивается вплоть до нереалных тормозов (в итоге "убитая" карта виснет при попытке записи). Перед заменой замечен рост времени чтения сектора. В точности данный эффект прогнозировать невозможно так как нет информаии об алгоритме работы контроллера карты. Проверял лично специальными тестами на "убой" сектора и карты. Я проводил тесты давно тогда еще была только slc флэш. Современные карты все на mlc флэш для них NNN превратятся в NN раз.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 14 2015, 05:43
Сообщение #3


Ally
******

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



Цитата(_3m @ Dec 13 2015, 23:09) *
Про энергопотребление бред.

Информация заказчика верная. При перезаписи в один и тот же сектор после NNN перезаписей однократно в десятки раз возрастает время записи. Предположительно в этот момент контроллер карты обнаруживает несовпадение записанной информации из-за износа флэш и выполняет автоматическую замену сектора на резервный. Если продолжать перезапись того же сектора частота явления увеличивается вплоть до нереалных тормозов (в итоге "убитая" карта виснет при попытке записи). Перед заменой замечен рост времени чтения сектора. В точности данный эффект прогнозировать невозможно так как нет информаии об алгоритме работы контроллера карты. Проверял лично специальными тестами на "убой" сектора и карты. Я проводил тесты давно тогда еще была только slc флэш. Современные карты все на mlc флэш для них NNN превратятся в NN раз.


Так запоминать надо было в цифрах что такое "увеличивается вплоть до нереальных тормозов" с графиками и гистограммами, а так просто сотрясение воздуха и очередной миф.

А пока рекомендация такая: поблочным чтением идентифицировать на карте размер стираемого сектора (allocation unit, AU).
Определить зону с алгоритмом блочного перераспределения памяти. Следить чтобы FAT оказался точно в этой зоне.
Также проконтролировать чтобы границы кластеров совпадали с границами AU.
А лучше взять файловую от Micrium, там есть специальное форматирование для SD карт.
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 14 2015, 06:48
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(AlexandrY @ Dec 14 2015, 08:43) *
Так запоминать надо было в цифрах что такое "увеличивается вплоть до нереальных тормозов" с графиками и гистограммами, а так просто сотрясение воздуха и очередной миф.

Мистер AlexandrY вы мне не работодатель чтобы требовать графики и гистограммы. Не нравится информация - игнорируйте. На работе после исследований поведения карты на "убой" были цифры и графики из которых были сделаны надлежащие выводы (исследования проводились чтобы определить максимальное время записи).
Нереальные тормоза это пытаемся записать - получаем зависание карты, при этом чтение работает.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 14 2015, 07:52
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 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

Сообщений в этой теме
- Darti   Надежность FAT   Dec 12 2015, 16:32
- - mantech   Цитата(Darti @ Dec 12 2015, 19:32) Часто ...   Dec 12 2015, 17:33
- - aaarrr   Цитата(Darti @ Dec 12 2015, 19:32) Мол 10...   Dec 12 2015, 17:36
|- - mantech   Цитата(aaarrr @ Dec 12 2015, 20:36) что е...   Dec 12 2015, 18:09
- - Непомнящий Евгений   Ну если заказчик оплатит вам написание и отладку с...   Dec 13 2015, 12:29
- - AlexandrY   Цитата(Darti @ Dec 12 2015, 18:32) Вопрос...   Dec 13 2015, 13:40
- - controller_m30   Цитата(Darti @ Dec 12 2015, 19:32) Мол 10...   Dec 13 2015, 15:12
|- - AlexandrY   Цитата(controller_m30 @ Dec 13 2015, 17:1...   Dec 13 2015, 17:57
|- - controller_m30   Цитата(AlexandrY @ Dec 13 2015, 20:57) Но...   Dec 13 2015, 19:39
|- - AlexandrY   Цитата(controller_m30 @ Dec 13 2015, 21:3...   Dec 13 2015, 19:53
|- - controller_m30   Цитата(AlexandrY @ Dec 13 2015, 22:53) Зн...   Dec 13 2015, 20:20
- - romas2010   Цитата(Darti @ Dec 12 2015, 19:32) Всегда...   Dec 13 2015, 19:50
|- - AlexandrY   Цитата(_3m @ Dec 14 2015, 08:48) Нереальн...   Dec 14 2015, 06:56
|- - aaarrr   Цитата(mantech @ Dec 14 2015, 10:52) Уж п...   Dec 14 2015, 09:44
- - Genadi Zawidowski   Цитатаstatic Wear Leveling. Это можно узнать по ка...   Dec 14 2015, 09:31
- - AlexandrY   Цитата(Genadi Zawidowski @ Dec 14 2015, 11...   Dec 14 2015, 10:08
- - Genadi Zawidowski   Так скажите где описано.   Dec 14 2015, 11:06
- - AlexandrY   Цитата(Genadi Zawidowski @ Dec 14 2015, 13...   Dec 14 2015, 13:44
- - jcxz   Прочитал исходное сообщение и не понял - откуда от...   Dec 15 2015, 12:05
- - mantech   Цитата(jcxz @ Dec 15 2015, 15:05) может л...   Dec 15 2015, 14:11
|- - jcxz   Цитата(mantech @ Dec 15 2015, 20:11) Ну х...   Dec 15 2015, 18:01
|- - aaarrr   Цитата(jcxz @ Dec 15 2015, 21:01) Конечно...   Dec 15 2015, 18:08
|- - jcxz   Цитата(aaarrr @ Dec 16 2015, 00:08) В пер...   Dec 15 2015, 18:14
|- - aaarrr   Цитата(jcxz @ Dec 15 2015, 21:14) Есть та...   Dec 15 2015, 18:43
- - aaarrr   Цитата(jcxz @ Dec 15 2015, 15:05) Прочита...   Dec 15 2015, 14:32


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

 


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


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