Доброго времени суток, коллеги. Наблюдаю следующую вещь. В цикле идёт периодическая запись одного байта в файл. Данные пишутся без проблем. Но если поставить для отладки светодиод в этот цикл, то по осциллограмме получается следующее: несколько раз светодиод моргает с одинаковой задержкой, а один раз эта задержка в несколько раз увеличивается. Задержка получается именно в функции записи в файл (f_printf или f_puts). Если закомментировать эту функцию, то моргание светодиода становится равномерным! Пробовал писать массив размером 64,128,256,512,1024,2048,4096 байт - ничего не меняется. Я использую кейл и библиотеку stm32cubef2. В ней есть пример с использованием usbhost и файловой системы fatfs (от chanа) для записи/чтения строки в файл на usb-флэшку. Я заменил fatfs на последнюю версию с сайта автора - всё повторяется. Пробовал работать с разными флэшками на 4 и 8 Гбайт - задержка всё равно есть. Есть ли решение этой проблемки? Как с этим бороться? Можно ли это задержку убрать или хотябы уменьшить?
По времени получалось следующее: несколько раз, например, задержка в функции записи была 50 мс, а потом один раз становится 500 мс. Может это такая особенность библиотеки, драйверов или самой fatfs ?
Сообщение отредактировал XWoo - Oct 20 2015, 14:08
|