STM32 调试口STM32CUBEMX配置

STM32 调试口STM32CUBEMX配置

  • 1.JTAG调试接口
    • [1.1 配置方法](#1.1 配置方法)
    • [1.2 功能](#1.2 功能)
    • [1.3 其他配置模式](#1.3 其他配置模式)
      • [1.3.1 JTAG(4 pins)模式](#1.3.1 JTAG(4 pins)模式)
      • [1.3.1 JTAG with Trace Synchro 模式](#1.3.1 JTAG with Trace Synchro 模式)
    • [1.4 优劣](#1.4 优劣)
  • 2.SWD调试接口
    • [2.1 配置方法](#2.1 配置方法)
    • [2.2 功能](#2.2 功能)
    • [2.3 其他配置模式](#2.3 其他配置模式)
      • [2.3.1 Trace Asynchronous Sw模式](#2.3.1 Trace Asynchronous Sw模式)
      • [2.3.2 Trace Synchro Sw 模式](#2.3.2 Trace Synchro Sw 模式)
    • [2.4 优劣](#2.4 优劣)
  • [3. 特殊配置:禁用调试接口](#3. 特殊配置:禁用调试接口)
  • [4. 总结](#4. 总结)

STM32的调试口主要有两种类型:JTAG调试接口和SWD调试接口。以下是基于STM32CubeMX的配置方法、功能及优劣对比:

在STM32CubeMX中,调试接口的配置位于 System Core > SYS > Debug 选项,常见模式如下:

模式 功能描述 引脚占用情况 适用场景 引用
Serial Wire (SWD) 仅启用SWD调试接口(2线制:SWDIO + SWCLK),释放其他调试引脚(如JTAG的TMS、TCK等)作为普通GPIO使用。 占用PA13(SWDIO)、PA14(SWCLK) 资源受限场景,需最大化利用GPIO资源
JTAG (4-pin) 启用完整JTAG接口(5线制:TMS、TCK、TDI、TDO + NRST),占用更多GPIO。 占用PA13~PA15、PB3、PB4 需要JTAG调试或多设备链式调试的复杂系统
Trace Asynchronous Sw 启用SWD并保留部分引脚用于异步跟踪功能(如ETM),需搭配特定调试工具使用。 占用SWD引脚及额外跟踪引脚 需要实时跟踪调试数据的高性能应用
Disabled 完全关闭调试接口,所有调试引脚恢复为普通GPIO。需谨慎使用,可能导致无法再次烧录程序。 无占用 量产阶段需完全禁用调试功能的设备

1.JTAG调试接口

1.1 配置方法

• 在STM32CubeMX中,选择"Pinout&Configuration"标签页。

• 在左侧的"System Core"中找到"SYS"选项。

• 在"Debug"选项中选择"JTAG"。

• 确保相关引脚(如PA13、PA14、PA15、PB3、PB4)被正确配置为JTAG功能。

如下图所示:

烧录口原理图:

上图中JTAG接口都通过电阻上拉了,有的单片机的这几个引脚在内部已经上拉,所以这几个上拉电阻可以省略,减少了成本和PCB空间的占用。

1.2 功能

• JTAG(Joint Test Action Group)是一种标准的硬件调试接口,支持复杂的调试功能,如指令断点、数据观察点、硬件断点等。

• 支持指令级跟踪和数据跟踪功能,能够实时监控程序的执行过程。

• 可以通过JTAG接口对芯片进行全速调试,适合复杂的调试场景。

1.3 其他配置模式

1.3.1 JTAG(4 pins)模式

JTAG(4 pins)模式比5 pins模式少了1个NRST引脚,如果是在资源确实不足的时候可以弃用。但是一般情况下使用该引脚,防止由于烧录或者调试的时候无法服务程序。

1.3.1 JTAG with Trace Synchro 模式

JTAG with Trace Synchro 是一种结合了JTAG调试和指令跟踪功能的调试模式。该模式下,又分为1bit、2bits和4bits。

Trace Synchro:即指令跟踪同步功能,用于捕获和分析处理器执行的指令序列,帮助开发人员了解程序的运行情况,快速定位问题。

结合方式:JTAG with Trace Synchro模式将JTAG的调试功能与指令跟踪功能相结合,通过JTAG接口实现对目标设备的调试控制,同时利用指令跟踪功能捕获程序运行时的指令序列,以便进行更深入的分析。

缺点:

耗费芯片引脚资源,一般单片机开发中其实不是非常需要。

1.4 优劣

优点

• 功能强大,支持复杂的调试操作。

• 支持指令和数据跟踪,适合对性能要求较高的调试。

缺点

• 需要5个引脚(JTMS、JTCK、JTDI、JTDO、nJTRST),占用较多的GPIO资源。

• 硬件要求较高,需要支持JTAG协议的调试器。

2.SWD调试接口

2.1 配置方法

• 在STM32CubeMX中,选择"Pinout&Configuration"标签页。

• 在左侧的"System Core"中找到"SYS"选项。

• 在"Debug"选项中选择"Serial Wire"。

• 确保相关引脚(如PA13、PA14)被正确配置为SWD功能。

烧录口原理图:

2.2 功能

• SWD(Serial Wire Debug)是一种简化的调试接口,仅需两个引脚(SWDIO和SWCLK)。

• 支持基本的调试功能,如指令断点、数据观察点等。

• 可以通过SWD接口对芯片进行调试和程序烧录。

2.3 其他配置模式

2.3.1 Trace Asynchronous Sw模式

"Trace Asynchronous SW" 是一种基于串行线调试(Serial Wire Debug,SWD)的异步跟踪模式,通常用于嵌入式系统开发中,尤其是在使用 ARM Cortex-M 系列处理器(如 STM32)时。以下是关于它的功能、原理和使用方法的详细介绍:

功能

  1. 指令跟踪:能够捕获处理器执行的指令序列,帮助开发人员分析程序的运行情况,快速定位问题。
  2. 数据跟踪:可以捕获程序中变量的变化情况,实时监控数据的读写操作。
  3. 调试信息输出:支持通过 SWO(Serial Wire Output)引脚输出调试信息,例如使用 printf 打印调试日志。
  4. 性能分析:可以统计函数的执行时间、中断的触发情况等,帮助优化程序性能。

2.3.2 Trace Synchro Sw 模式

同JTAG with Trace Synchro 是一种结合了SW调试和指令跟踪功能的调试模式。该模式下,又分为1bit、2bits和4bits。

Trace Synchro:即指令跟踪同步功能,用于捕获和分析处理器执行的指令序列,帮助开发人员了解程序的运行情况,快速定位问题。

2.4 优劣

优点

• 引脚数量少,仅需两个引脚,节省GPIO资源。

• 硬件要求较低,调试器成本相对较低。

缺点

• 功能相对JTAG较弱,不支持指令跟踪功能。

• 数据传输速度较JTAG略低,适合简单的调试场景。

3. 特殊配置:禁用调试接口

如果需要将调试引脚释放为普通GPIO使用,可以通过以下方式配置:

• 在STM32CubeMX中,选择"Pinout&Configuration"标签页。

• 在左侧的"System Core"中找到"SYS"选项。

• 在"Debug"选项中选择"Disable"。

• 确保相关引脚(如PA13、PA14、PA15、PB3、PB4)被重新配置为GPIO或其他功能。

4. 总结

• JTAG调试接口适合复杂的调试场景,功能强大但占用较多引脚。

• SWD调试接口适合简单的调试场景,节省引脚资源且硬件成本较低。

• 如果引脚资源紧张,可以选择SWD接口或禁用调试接口,将引脚释放为普通GPIO使用。

在实际开发中,根据项目需求和硬件资源情况选择合适的调试接口类型。

相关推荐
二块烧肉11 分钟前
STM32 ADC
stm32·单片机·嵌入式硬件
茯苓gao5 小时前
stm32 WDG看门狗
stm32·单片机·嵌入式硬件
小智学长 | 嵌入式5 小时前
单片机-STM32部分:8、外部中断
stm32·单片机·嵌入式硬件
weixin_399264296 小时前
STM32F4官方文档关于定时器时钟自动倍频的说明
stm32·单片机
强化学习与机器人控制仿真6 小时前
Newton GPU 机器人仿真器入门教程(零)— NVIDIA、DeepMind、Disney 联合推出
开发语言·人工智能·python·stm32·深度学习·机器人·自动驾驶
Ronin-Lotus7 小时前
嵌入式硬件篇---CAN
单片机·嵌入式硬件·can·stm32f103rct6
mini_nine10 小时前
DSP28335 串口中断收发及FIFO使用
单片机·dsp开发
走错路的程序员12 小时前
stm32测频率占空比最好的方案
stm32·单片机·嵌入式硬件
楚灵魈13 小时前
[Linux]从零开始的STM32MP157 Busybox根文件系统构建
linux·arm开发·stm32
Ronin-Lotus13 小时前
嵌入式硬件篇---SPI
单片机·嵌入式硬件