请教STM32用JLINK V8 SWD输出调试信息到ITM Viewer的问题 请教,如何通过jlink把printf信息打在keil的de...

STM32 JLINK SWD \u6a21\u5f0f\u8c03\u8bd5\u65f6\u51fa\u73b0\u7684\u95ee\u9898 \u6025\u6025\u6025\uff01\uff01

\u4e00\u8fb9\u590d\u4f4d\u4e00\u8fb9\u70e7\u7a0b\u5e8f

//\u5728\u6e90\u4ee3\u7801\u4e2d\uff0c\u6dfb\u52a0\u4ee3\u7801\u5982\u4e0b\uff1a#include #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); } //\u5728\u8c03\u8bd5\u5668\u8bbe\u7f6e\u4e2d\uff0c\u9009\u4e2d\u201cTRACE\u201d\u9879\uff0c\u5728\u201cITM Stimulus Port\u201d\u4e2d//\u52fe\u9009 Port 0 \uff0c\u5176\u5b83\u90fd\u4e0d\u52fe\u9009\u3002//\u5177\u4f53\u8bf7\u767e\u5ea6\uff1akeil+stm32+jlink\u5229\u7528swd\u65b9\u5f0f\u8fdb\u884cprintf\u8f93\u51fa

下面是我的设置方法和J-LINK信息。

注意以下内容:
- Keil MDK版本适当更新,过旧的版本对Jlink的支持可能不够好。该同步的DLL要同步。
- Cortex M3的调试接口必须使用SWD,至少需要5线连接:Vref, SWDIO, SWCLK, SWO, GND。
- 在Keil中确认调试模式选择的SWD。
JLink设置没有什么问题。
这种设置,应该是编译通过,程序能运行,但是不一定ITM能看到输出。
STM32开ITM输出,有一个引脚功能需要手工设置,有一个寄存器。查一下手册就行了。



选择JLINK方式,然后模式选择SW模式,最后在Trace窗口开启功能就可以了。当初我也是踩了不少坑的,最终才把ST-LINK的ITM调试搞定

扩展阅读:stm32stlinkutility下载 ... stm32 boot ... stlink如何连接stm32 ... stm32怎么连接stlink ... jlink调试仿真stm32 ... stm32为什么不建议学 ... stm32cubemx汉化 ... stm32制作jlink ... stm32可以不用stlink ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网