Цитата(CrimsonPig @ Oct 20 2015, 17:10)

- никто не знает (и все может поменяться в любой версии софта), как реализованы высокоуровневые функции над файловой системой (fprintf и им подобные). Как они кешируют данные для записи\чтения и когда решают эти кеши скинуть в файловую систему. Никаких гаранитий по времянкам тут нет.
Вообще говоря, fprintf - штука довольно очевидная. Легко изучается, легко подменяется на свой велосипед. Времянки по ней посчитать тоже очень легко (хочешь в тактах, хочешь - осциллографом), и они достаточно стабильные. Разговор "всё может САМО поменяться" вообще ни о чём, с чуть меньшей вероятностью Земля завтра налетит на небесную ось.
А вот ST'шная библиотека хоста - штука довольно странная. Изучать её можно долго, там наверчено хрен знает что. Можно ли это как-то значительно оптимизировать - не знаю... Бесплатных аналогов этой библиотеки не знаю. Хороших платных - тоже не знаю (в прошлой конторе работали с венграми HCC - тоже есть нарекания, но теперь ещё и за деньги; поддержка не очень помогает).
Если не поможет добавление буферов (и запись данных не по одному байту!) - открывается большой простор для творчества и костылестроения. Можно, например, свой драйвер FAT сделать, который будет писать в заранее подготовленный файл - количество записей уменьшится вдвое, не нужно будет обновлять запись FAT.
Цитата(XWoo @ Oct 21 2015, 08:56)

Ещё говорят, что usb-драйвер/библиотека/протокол (вся эта программная реализация usb) "съедает" много времени у ядра (и ресурсоёмкая), поэтому рекомендуют ставить самый высокий приоритет usb-прерыванию (0 или 1) соотвествующей функцией при инициализации.
Нет, после всех предварительных действий там просто перекладывание данных из памяти в регистры USB.
Правда, действительно, хост неадекватно себя ведёт, если приоритет прерывания достаточно низкий. Кто виноват, понять не удалось.
Цитата(XWoo @ Oct 21 2015, 08:56)

При использовании usb из-под куба тут на форумах где-то говорили, что эта rtx автоматом подключается в код без ведома программиста (это нужно для работы самого usb и всего с ним связанного, именно при применении куба).
Не читайте советских газет!
Куб, конечно, много чего "без ведома" творит, но не настолько же.
Кстати, куб в принципе не может работать под ОС (точнее, корректно обрабатывать обращения к одной и той же периферии из нескольких потоков).
Хотя может уже и поправили это безобразие:
stm32f1xx_hal_def.h
Код
#if (USE_RTOS == 1)
#error " USE_RTOS should be 0 in the current HAL release "
#else