Перейти к содержанию
    

Нашими усилиями было выяснено, что сбой происходит тогда, когда СУММАРНЫЙ обьем файлов перезодит через границу 4Гб.

Попробуйте на нижнем уровне записать сектор с адресом 4Гб, не перезапишется ли на самом деле нулевой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте на нижнем уровне записать сектор с адресом 4Гб, не перезапишется ли на самом деле нулевой?

 

Попробую.

Но пока все еще чудесатее - я попробовал 16гб карточку форматнуть в устройстве, средствами FatFs - она ее на 3 гига форматнула!

Я потом на компе с геморроем ее восстановил!

Сама флешка нормальная, не с али :)

Да и проверил я ее, на всякий случай - записал 6 фильмов по полтора гига, все работают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если на плате есть кроме карnы большая SPI флеш-память, я быписал туда весь лог вызовов FatFs ил отправлял бы лог на хост. Скорее всего где то переполнение или знаковое- беззнаковое сравнение.

А как портится содержимео фата? Вычитать WinHex порченую катрочку на физическом уровне и посмотреть где и что напорчено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется aaarrr правильно угадал - 4Гб это ограничение 32-битного целого. Где-то на нижнем уровне для адреса использовано 32-битное целое вместо 64-битного, после 4 Гб новые данные затирают таблицу разделов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

после 4 Гб новые данные затирают таблицу разделов.

Ну это легко проверить, если писать данные с номером сектора внутри. Тольк по идее в MBR, и в копии таблиц фатов оно писать данные не будет, т.к это слишком тривиальная ошибка. Кстати, таблицы ФАТ кешированы ли и сбрасывались ли кеши после записи каждого файла?

А вот если перетерло MBR, то это почти точно не ошибка в FatFS, а в драйвере доступа к карте на уровне железа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот если перетерло MBR, то это почти точно не ошибка в FatFS, а в драйвере доступа к карте на уровне железа.

 

Тоже довольно спорный вопрос, во первых, не видел еще ни одного драйвера карты, где LBA не 32х битное число, а даже, если оно вдруг 24х битное, то все равно проблема должна была быть на 8м гиге, а не на 4м...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я даже не сомневаюсь, что проблема не в FatFs а в драйвере, но он родной от ST, правда старый, 2011-го года, но какая разница, должен же был работать?

 

По заданным вопросам:

- я проверю флешку h2testw, но на 300% уверен что она не фейковая.

- затирается с 0-го сектора.

 

К сожеланию нет возможности заниматься этой проблемой все время, только "в фоновом режиме" от более важных задач. Пока используем 4гб карточки, на всякий случай.

 

Тест показал:

Warning: Only 15271 of 15272 MByte tested.

Test finished without errors.

You can now delete the test files *.h2w or verify them again.

Writing speed: 33.9 MByte/s

Reading speed: 57.2 MByte/s

H2testw v1.4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Allregia

Если у вас используется пример от ST с файлом stm324xg_eval_sdio_sd.c от 30.09.2011, то там ошибка в расчете адреса. Проверьте функции SD_ReadBlock, SD_ReadMultiBlocks, SD_WriteBlock, SD_WriteMultiBlocks. Тоже однажды столкнулся с таким поведением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть предположение, что в какой-то части кода есть место, где проверяется тип карты - HC или обычная SC. В одном из случаев (карта SC) происходит домножение адреса на 512. Если переменная 32 бита, то может происходить переполнение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...