[CortexM4--stm32f411]调试接口

简述

对STM32F411所支持的调试接口及其方式进行简单的学习。

调试接口

STM32F411的调试接口硬件示意如下:
这里写图片描述
在调试模式下,MCU核在某条特定指令获取(断点),或者是数据获取时(Watch Point)时可以被停住,MCU核的内部状态以及外部状态均可被测量,在测量完成后,MCU核会恢复并继续执行。
STM32F411的调试接口支持两种:

  • Serial wire(SWD)
  • JTAG debug port

另外上图中的一些术语意思如下:

术语说明附加说明
SWJ-DPSerial wire / JTAG debug port, DP即调试接口debug port的简写。SWJ表示是SWD和JTAG
AHB-APAHB access port, AHB是ARM架构中常见的高速内部总线一种,即说明调试接口会通过这个AHB-AP与内部的许多调试单元通过AHB进行交互
ITMInstrumentation Trace Macrocell,即可以进行测量跟踪的,常见的是在代码中通过这个来输出调试信息
FPBFlash Patch Breadpoint,因为指令一般存在于flash中,这个可能和调试时打断点相关
DWTData Watchpoint Trigger,数据监视窗口用,许多调试工具都会有watch point的功能的
TPUITrace Port Unit Interface,可能也是用作输出吧,只有大尺寸封装的IC有此功能,应当需要额外的pin上面图示中写成TPIU了
ETMEmbedded Trace Macrocell,也是只有大尺寸封装的IC有此功能,应当需要额外的pin上面图示中没有看到这个

接下来简单说明下这里面部分的详细内容以及可能的用法。

SWJ-DP

这个是ARM标准的CoreSight debug port,其中,使用JTAG DP的话有5根pin,用SW DP的话2根pin。STM32F411的这两个接口是复用的~,其硬件框图如下:
这里写图片描述
下面用表格的方式说明下这两个DP的引脚连接的区别:

引脚JTAG-DP接口JTAG功能SW-DP接口SW功能PIN Num
JTDOTDO数据输出TRACESWOtrace输出PB3
JTDITDI数据输入PA15
NJTRSTnTRST复位PB4
JTMS/SWDIOTMS测试模式选择SWDIO数据输入输出PA13
JTCK/SWCLKTCK时钟SWCLK时钟PA14

上图中还有一个SWD/JTAG select的单元,其实就是用来选择是使用JTAG或SW的。另外表中的TRACESWO并不是SW-DP的接口~应当是后面要提到的ITM会用到的接口。

ITM

ITM支持printf风格的输出,可以在OS和Application中输出log,用来评估和分析系统的信息。ITM有如下三种方式产生trace信息:

方式说明其他
Software trace直接写ITM相应寄存器直接发送数据
Hardware traceDWT产生数据通过ITM发送
Time stampingITM包含了一个21bit的计数器用于产生时间戳,这个时间戳可以通过ITM发送

ITM数据会通过TPIU,TPIU会加上额外的包再发送给调试主机。
使用ITM功能之前,必须使能Debug Exception的TRCEN bit和Monitor Control寄存器。ITM相关寄存器如下图:
这里写图片描述

另外的ETM应当是用来trace执行的指令的,TPIU则是有FIFO,起到bridge的作用,将ETM或ITM的data输出出去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技塑未来-苏导

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

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

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

打赏作者

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

抵扣说明:

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

余额充值