Цитата(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.
По результатам проверки смотрел бы как быть дальше. Кстати можно сделать маленький партишн и пробовать на нем. Тан все будет маленькое.
Сообщение отредактировал Tarbal - Nov 14 2013, 02:04