Спасибо. Там ещё вариант просматривается, но надо разобраться ещё с
какими ключами либа в проекте используется: там и буфера есть, и
флаги, и... А для консоли достаточно *flush* реализовать, который
дёргается только когда в буфере место закончилось( его в свой
переписать и в фоне выводить в uart). С одной стороны понятно
обусловленность сложности: куча архитектур, платформ от железок до
вполне ОС, поддержка всего зоопарка. Разной сложности форматы
строк, расурсы и возможности железа. Почему не сделать "общий знаменатель" и описать его внятно? Пока так: либо вызовы системные реализовывать, либо перехватить посредине что-то вроде <i>int __swbuf_r(struct _reent * reent, int ch, FILE *fd)</i>