|
Разрушение 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:33
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315

|
Цитата ЧЕМ через 5 часов, "ЭТО", отличается от самого первого включения тем что системное время насчитало 5 часов работы - может сбой в отсчете времени и как следствие проблемы с файлами?
--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
|
|
|
|
|
Feb 15 2016, 11:41
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(редактор @ Feb 12 2016, 13:33)  тем что системное время насчитало 5 часов работы - может сбой в отсчете времени и как следствие проблемы с файлами? Эту тему я поддержу. Насколько мне помнится, в FatFS есть циклы и таймауты в них. Последние должны реализовываться так, чтобы можно было прервать эти циклы, то есть, работать от прерываний и модифицировать флаги/переменные, анализируемые в циклах внутри FatFS. Например, в моей системе, которая есть синхронная round robin по типу protothreads, я вынужден был ответвиться от обработчика SystemTick, чтобы модифицировать то, что нужно для FatFS. Как раскрыта тема в системе у ТС? Может срабатывает какой-то таймаут раньше времени, потому что, например, 5 часов это 18000 секунд, а это около 16K, а если в 10мс тиках, то это 18мио тиков, что есть около 24-битного числа (а SysTick - это 24 бита). Это я выдаю нагорА всякий бред, но может что войдет в резонанс в голове у ТС...
|
|
|
|
Сообщений в этой теме
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 ViKo Попробуйте записывать намного чаще. Наверное, дожд... Feb 12 2016, 11:41 Ruslan1 Все-таки попробуйте логическим анализатором, подкл... Feb 12 2016, 12:21 Alechek Цитата(редактор @ Feb 12 2016, 17:33) тем... Feb 12 2016, 12:35  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
|
|
|