Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FATFS, удаление файла
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
esaulenka
Имеем систему:
STM32
ST'шный USB стек
FatFs 0.09 / 0.10 (пробовали обе).

Сия система замечательно читает файлы с USB-флешки, и так же замечательно их дописывает. Файловая система - FAT32 (честно говоря, затрудняюсь сказать, проверяли ли на FAT16).

Но при попытке сделать f_truncate() или f_unlink() почему-то портится FAT. Судя по тому, что запись файлов работает (в т.ч. в десятки мегабайт), с FAT'ом оно работает всё-таки правильно.

Кто-нибудь сталкивался с таким?

Детально проблему пока не исследовал, руки не дошли. А высокоуровневому программисту, который эти f_truncate() дёргает, не до изучения дампов FAT'а - у него своих проблем предостаточно.
Tarbal
Цитата(esaulenka @ Nov 13 2013, 21:33) *
Имеем систему:
STM32
ST'шный USB стек
FatFs 0.09 / 0.10 (пробовали обе).

Сия система замечательно читает файлы с USB-флешки, и так же замечательно их дописывает. Файловая система - FAT32 (честно говоря, затрудняюсь сказать, проверяли ли на FAT16).

Но при попытке сделать f_truncate() или f_unlink() почему-то портится FAT. Судя по тому, что запись файлов работает (в т.ч. в десятки мегабайт), с FAT'ом оно работает всё-таки правильно.

Кто-нибудь сталкивался с таким?

Детально проблему пока не исследовал, руки не дошли. А высокоуровневому программисту, который эти f_truncate() дёргает, не до изучения дампов FAT'а - у него своих проблем предостаточно.

Были под ДОС еще Нортон ютилитис. Там был диск доктор, который искал проблемы ФАТ партишна и чинил их. Поищите что-нибудь подобное. Если мне надо было бы решать подобную задачу, то я бы взял образы диска (достаточно начала: две таблицы ФАТ и структуру директории) до и после удаления и сравнил бы их при помощи Beyond Compare.
По результатам проверки смотрел бы как быть дальше. Кстати можно сделать маленький партишн и пробовать на нем. Тан все будет маленькое.
haker_fox
QUOTE (esaulenka @ Nov 14 2013, 02:33) *
Но при попытке сделать f_truncate() или f_unlink() почему-то портится FAT.

У меня f_unlink работает. Как на юсб-флешке, так и на дата-флеше.
Может быть у вас дело в драйверах? Они 100% работают правильно?
Вообще фатфс зарекомендовала себя как надёжная система во всём мире, хотя и не без косяков и неоднозначностей. Но явных багов там вроде пока нет rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.