请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32F303开发】+ 使用SWO输出调试信息到Debug Viewer窗口  

[复制链接]
creep 提问时间:2015-6-15 23:42 /
【STM32F303开发】+ 内部Flash模拟EEPROM

【STM32F303开发】+如何解析GPS数据

【STM32F303开发】(五)TIM定时器PWM的输出与捕获


Jlink/STLink自带一个SWO接口,使用这个接口配合keil可以输出一些简单的调试信息,在没有串口可以使用的时候,SWO也可很方便的打印一些信息,比如F303RE这个板子在我的电脑上一直没法安装虚拟串口的驱动,所以我可以用这个SWO输出调试信息。论坛送的STM32F303RE上自带的stlink正好有这个SWO口,而且也接到了MCU上,所以正好可以使用,好像有的ST的板子也带了这个接口,但是其中桥接电阻并没有贴到板子上,如果要使用的话,就要自己连接起来(比如STM32F429DISCO好像就没有接上)。

SWO

SWO


对于stlink的驱动好像也有一些要求,我使用keil4带的有点旧的stlink驱动就会提示驱动不支持,后来使用keil5带的stlink驱动据可以了。

SWD

SWD

如果硬件和软件都没有问题了,还需要设置下kei:
首先打开Micro LIB

MICROLIB

MICROLIB

然后打开keil的Trace功能,具体设置如下:
Trace.jpg
然后就是一些重定向printf的函数了,如果之前将printf重定向了串口,那么要修改并添加如下代码:
  1. #define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n)))
  2. #define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0000000+4*n)))
  3. #define ITM_Port32(n)   (*((volatile unsigned long *)(0xE0000000+4*n)))

  4. #define DEMCR           (*((volatile unsigned long *)(0xE000EDFC)))
  5. #define TRCENA          0x01000000

  6. struct __FILE { int handle; /* Add whatever needed */ };
  7. FILE __stdout;
  8. FILE __stdin;

  9. int fputc(int ch, FILE *f) {
  10.   if (DEMCR & TRCENA) {
  11.     while (ITM_Port32(0) == 0);
  12.     ITM_Port8(0) = ch;
  13.   }
  14.   return(ch);
  15. }
复制代码

打开调试即可得到调试信息:
swd0.jpg
输出调试信息
SWO.jpg
测试代码:
F303RE_SWO.rar (394.54 KB, 下载次数: 588)

评分

参与人数 2 ST金币 +40 收起 理由
wofei1314 + 20 很给力!
zero99 + 20

查看全部评分

1 收藏 28 评论76 发布时间:2015-6-15 23:42

举报

76个回答
JackieLaura 回答时间:2015-6-16 13:58:23
楼主的教程不错,收藏了。。

不过ST-LINK V2-1的串口,我开始也是安装不上,后来在网上看到一篇文章描述了类似的问题,抱着试一试的态度,我照着教程的方法试了之后就把虚拟串口的驱动安装上了。希望对你有用。

帖子地址:
                http://blog.sina.com.cn/s/blog_68f348920101ip0m.html


ST-LINK_V2-1 USB driver on Windows XP.zip (5.07 MB, 下载次数: 131)
creep 回答时间:2015-6-16 14:07:58
JackieLaura 发表于 2015-6-16 13:58
楼主的教程不错,收藏了。。

不过ST-LINK V2-1的串口,我开始也是安装不上,后来在网上看到一篇文章描述了 ...

好感动!我也比较纳闷为什么一直安装不了驱动,在我的电脑都装过自己枚举出来的虚拟串口而且用了好久了,但是就是这个装不上,本来还想研究下USB的复合设备呢,没法办就放弃了。
回家试试你的这个方法,再次感谢!!!!
lkl0305 回答时间:2015-6-15 23:48:33
学习学习
党国特派员 回答时间:2015-6-16 09:23:46
涨姿势了。。。 blank.png blank1.png blank2.png blank3.png blank4.png blank5.png blank6.png blank7.png blank8.png blank9.png
Paderboy 回答时间:2015-6-16 10:51:25
多谢分享,很有用
Brady 回答时间:2015-6-16 11:22:37
學習了,謝謝分享
拼命三郎V5 回答时间:2015-6-16 11:55:28
stm32.jpg
拼命三郎V5 回答时间:2015-6-16 12:18:59

路过帮顶
creep 回答时间:2015-6-16 12:43:53

感谢,感谢,关键是赚点金币。
米兰的无线电 回答时间:2015-6-16 12:44:34
厉害,学习一下
风子 回答时间:2015-6-16 12:57:48
高大上,学习了,先收藏
wamcncn 回答时间:2015-6-16 13:38:10
KEIL原来开能这样用
苏浅叶 回答时间:2015-6-16 14:05:11
速度挺快的!
creep 回答时间:2015-6-16 14:11:23

哈哈,好喜欢龙猫!!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版