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

FATFS, удаление файла

Имеем систему:

STM32

ST'шный USB стек

FatFs 0.09 / 0.10 (пробовали обе).

 

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

 

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

 

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

 

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

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


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

Имеем систему:

STM32

ST'шный USB стек

FatFs 0.09 / 0.10 (пробовали обе).

 

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

 

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

 

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

 

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

Были под ДОС еще Нортон ютилитис. Там был диск доктор, который искал проблемы ФАТ партишна и чинил их. Поищите что-нибудь подобное. Если мне надо было бы решать подобную задачу, то я бы взял образы диска (достаточно начала: две таблицы ФАТ и структуру директории) до и после удаления и сравнил бы их при помощи Beyond Compare.

По результатам проверки смотрел бы как быть дальше. Кстати можно сделать маленький партишн и пробовать на нем. Тан все будет маленькое.

Изменено пользователем Tarbal

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


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

Но при попытке сделать f_truncate() или f_unlink() почему-то портится FAT.

У меня f_unlink работает. Как на юсб-флешке, так и на дата-флеше.

Может быть у вас дело в драйверах? Они 100% работают правильно?

Вообще фатфс зарекомендовала себя как надёжная система во всём мире, хотя и не без косяков и неоднозначностей. Но явных багов там вроде пока нет :rolleyes:

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


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

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

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

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

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

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

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

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

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

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