Нет никакой ОС. Есть пример MassStorage, где весь код работает в прерывании.
Есть SD card, для которого реализованы синхронные запись и чтение блока
Есть UART - в интеррапте берутся полученные байты и складываются в буфер
И есть цикл, который смотрит - не пришло ли что-то из UARTа, и если пришло - то обрабатывает. Когда накопится достаточно информации - записывает данные на карту, используя FatFS
Затык происходит во время инициализации USB. Похоже, что если устройство замешкается и не обработает вовремя пакет от хоста - то происходит сбой. А точнее поймать ничего не могу.