[STM32H7]

【STM32H750B-DK评测】5. STM32CubeIDE中使用SWV模式接收调试信息

[复制链接]
248|0
手机看帖
扫描二维码
随时随地手机跟帖
HonestQiao|  楼主 | 2022-9-21 11:21 | 显示全部楼层 |阅读模式
我之前分享读取MPU6050数据的时候,使用了STLink自带的虚拟串口,来输出调试信息,从而使得上位机能够及时查看到调试输出信息。

其实,STLink的SWD模式下,还可以使用SWV调试模式,这样子不需要额外的串口,就能输出调式信息,也非常的方便。
但SWV模式默认没有开启,需要经过一番设置,才能够使用,下面是具体的步骤。

一、使用STM32CubeMX配置工程
在STM32CubeIDE中,点击.ioc文件,即可打开配置界面。或者直接使用STM32CubeMX打开.ioc文件进行配置。
57caa876aee42d8804a56185163cde5e
将配置中的DEBUG,设置为Trace Asynchronous Sw即可,其他不用修改。
之前我使用串口调试的时候,设置的Swrial Wire,并设置对应的串口GPIO。

二、查看当前配置的运行频率:
a28f0ec8dc157c88032b61cd0d289eeb
记住该参数,后续在调试的时候,需要用到。

三、在STM32CubeIDE配置开启浮点输出:
eb85b3b605565528ef61bce1db24cf44
如果不开启,则printf中不能输出float浮点数

四、修改调试配置,使能SWV功能:
fcdb8ac60dd29445e96c0e55136fe8d5
这里的时钟频率,需要和之前STM32CubeMX中配置的一致。

五、开启调试模式,然后设置SWV输出端口,并进行配置:
点击小绿虫子,进入调试模式,待到进入main.c中的第一个断点时,通过菜单打开SWV ITM Data Console:
7c1c7acbc9903ac2d9024429dafcb2ff

再点击+号,添加一个端口,使用默认的0即可
2f2f809c0c9669371b2773c8d852c096

在点击配置图标,使能Port 0输出:
6cf70284d65f5d86b137056f80531854

最后点击红色⭕️,即可开始接收调试信息:
39c833300b4f054c715a41364026399a

不过,这个时侯,还没有调试信息输出。
因为还需要在在代码中做一下处理,使得printf的信息,能够输出到SWV中来。


六、修改代码,使得printf输出到SWV:
添加stdio.h调用:
df3b84a41dff49594bfb61445fb99311

在main.c中,添加下面的代码:
4979dac5c70b8c0c43d3d68fd4f97e3b

这将使得printf的信息,通过ITM发送,最终将被接收,并在SWV ITM Data Console中显示。

七、使用printf输出,并调试查看:
在main.c中合适的位置,添加printf输出:
a6b33bbc3306d2ace9c3595eaa7eefd6

然后重新进入调试模式,并让程序正常运行,调试输出信息就来了。
01815b7935ead0832df67fa0a467bbdb

现在,就可以在代码中,愉快的通过printf输出调试信息,方便调试了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

85

帖子

2

粉丝