feiante-155820 发表于 2014-3-29 21:51:22

【MCU实战经验】+通过JLINK实现串口显示调试

 首先声明,这个技巧是从网上找到的,并非本人原创。
我们在调试的时候,经常会需要使用到printf指令,通过串口调试工具来查看变量的值,如果是单步或在线调试时,就需要连接JLINK和串口线,对于笔记本,现在都是需要USB转串口,使用起来比较麻烦。
经过在网上搜索,发现一个好的方法,就是只用JLINK一根线,就可以既在线调试程序,同时也可以查看printf显示的数据,方法如下:
首先,建立一个.c 的文件,内容如下:
 
#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; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;
 
int fputc(int ch, FILE *f)
{
    if (DEMCR & TRCENA)
    {
        while (ITM_Port32(0) == 0);
        ITM_Port8(0) = ch;
    }
    return ch;
}
然后在配置里面(Options for Target)选择调试工具为J-LINK/J-TRACE Cortex,点击Settings,选择Trace选项,使能Trace,时钟选择实际时钟,比如我是72MHz,在ITM Stimulus Ports只勾选Port0,。
最后,点击仿真,选择View---serial windows----debug viewer就可以像在串口调试工具里面一样显示了。

stm32f107 发表于 2014-4-15 20:25:44

RE:【MCU实战经验】+通过JLINK实现串口显示调试

看看萨!:P

stm32f107 发表于 2014-4-15 20:29:22

RE:【MCU实战经验】+通过JLINK实现串口显示调试

看看萨!:P

stm32f107 发表于 2014-4-15 20:29:31

RE:【MCU实战经验】+通过JLINK实现串口显示调试

看看萨!:P

xxqforum 发表于 2014-4-15 22:12:22

回复:【MCU实战经验】+通过JLINK实现串口显示调试

太好了,真的可以就方便了!

fireofengineer 发表于 2014-4-18 17:49:45

RE:【MCU实战经验】+通过JLINK实现串口显示调试

给力!:P

ysdx06010302 发表于 2014-4-19 07:20:11

回复:【MCU实战经验】+通过JLINK实现串口显示调试

 我也想试试。呵呵

ysdx06010302 发表于 2014-4-19 07:26:27

回复:【MCU实战经验】+通过JLINK实现串口显示调试

 我也想试试。呵呵

darren-374201 发表于 2014-4-28 21:06:42

RE:【MCU实战经验】+通过JLINK实现串口显示调试

谢谢分享!:)

wumigou 发表于 2014-4-28 22:37:05

回复:【MCU实战经验】+通过JLINK实现串口显示调试

工具有利于效率提升
页: [1] 2
查看完整版本: 【MCU实战经验】+通过JLINK实现串口显示调试