|
Разрушение FAT (в FatFs) |
|
|
|
Feb 10 2016, 15:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Странно ведет себя один приорчик на F407, FatFs R0.09, 2011г. Пишется стрим на флешку, примерно гигабайт в час. Запись разбита на "1 файл = пол часа". Т.е. пол часа пишется в tmp файл, потом он переименовывается в реальное имя с номером, и дальше опять пишется в tmp файл. Между файлами делается unmount/mount, проовали даже питание флешки выключать/ и включать снова. И все как бы было ОК, пока мы писали свой стрим по часу-два. Все работало идеально, флешки в основном исползовали 2-4ГБ, иноогда 8ГБ
А когда попробовали писать подольше да на флешках 8-16ГБ - видим проблему, появляющуюся примерно через 5-6 часов. Девайс продолжает писать, но если его остановить, то флешка уже не читается, фат разрушена, в итоге -> ее под format.
Все вызываемые функции FatFs - с проверкой, что FR_ОК возвращается если нет - сообщение на дисплей. И там ничего! Девайс может 10-14 часов писать (на 16ГБ флешку), потом его останавливешь - и всё, выяснить когда чего произошло уже не получается. У нас с напарником (код исходной мой, 4-х летней давности, но сейчас он с этим девайсом возится) уже все мысли кончились, не только по тому как найти баг, но и вобще в каком направлении поисков двигаться! Ну разве что, попробовать поставить послеледнюю версию FatFs?
Ну не может же такого быть, чтобы если по какой-то причине слетел фат, что при этом все функции f_open, f_close, f_write, f_rename, f_mount возвращают FR_OK?!
Ни у кого небыло ничего подобного? Или мож кто чего умного подскажет, как дальше искать?
|
|
|
|
|
 |
Ответов
|
Feb 12 2016, 12:21
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Все-таки попробуйте логическим анализатором, подключив его ко всем линиям SD-карты. Понимаю, что объем данных огромен и главная проблема синхронизироваться с моментом когда произошел сбой, но можно попробовать увидеть разницу в диагамме между участками "работает" и "не работает". Автоматическое декодирование SPI в байты сам использую (на Saleae logic analyzer), но вот SDIO в данные он вроде бы напрямую не умеет, нужно в интернете посмотреть как (есть какие-то софтовые проекты-примочки к нему дополнительные)
Так удалось выяснить, что именно портится на флешке? статистику результатов набрали? Например, один и тот же кластер, или один и тот же номер сектора в кластере или та же страница(сектор) таблицы FAT.
Проанализируйте что именно сбивается и попробуйте эту ситуацию детектировать проверками. Скорее всего сбой в FAT, можно хоть раз в пару секунд проверять его целостность. Кстати, в FAT можно увеличить число копий таблицы FAT на диске, можно их использовать для проверок валидности.
|
|
|
|
Сообщений в этой теме
Allregia Разрушение FAT (в FatFs) Feb 10 2016, 15:53 Ruslan1 Цитата(Allregia @ Feb 10 2016, 17:53) Ни ... Feb 10 2016, 21:01 Allregia Цитата(Ruslan1 @ Feb 10 2016, 22:01) 0. п... Feb 11 2016, 15:59  mantech Цитата(Allregia @ Feb 11 2016, 18:59) 2: ... Feb 11 2016, 21:00   Allregia Цитата(mantech @ Feb 11 2016, 22:00) Попр... Feb 12 2016, 08:20    Alechek Цитата(Allregia @ Feb 12 2016, 13:20) ЧЕМ... Feb 12 2016, 09:23     Allregia Цитата(Alechek @ Feb 12 2016, 10:23) Маги... Feb 12 2016, 11:18 e-serg Цитата(Allregia @ Feb 11 2016, 00:53) Или... Feb 11 2016, 02:37 редактор ЦитатаЧЕМ через 5 часов, "ЭТО", отличает... Feb 12 2016, 12:33 Alechek Цитата(редактор @ Feb 12 2016, 17:33) тем... Feb 12 2016, 12:35 KnightIgor Цитата(редактор @ Feb 12 2016, 13:33) тем... Feb 15 2016, 11:41  Allregia Коллеги, большое спасибо за продолжение обсуждения... Feb 22 2016, 18:21   aaarrr Цитата(Allregia @ Feb 22 2016, 21:21) Наш... Feb 22 2016, 19:00    Allregia Цитата(aaarrr @ Feb 22 2016, 20:00) Попро... Feb 23 2016, 17:58 редактор ЦитатаУвеличить частоту системного времени?
Для на... Feb 15 2016, 08:54 Alechek Проверяется флешка другими средствами : h2testw Feb 25 2016, 10:12 khach Если на плате есть кроме карnы большая SPI флеш-па... Feb 25 2016, 11:55 Сергей Борщ Мне кажется aaarrr правильно угадал - 4Гб это огра... Feb 25 2016, 12:07 khach Цитата(Сергей Борщ @ Feb 25 2016, 15:07) ... Feb 25 2016, 13:52  mantech Цитата(khach @ Feb 25 2016, 16:52) А вот ... Feb 25 2016, 17:56 Allregia Я даже не сомневаюсь, что проблема не в FatFs а в ... Feb 25 2016, 20:33 alexen Allregia
Если у вас используется пример от ST с фа... Mar 12 2016, 00:40 lleeloo Есть предположение, что в какой-то части кода есть... Mar 13 2016, 20:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|