Я использую связку Keil + RL-RTX (подобие RTOS от того же Keil), на базе NXP (LPC17xx).
Взял простейший пример RTX_ex1 и пытаюсь его запустить (пока что в симуляторе).
Возник очень непонятный вопрос. Я хочу поместить в свою программу отладочные сообщения, выдаваемые по UART. Но, если я подключаю к примеру stdio.h и ставлю где-то нечто вроде
printf("Hello world!\n");
то после попадания на эту строчку программа улетает в непонятное место в коде. В форумах читал, что вроде как нужно переопределять стандартные функции ввода-вывода в файле retarget.c, но как это сделать - непонятно. И зачем? Понимаю, что надо, но как работает механизм - непонятно.
Помогите пожалуйста, разобраться, что нужно сделать и как это вообще должно работать. Чувствую что все это достаточно несложно, но в концепцию не врубаюсь

Второй вопрос: вроде бы можно сделать вывод отладочных сообщений прямо через JTAG (т.к. в Keil MDK присутствует окно View->Serial Windows->Debug (printf) Viewer. Так ли это? И как это использовать? В чем различие в использовании по сравнению с использованием UART?
Всем заранее спасибо!
P.S. документ RL-ARM Real-Time Library User's Guide by Keil, к сожалению скуп, на объяснения по этим вопросам.