首先声明,这个技巧是从网上找到的,并非本人原创。 我们在调试的时候,经常会需要使用到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就可以像在串口调试工具里面一样显示了。 |
RE:【MCU实战经验】+通过JLINK实现串口显示调试
RE:【MCU实战经验】+通过JLINK实现串口显示调试
RE:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
RE:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
RE:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
RE:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试
回复:【MCU实战经验】+通过JLINK实现串口显示调试