AlexandrY (21.08.2006 13:23, просмотров: 1) ответил Evgeny_CD на Грамотно!
Можно и так. printf в RealView реентерабельный сам по себе, можно вызывать из разных задач .
В программном модуле который делает retargeting (т.е. переопределяет набор низкоуровневых функций) перехватываются данные идущие в файл(поток) STDOUT и направляются например в endpoint USB контроллера через очередь сообщений.
Я могу либо динамически переопределять куда идут данные файла(потока) STDOUT или создать для других коммуникационных каналов свои стандартные потоки (например для принтера STDPRN) и использовать fprintf вместо printf.
Стандартные потоки и их идентификаторы не пересекаются с файловой ситемой использующней fprintf сделаной на FLASH именно благодаря retrgeting-у.
А semihosting работает по умолчанию в RealView если не делать retargeting и посылает данные printf в DCC канал ARM-а и дальше по JTAG в PC. Но Keil с ним криво работает, так что я больше сказать ничего не могу.