1. 程式人生 > >在Keil環境下使用JLink實現printf輸出重定向至debug視窗

在Keil環境下使用JLink實現printf輸出重定向至debug視窗

在工程裡面新增下列程式碼:
#include <stdio.h>

#define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n)))
#define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0000000+4*n)))
#define ITM_Port32(n)   (*((volatile unsigned long *)(0xE0000000+4*n)))
#define DEMCR           (*((volatile unsigned long *)(0xE000EDFC)))
#define TRCENA          0x01000000


//半主機模式必須定義這個
struct __FILE
{
    int handle;
};
FILE __stdout;
FILE __stdin;

int fputc(int ch, FILE *f)
{
    if (DEMCR & TRCENA)
    {
        while (ITM_Port32(0) == 0);

        ITM_Port8(0) = ch;
    }
    return(ch);
}
點選JLink的除錯設定對話方塊,Trace頁面,如下圖設定即可:


原始文章:

 http://www.keil.com/support/man/docs/jlink/jlink_trace_itm_viewer.htm