首页 STM32F103——调试
文章
取消

STM32F103——调试

前言

代码是写完了,但一知半解,有很多地方看不懂,bug也很奇怪,找不到头绪,得单步调试看看哪里错了,但一直以来对单步调试有些许恐惧,这次来系统的搞一下,

JTAG、SWD是仿真器协议接口。

JLink、ULink、ST-Link是各家公司仿真器的名字。

image

JTAG协议

1
2
3
4
5
6
7
8
9
10
11
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号,可选TRST、RESET复位信号和RTCK(同步时钟)信号。 相关JTAG引脚的定义为:

VREF:目标表参考电压信号,用于检测目标板是否供电,直接与目标板VDD相连,并不向外提供               输出电压;
TRST:JTAG复位,连接到目标板CPU的nTRST引脚,用于复位CPU调试接口的TAP控制器;目               标板上应该将此脚上拉到高电位,避免意外复位,可选引脚;
TDI:    仿真器连接至目标CPU的数据输入信号,建议在目标板上上拉到VDD;
TMS:    模式设置信号,必须在目标板上将此引脚上拉;
TCK:     时钟信号,建议在目标板上将此引脚上拉;
TDO:    目标板返回给仿真器的数据信号;
RTCK: 目标板提供仿真器的时钟信号,有些项目中是要求JTAG的输入与其内部时钟信号同步,仿              真器利用此引脚的输入可动态的控制自己的TCK速率;
RESET:仿真器输出至目标CPU的系统复位信号,可选信号;
JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。所以,目前市场上已经很少看到它的身影了。

SWD接口

1
2
3
4
5
6
7
8
串行调试(Serial Wire Debug),SWD是ARM调试公司提出的另外一种调试接口,相对于JTAG接口,使用更好的信号引脚,四根信号如下:
Vre:目标表参考电压信号,用于检测目标板是否供电,直接与目标板VDD相连,并不向外提供输出电压;
GND:公共地信号;
SWDIO:串行数据输入信号,作为仿真信号的双向数据信号线,建议上拉;
SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉;
SWO:串行数据输出,CPU调试接口可通过SWO输出一些调试信息,该引脚可选。
RESET:仿真器输出至目标CPU的系统复位信号;是可选信号,
JTAG中的TRST和RESET,以及SWD中的RESET:虽然都是可选信号,建议连接,使得仿真器能够在连接器前对器件进行复位,已获得较理想的状态,便于后续连接仿真。

JLink仿真器 J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。

JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。

image-1

ULink仿真器

ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。

但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。 image-2

ST-Link仿真器 ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:

编程功能:可烧写FLASH ROM、EEPROM、AFR等; 仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等; 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快; 编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

image-3

image-4

我买的是国内的仿制版本的,和j-link长得差不多,就按照j-link来操作即可,具体操作流程间:https://www.bilibili.com/video/BV1Lx411Z7Qa?p=26&vd_source=1b3a69827a34547eb2ee0ed4099455e7

本文由作者按照 CC BY 4.0 进行授权