良许Linux教程网 干货合集 基于STM32CubeIDE实现打印输出功能

基于STM32CubeIDE实现打印输出功能

之前为大家分享的【专栏】printf系列教程,描述了基于Keil、IAR等集成开发环境实现SWV的功能。

image-20231113224742809
image-20231113224742809

本文为大家分享基于STM32CubeIDE实现SWV的功能。

SWD:Serial Wire Debug,串行线调试

SWO:Serial Wire Output,串行线输出

SWV:Serial Wire Viewer,串行线查看器

ITM:Instrumentation Trace Macrocell,指令跟踪微单元。

STM32CubeIDE实现SWV步骤

第一步:在Pinout & Configuration选项中打开SWO的功能,此步骤是必须的。

image-20231113224747908
image-20231113224747908

图片2

STM32CubeIDE中使能SWO功能

第二步:重定位printf的接口函数。

这里有个简单的方法,直接在syscalls.c文件中,改写_write()函数的内容,代码如下所示。再在此文件中包含ITM_SendChar 实现的头文件core_cmX.h,此文件一般都是已经被包含在你所选择的器件型号的头文件中。

此处我们选择的是stm32g431xx.h,直接放在此文件的开始处即可。

image-20231113224936674
image-20231113224936674

第三步:在main.c文件中包含stdio.h这个头文件,并尝试打印printf,此处注意,打印不能很频繁,所以需要增加延时。

image-20231113224939359
image-20231113224939359

全局编译一下,查看是否有错误,如果有错误,请对应提示信息修改。编译没有错误之后,我们就可以进行下一步了。

image-20231113224942295
image-20231113224942295

图片3

编译成功正确界面

第四步:配置仿真调试参数。打开SWV的调试功能。此处注意:Core Clock必须与你配置的时钟是一致的。此处我配置是170MHz,与我的系统时钟一致。

image-20231113224954353
image-20231113224954353

图片4

仿真调试配置界面

第五步:开始进入调试界面,并在调试界面中打开Windows–>Show;View–>SWV的ITM data Console窗口。注意,整个SWV其实是共用一个配置文件的,所以,当你打开SWV内的任意一个窗口都可以进行SWV 的配置。在这里我们只是为了查看Printf的内容,所以就选择了SWV ITM Data Console窗口。关于这里边其他几个部分的详细说明参考UM2609的4.3章节的内容。

image-20231113225004320
image-20231113225004320

开启SWV ITM数据窗口

此窗口打开后,需要新增一个Port端口。默认TIM中使用的就是0端口,所以我们直接选0即可。

image-20231113225012766
image-20231113225012766

图片6

增加输出端口

选择点击配置按钮对参数进行配置。配置情况如下:

image-20231113225020748
image-20231113225020748

图片7

SWV窗口配置界面

推荐先复位一下工程(可选项),然后“启动跟踪/start trace”。注意:此处是先启动跟踪,之后再让程序运行起来,不能反序。

image-20231113225031704
image-20231113225031704

图片8

启动跟踪和开始运行

此时即可看到打印出来的内容了。

image-20231113225040157
image-20231113225040157

最后打印输出的状态

最后

其实很多的内容都已经在官方手册中有详细的描述,但是因为英文或者是时间的问题,我们大部分人没有时间和精力阅读完所有的文档的。

所以在遇到问题时候,会阻塞你比较长时间。希望本文在你遇到困难的时候能够给你一点启示,帮你快速解决手中的问题。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部