aaarrr 69 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Нашими усилиями было выяснено, что сбой происходит тогда, когда СУММАРНЫЙ обьем файлов перезодит через границу 4Гб. Попробуйте на нижнем уровне записать сектор с адресом 4Гб, не перезапишется ли на самом деле нулевой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 23 февраля, 2016 Опубликовано 23 февраля, 2016 · Жалоба Попробуйте на нижнем уровне записать сектор с адресом 4Гб, не перезапишется ли на самом деле нулевой? Попробую. Но пока все еще чудесатее - я попробовал 16гб карточку форматнуть в устройстве, средствами FatFs - она ее на 3 гига форматнула! Я потом на компе с геморроем ее восстановил! Сама флешка нормальная, не с али :) Да и проверил я ее, на всякий случай - записал 6 фильмов по полтора гига, все работают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Проверяется флешка другими средствами : h2testw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 43 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Если на плате есть кроме карnы большая SPI флеш-память, я быписал туда весь лог вызовов FatFs ил отправлял бы лог на хост. Скорее всего где то переполнение или знаковое- беззнаковое сравнение. А как портится содержимео фата? Вычитать WinHex порченую катрочку на физическом уровне и посмотреть где и что напорчено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Мне кажется aaarrr правильно угадал - 4Гб это ограничение 32-битного целого. Где-то на нижнем уровне для адреса использовано 32-битное целое вместо 64-битного, после 4 Гб новые данные затирают таблицу разделов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 43 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба после 4 Гб новые данные затирают таблицу разделов. Ну это легко проверить, если писать данные с номером сектора внутри. Тольк по идее в MBR, и в копии таблиц фатов оно писать данные не будет, т.к это слишком тривиальная ошибка. Кстати, таблицы ФАТ кешированы ли и сбрасывались ли кеши после записи каждого файла? А вот если перетерло MBR, то это почти точно не ошибка в FatFS, а в драйвере доступа к карте на уровне железа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба А вот если перетерло MBR, то это почти точно не ошибка в FatFS, а в драйвере доступа к карте на уровне железа. Тоже довольно спорный вопрос, во первых, не видел еще ни одного драйвера карты, где LBA не 32х битное число, а даже, если оно вдруг 24х битное, то все равно проблема должна была быть на 8м гиге, а не на 4м... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Я даже не сомневаюсь, что проблема не в 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexen 0 12 марта, 2016 Опубликовано 12 марта, 2016 · Жалоба Allregia Если у вас используется пример от ST с файлом stm324xg_eval_sdio_sd.c от 30.09.2011, то там ошибка в расчете адреса. Проверьте функции SD_ReadBlock, SD_ReadMultiBlocks, SD_WriteBlock, SD_WriteMultiBlocks. Тоже однажды столкнулся с таким поведением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lleeloo 0 13 марта, 2016 Опубликовано 13 марта, 2016 · Жалоба Есть предположение, что в какой-то части кода есть место, где проверяется тип карты - HC или обычная SC. В одном из случаев (карта SC) происходит домножение адреса на 512. Если переменная 32 бита, то может происходить переполнение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться