Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335
Добрый день, Господа!
Пишу на АРМ под Си. Работаю с SD-картой и файловой системой FAT. Задача подразумевает запись файлов большого размера 1ГБ и более до 2ГБ. Существует проблема, что если при записи файла произойдет сбой (выключение питания и т.д) до закрытия файла, все данные потеряются. Каким-нибудь образом можно решить задачу, например закрыть файл после очередного цикла записи, а потом заново открыть и дописать? Нашел функцию f_sync, которая как бы подобна функции f_close, но при этом файл можно дозаписывать, но f_sync работает ужасно медленно. В цикле без f_sync запись происходит на скорости 20Mbit/s, а с ней скорость падает на порядок. Как можно решить эту проблему?
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861
Большие блоки, это больше сектора. Судя, по всему, у Вас это выполняется. Блоки именно 32 К или примерно? Я к тому, чтобы попробовать писать по смещениям кратным 512, тогда ФС не придется подгружать блок с носителя, потом изменять и писать обратно.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.