У меня есть плата на базе LPC1768 - LandTiger (стоит проверить руководство внизу) . Для его программирования я использую Keil uVision4 / 72 Lite и J-Link EDU от Segger. Моя простая программа для взаимодействия с джойстиком и диодами работает нормально, но ...
Я пытаюсь реализовать отладку printf, поэтому я могу видеть вывод printf в окне Keil Debug (printf) Viewer. Проблема в том, что я не вижу никаких выходных данных - я думаю, что я на правильном пути, потому что, когда я запускаю отладчик, я вижу Trace: Running в нижней части окна (до того, как это было Trace: Без синхронизации). К сожалению, я ничего не вижу в окнах вывода UART и Debug.
Я потратил довольно много времени, пытаясь заставить его работать, и был бы признателен за любую помощь, спасибо;)
Мои настройки Keil:
Project / Options for Target / Debug установлен на J-Link / J-Trace Cortex.
Затем в его настройках я выбрал SEGGER с Порт: SW и МАКСИМАЛЬНЫЕ ЧАСЫ: 10 МГц.
Вкладка "Трассировка" активна с частотой ядра 100 МГц и предварительным масштабированием SWO = 17 (что дает тактовая частота SWO 5,882352 МГц). .
Порты стимула ITM установлены на Включить: 0xFFFFFFFF и Привилегии: 0x0000000F.
Вот части моего кода:
определить FOSC 12000000
определить FCCLK (FOSC * 8)
определить FCCO (FCCLK * 3)
определить FPCLK (FCCLK / 4)
определить UART0_BPS 115200
void UART0_Init (недействительно)
{
uint16_t usFdiv;
/ * UART0 * /
LPC_PINCON- ›PINSEL0 | = (1 ‹---------------- 4); / * Вывод P0.2 используется как TXD0 (Com0) * /
LPC_PINCON- ›PINSEL0 | = (1 ‹---------------- 6); / * Вывод P0.3 используется как RXD0 (Com0) * /
LPC_UART0- ›LCR = 0x83;
usFdiv = (FPCLK / 16) / UART0_BPS;
LPC_UART0- ›DLM = usFdiv / 256;
LPC_UART0- ›DLL = usFdiv% 256;
LPC_UART0- ›LCR = 0x03;
LPC_UART0- ›FCR = 0x06;
}
Код отправки:
int UART0_SendByte (int ucData)
{
while (! (LPC_UART0- ›LSR & 0x20)) {};
возврат (LPC_UART0- ›THR = ucData);
}
И мой fputc для printf (он называется - проверил)
интервал fputc (интервал c, ФАЙЛ * f)
{
if (c == '\n') {
UART0_SendByte ('\ r');
}
возврат (UART0_SendByte (c));
}
Любые идеи?
С Уважением!
printf
отправляет данные в IDE отладчика через порт отладки (JLink в вашем случае). Итак, либо выprintf
и не отменяетеfputc
, и ожидаете вывода в окне отладки, либо вы отправляете в UART, подключаете RS232 к ПК и видите его на гипертерминале или что-то в этом роде. Я, наверное, что-то упускаю. - person Balau   schedule 04.09.2013