
很多工具都自带有 SWV (Serial Wire Viewer)的功能,描述了在Keil、IAR、ST-LINK Utility、STM32CubeProg、J-Link等工具下实现“SWV”的功能。 今天再给大家分享一下STM32CubeIDE的SWV功能。 第一步:在Pinout & Configuration选项中打开SWO的功能,此步骤是必须的。 STM32CubeIDE中使能SWO功能 第二步:重定位printf的接口函数。 这里有个简单的方法,直接在syscalls.c文件中,改写_write()函数的内容,代码如下所示。再在此文件中包含ITM_SendChar 实现的头文件core_cmX.h,此文件一般都是已经被包含在你所选择的器件型号的头文件中。 此处我们选择的是stm32g431xx.h,直接放在此文件的开始处即可。 第三步:在main.c文件中包含stdio.h这个头文件,并尝试打印printf,此处注意,打印不能很频繁,所以需要增加延时。" t0 ?2 j1 S4 [0 E, ]+ M- H 全局编译一下,查看是否有错误,如果有错误,请对应提示信息修改。编译没有错误之后,我们就可以进行下一步了。 第四步:配置仿真调试参数。打开SWV的调试功能。此处注意:Core Clock必须与你配置的时钟是一致的。此处我配置是170MHz,与我的系统时钟一致。 第五步:开始进入调试界面,并在调试界面中打开Windows-->Show;View-->SWV的ITM data Console窗口。注意,整个SWV其实是共用一个配置文件的,所以,当你打开SWV内的任意一个窗口都可以进行SWV 的配置。在这里我们只是为了查看Printf的内容,所以就选择了SWV ITM Data Console窗口。关于这里边其他几个部分的详细说明参考UM2609的4.3章节的内容。 开启SWV ITM数据窗口 此窗口打开后,需要新增一个Port端口。默认TIM中使用的就是0端口,所以我们直接选0即可。 增加输出端口 选择点击配置按钮对参数进行配置。配置情况如下: SWV窗口配置界面 推荐先复位一下工程(可选项),然后“启动跟踪/start trace”。注意:此处是先启动跟踪,之后再让程序运行起来,不能反序。 启动跟踪和开始运行 此时即可看到打印出来的内容了。 最后打印输出的状态 |
实战经验 | STM32CubeIDE实用技巧之工程联调
【STM32H745I-DISCO】基于TouchGFX的工业控制器界面设计
【下载问题解决】关于ST官网下载软件问题解决
【STM32N6570-DK评测】摄像头video encoder
【STM32N6570-DK评测】开发环境及LED debug
实战经验 | 基于STM32CubeIDE下载TouchGFX GUI应用的出错分析
实战经验 | 如何修改STM32Cube固件包的存储位置
兔哥的杂谈【002】——如何性价比更高地去编译STM32
IDE删除编译中间文件
STM32CubeIDE 快速入门指南