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

|
Цитата(aaarrr @ Feb 22 2016, 20:00)  Попробуйте на нижнем уровне записать сектор с адресом 4Гб, не перезапишется ли на самом деле нулевой? Попробую. Но пока все еще чудесатее - я попробовал 16гб карточку форматнуть в устройстве, средствами FatFs - она ее на 3 гига форматнула! Я потом на компе с геморроем ее восстановил! Сама флешка нормальная, не с али  Да и проверил я ее, на всякий случай - записал 6 фильмов по полтора гига, все работают.
|
|
|
|
|
Feb 25 2016, 17:56
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(khach @ Feb 25 2016, 16:52)  А вот если перетерло MBR, то это почти точно не ошибка в FatFS, а в драйвере доступа к карте на уровне железа. Тоже довольно спорный вопрос, во первых, не видел еще ни одного драйвера карты, где LBA не 32х битное число, а даже, если оно вдруг 24х битное, то все равно проблема должна была быть на 8м гиге, а не на 4м...
|
|
|
|
|
Feb 25 2016, 20:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Я даже не сомневаюсь, что проблема не в 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
|
|
|
|
|
Mar 12 2016, 00:40
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 20-10-11
Из: С-Пб
Пользователь №: 67 865

|
Allregia Если у вас используется пример от ST с файлом stm324xg_eval_sdio_sd.c от 30.09.2011, то там ошибка в расчете адреса. Проверьте функции SD_ReadBlock, SD_ReadMultiBlocks, SD_WriteBlock, SD_WriteMultiBlocks. Тоже однажды столкнулся с таким поведением.
|
|
|
|
|
Mar 13 2016, 20:26
|
Группа: Участник
Сообщений: 11
Регистрация: 22-03-13
Пользователь №: 76 154

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