单片机学习小组
直播中

杜喜喜

7年用户 1543经验值
私信 关注

如何使用ST-LINK调试程序?

如何使用ST-LINK调试程序?

回帖(1)

蔡芸菲

2022-2-21 11:13:19
目的

ST-LINK是ST意法半导体为评估、开发STM8系列和STM32系列MCU而设计的集在线仿真与下载为一体的开发工具。STM32CubeIDE支持使用ST-LINK进行 SWD 和 SWV 仿真。本文就对相关功能与使用做个说明。
ST-LINK设备

说明

两者使用是各有优缺点的:


  • ST官方的接口齐全,可以支持SW和SWV方式调试(还有JTAG,没前面两个好用),但是官方的ST-LINK不支持向STM32开发板供电,也就是你还得单独给开发板供电;
  • TB上那种便宜的对STM32来说几乎都是只支持SW方式调试的,不支持SWV方式(SWV方式开发者可以向IDE输出调试信息,调试起来更加方便),但是这类模块几乎都可以直接为STM32开发板供电;

引脚连接

本文使用ST-LINK调试主要用到下面几个引脚:



  • SWCLK :通常连接STM32-PA14引脚,也被标记为JTCK;
  • SWDIO :通常连接STM32-PA13引脚,也被标记为JTMS;
  • SWO :通常连接STM32-PB3引脚,也被标记为JTDO;
  • GND :共地;
  • T_VCC :官方ST-LINK特有,需要将MCU的电源连接至该引脚,例如MCU 3.3V供电,则需要将该3.3V电源连接至 T_VCC ;

SWD调试时需要连接: SWCLK 、 SWDIO 、 GND 、 T_VCC(如果有) ;
SWV调试时需要连接: SWCLK 、 SWDIO 、 SWO 、 GND 、 T_VCC(如果有) ;
如果MCU相应IO口被占用将无法启动调试(STM32CubeMX配置时记得开启SYS->Debug):

更新ST-LINK固件

可以在STM32CubeIDE菜单栏 Help > ST-LINK更新 中更新ST-LINK固件。
SWD

根据上面进行接线,点击Debug就可以进入调试了,初次调试需要进行设置:

Debug相关界面功能说明如下:



SWV

如果在 Debug Configurations > 调试器 中使能SWV就可以开启SWV调试了,默认情况下启动调试后并不会开启SWV功能具体的窗口,需要在 Window > Show View 中开启相应窗口。在各个SWV窗口中均可以启动/暂停/配置SWV:

功能上来说SWV其实就是SWD的扩展,最基本的操作和SWD是一样的,这里主要稍微介绍下扩展的那部分:
向控制台输出信息

在上位机软件调试的时候经常会向控制台输出信息以供调试,现在STM32调试也可以了。
通过向 ITM->PORT[port]寄存器写入数据就可以向SWV Console输出信息,根据此编写下面函数:

// 向SWV Console输出信息
// port:0~31
void swvPrint(int port, char *ptr, int len)
{
    int i = 0;
    for (i = 0; i < len; i++)
    {
        while (ITM->PORT[port].u32 == 0)
        {
        }
        ITM->PORT[port].u8 = *(ptr + i);
    }
}
然后就可以在代码中使用该函数向控制台输出信息了:

变量追踪

SWV可以追踪变量并将变量变化绘制成图形:



举报

更多回帖

发帖
×
20
完善资料,
赚取积分