news 2026/7/11 1:14:44

JTAG/SWD是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JTAG/SWD是什么

一、调试接口通用引脚

1、JTAG/SWD接口引脚分布

(1)JTAG和SWD是两种功能模式,它们的引脚是物理复用的。(各类微控制器均支持JTAG,但只有ARM芯片支持SWD,SWD是ARM的专有协议)

(2)ARM提供了标准20Pin的调试接口,不需要改PCB设计,调试器做不同配置,即可切换不同工作模式。

2、JTAG/SWD接口引脚定义

引脚号

JTAG功能

SWD功能

复用说明

1

VCC

VCC

供电引脚,芯片本身有供电时可不接

3

TRST

N/U(未使用)

JTAG复位,SWD闲置

5

TDI

N/U(未使用)

JTAG数据输入,SWD闲置

7

TMS

SWDIO

核心复用引脚,用于数据传输和调试模式切换

9

TCLK

SWCLK

时钟信号复用引脚

13

TDO

SWO

JTAG数据输出 / SWD串行追踪打印

15

RESET

RESET

系统复位,两种模式通用

Other

GND

GND

共用接地线

二、JTAG/SWD调试概述

1、JTAG/SWD调试原理简析

(1)各类微控制器都包含用于高级调试功能的硬件,利用这些调试功能,上位机可以在取指(对应指令断点)或访问数据(对应数据断点)时停止内核。

(2)内核停止时,上位机可以查询内核的内部状态和系统的外部状态。查询完成之后,上位机将恢复内核和系统,并恢复程序执行。

2、Cortex-M内核的调试端口

(1)Cortex-M内核(M0/M3/M4/M7等)集成了串行SWD/JTAG调试接口(SWJ-DP),包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。

①JTAG调试接口(JTAG-DP)为5针标准JTAG接口。

②串口调试接口(SW-DP)为2针串行调试接口(时钟线+数据线)。

(2)SWJ调试端口框图如下,具体可参考芯片的数据手册。

(3)STM32F10xxx的5个普通I/O口可用作SWJ-DP接口引脚,这些引脚在所有的封装里都存在,具体可参考芯片的数据手册,下面都以STM32F10xxx为例展开介绍。

三、JTAG引脚配置方法

1、调试接口引脚释放

(1)复位后,MCU会将用于SWJ-DP的全部5个引脚指定为专用引脚(AF0),可供调试工具立即使用,但是MCU可以禁止部分或者全部SWJ-DP端口,进而释放相关引脚以用作GPIO口,具体可参考芯片的数据手册。

(2)实际开发中不建议将所有调试接口引脚全部禁用,除非GPIO口资源确实非常紧张。

2、JTAG引脚配置函数

(1)STM32标准库需要调用GPIO_PinRemapConfig函数选择JTAG/SWD接口的工作模式。

①函数原型:void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)

②函数参数:

uint32_t GPIO_Remap:决定调试接口的状态,具体可见下表

FunctionalState NewState:决定是否使能所选择的状态

宏定义

效果

释放的引脚

GPIO_Remap_SWJ_NoJTRST

全功能SWJ使能,但无JTRST

保留完整的JTAG+SWD功能

PB4

GPIO_Remap_SWJ_JTAGDisable

禁用JTAG,使能SWD

释放JTAG占用的引脚,同时保留SWD用于调试

PB3、PB4、PA15

GPIO_Remap_SWJ_Disable

完全禁用SWJ

释放所有5个调试引脚,但无法再通过JTAG/SWD进行调试和烧录

PA13、PA14、PA15、PB3、PB4

③注意事项:禁用调试接口引脚,将其作为普通GPIO引脚,本质是引脚的重映射,需要先使能AFIO的时钟,才能进行相关操作。

(2)STM32 HAL库提供了专门的函数来管理调试接口,它们都是没有函数参数和返回值的。

函数名

效果

释放的引脚

HAL_AFIO_REMAP_SWJ_ENABLE

使能JTAG+SWD

PB4

HAL_AFIO_REMAP_SWJ_NOJTAG

禁用JTAG,使能SWD

释放JTAG占用的引脚,同时保留SWD用于调试

PB3、PB4、PA15

HAL_AFIO_REMAP_SWJ_DISABLE

完全禁用SWJ

释放所有5个调试引脚,但无法再通过JTAG/SWD进行调试和烧录

PA13、PA14、PA15、PB3、PB4

四、调试方法

1、硬件配置

(1)JTAG/SWD接口只认识调试协议的信号,PC的USB接口只能根据USB协议解析信号,因此,要想PC能够和芯片通过调试接口通信,中间需要连接仿真器。

(2)下图所示的是ST-Link和J-Link(DAPLink也有同样的功能),它们内有独立单片机,能够双向翻译PC和被调试芯片的协议数据。

2、调试步骤

调试接口是硬件配置,对于上位机来说,只需要有对应的软件支持调试协议即可,软件界面可能各有不同,但调试逻辑基本类似,具体可参考《GNU Debugger(GDB)使用教程》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 1:11:42

Simulink 电流滞环PWM逆变器仿真:环宽±0.2A下三相电流THD对比与参数调优

电流滞环PWM逆变器仿真:环宽对THD的影响与参数调优实战在电力电子系统设计中,电流滞环PWM控制因其实现简单、动态响应快等优势,成为三相逆变器常用的控制策略之一。然而,滞环宽度这一关键参数的选取,直接影响着系统的电…

作者头像 李华
网站建设 2026/7/11 1:11:02

ptcr配置详解:YAML配置文件参数全面解析与最佳实践

ptcr配置详解:YAML配置文件参数全面解析与最佳实践 【免费下载链接】ptcr A tool for container runtime performance measure. 项目地址: https://gitcode.com/openeuler/ptcr 前往项目官网免费下载:https://ar.openeuler.org/ar/ ptcr是一款强…

作者头像 李华
网站建设 2026/7/11 1:08:33

iOS游戏内录屏插件开发:基于UE4与ReplayKit的深度集成与优化

1. 项目概述:为什么我们需要一个iOS上的UE4录制插件?在移动游戏开发,尤其是使用虚幻引擎4(UE4)开发iOS游戏的过程中,有一个需求一直很“痒”:如何让玩家在游戏内一键录制并分享他们的高光时刻&a…

作者头像 李华
网站建设 2026/7/11 1:04:21

微软MAI模型替代OpenAI:企业级AI自研战略与开发指南

上周,一位做企业内训的朋友和我聊起一件小事:他们公司内部用来辅助写培训材料的 AI 工具,突然提示“服务即将升级,部分功能可能调整”。他本能地担心是不是又要重新适应新界面、新流程,甚至担心之前积累的提示词模板会…

作者头像 李华
网站建设 2026/7/11 1:03:37

Tcl 8.6 脚本调试实战:5种常见语法错误定位与修复方法

Tcl 8.6 脚本调试实战:5种常见语法错误定位与修复方法1. 调试工具与基础准备工欲善其事,必先利其器。在开始调试Tcl脚本前,我们需要配置好调试环境。Tcl 8.6内置了强大的调试工具集,以下是核心工具的使用方法:调试工具…

作者头像 李华
网站建设 2026/7/11 1:03:15

TC78H651AFNG与PIC18F86K90直流电机驱动方案设计

1. 项目背景与核心器件选型在工业自动化和小型机电设备领域,直流有刷电机驱动器始终占据重要地位。TC78H651AFNG(东芝)与PIC18F86K90(Microchip)的组合,为新一代驱动器设计提供了性能与成本的平衡方案。TC7…

作者头像 李华