请教STM32用JLINK V8 SWD输出调试信息到ITM Viewer的问题

2019-12-22 13:41发布

请教各位,我在用STM32F103VBT6 , RVMDK 3.9 ,J-LINK V8的SWD口。
接线为VCC PA13 PA14 GND的四线SWD。程序中重定义了printf的fputc到ITM0.

我想在调试时候,从SWO输出调试信息,参考了一下网上的用ULINK2输出到ITM viewer的例子,自己修改了一下。但是发现用J-LINK 有些问题。
代码如下:
//ITM reg
#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);
}
如果在调试器CortexM3 JLINK选项中打开Trace,那么会收到警告信息“Trace仅能从SWO输出,请选择SWD模式”,如果不开trace,那么在ITM viewer中看不到自己的输出信息。
请问有怎么样才可以用printf输出调试信息到ITM viewer
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
44条回答
youke
1楼-- · 2019-12-25 06:28
 精彩回答 2  元偷偷看……
youke
2楼-- · 2019-12-25 08:33
请问  【20楼】 scsdwxj2005  兄弟 有没有 把硬件AD采样的 波形在 MDK  逻辑分析仪上显示正确过??
gaoup1986
3楼-- · 2019-12-25 11:20
楼主的问题我遇见过,后来找了FAE解决的
1.我用的是IAR5.1版本的,后来FAE给装了6.2版本,据说低版本的用SWD用一些文件冲突;
2.VCC GND SWDIO SWDLK一个都不用上拉,FAE给出的解释是,盗版的JLINK内部19脚有5V输出,而正版的没有5V,所以接口上拉,有很多不必要的麻烦;
alan8918
4楼-- · 2019-12-25 15:39
Mark SWD调试
adwinter
5楼-- · 2019-12-25 18:07
写的很好 解决了很多疑问 学习了  
alan_yzh
6楼-- · 2019-12-25 19:50
 精彩回答 2  元偷偷看……

一周热门 更多>