Stm32F103R6之调试支持

目录

概述

SWJ调试端口(serial wire and JTAG)

利用串行接口并释放不用的调试脚作为普通I/O口


概述

Cortex™-M3内核含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。

当STM32F10x微控制器连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作。

支持两种调试接口:

● 串行接口

● JTAG调试接口

Stm32F103R6之调试支持

图 1调试框图

SWJ调试端口(serial wire and JTAG)

STM32F10xxx内核集成了串行/JTAG调试接口(SWJ-DP)。这是标准的ARM CoreSight调试接口,包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。

● JTAG调试接口(JTAG-DP)为AHP-AP模块提供5针标准JTAG接口。

● 串行调试接口(SW-DP)为AHP-AP模块提供2针(时钟+数据)接口。

在SWJ-DP接口中,SW-DP接口的2个引脚和JTAG接口的5个引脚中的一些是复用的。

Stm32F103R6之调试支持

图 2SWJ调试端口

JTAG调试接口是默认的调试接口。

如果调试器想要切换到SW-DP,必须在TMS/TCK上输出一指定的JTAG序列(分别映射到SWDIO和SWCLK),该序列禁止JTAG-DP,并激活SW-DP。该方法可以只通过SWCLK和SWDIO两个引脚来激活SW-DP接口。

指定的序列是:

1. 输出超过50个TCK周期的TMS(SWDIO)= 1信号

2. 输出16个TMS(SWDIO)信号 0111100111100111 (MSB)

3. 输出超过50个TCK周期的TMS(SWDIO)= 1信号

Stm32F103R6之调试支持

图 3SWJ调试端口引脚

利用串行接口并释放不用的调试脚作为普通I/O

为了利用串行调试接口来释放一些普通I/O口,用户软件必须在复位后设置SWJ_CFG=010,从而释放PA15,PB3和PB4用做普通I/O口。

在调试时,调试器进行以下操作:

● 在系统复位时,所有SWJ引脚被分配为专用引脚(JTAG-DP + SW-DP)。

● 在系统复位状态下,调试器发送指定JTAG序列,从JTAG-DP切换到SW-DP。

● 仍然在系统复位状态下,调试器在复位地址处设置断点

● 释放复位信号,内核停止在复位地址处。

● 从这里开始,所有的调试通信将使用SW-DP接口,其他JTAG引脚可以由用户代码改配为普通I/O口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰年稻香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值