硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4141|回复: 3
收起左侧

[其它] 调试相关名词:JTAG,SWD, SWO,ITM, SWV,RTT, Event Recorder解释

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2022-2-13 00:11:55 | 显示全部楼层 |阅读模式
1、对于Cortex-M内核主要是支持两种调试接口:
JTAG :  Joint Test Action Group
SWD :  Serial Wire Debug

QQ截图20220212180928.png

QQ截图20220212182113.png

2、SWD调节接口下有个SWV(Serial Wire Viewer)

SWV 是由仪器化跟踪宏单元 ITM(Instrumentation Trace Macrocell)和 SWO 构成的。 SWV 实现了一种从 MCU 内部获取信息的低成本方案, SWO 接口支持输出两种格式的跟踪数据, 但是任意时刻只能使用一种。两种格式的数据编码分别是 UART(串行) 和 Manchester(曼彻斯特)。当前 JLINK 仅支持 UART编码, SWO 引脚可以根据不同的信息发送不同的数据包。 当前 M3/M4 可以通过 SWO 引脚输出以下三种信息:

(1) ITM 支持 printf 函数的 debug 调用(工程需要做一下接口重定向即可)。 ITM 有 32 个通道, 如果使用 MDK 的话,通道 0 用于输出调试字符或者实现 printf 函数, 通道 31 用于 Event Viewer,这就是为什么实现 Event Viewer 需要配置 SWV 的原因。

(2) 数据观察点和跟踪 DWT(Data Watchpoint and Trace)可用于变量的实时监测和 PC 程序计数器采样。

(3)时间戳, ITM 还附带了一个时间戳的功能:当一个新的跟踪数据包进入了 ITM 的 FIFO 时, ITM就会把一个差分的时间戳数据包插入到跟踪数据流中。跟踪捕获设备在得到了这些时间戳后,就可以找出各跟踪数据之间的时间相关信息。另外,在时间戳计数器溢出时也会发生时间戳数据包。


3、新一代调试技术

RTT是SEGGER开发板的,基于SWD调试接口的数据通信方式,仅需SWDIO和SWCLK。而Event Recorder是MDK开发的,和RTT类似的通信机制。相比基于SWO引脚的ITM数据传输,速度要快很多。



回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2022-2-16 09:48:35 | 显示全部楼层
我在电路板上已经放弃SWO了。 Event Recorder的功能已经相当全面,而且不用浪费管脚。
回复

使用道具 举报

5

主题

81

回帖

96

积分

初级会员

积分
96
发表于 2022-10-26 17:32:34 | 显示全部楼层
image.png

如果在最后一行加上Event Recorder,是不是如下:
名称       MCU内核           速度     编译环境                备注
RTT     M0\M0+\M3\M4     快          KEIL              试用所有Link
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
 楼主| 发表于 2022-10-27 00:34:29 | 显示全部楼层
流型 发表于 2022-10-26 17:32
如果在最后一行加上Event Recorder,是不是如下:
名称       MCU内核           速度     编译环境   ...

这个表格整理的不太好,不完善。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 02:13 , Processed in 0.246021 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表