ARM JTAG SWD SWO SWV

发布者:fnfeecjknquc最新更新时间:2020-01-06 来源: eefocus关键字:ARM  JTAG  SWD  SWO  SWV 手机看文章 扫描二维码
随时随地手机看文章

JTAG - Joint Test Action Group

JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容)
Test Access Port and Boundary-Scan Architecture
主要用于芯片内部测试及对系统进行仿真、调试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。通常所说的JTAG大致分两类,

一类用于测试芯片的电气特性,检测芯片是否有问题;
一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。

一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备

标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 

 

ARM系统的JTAG接口

 

 接口是一个20脚的IDC插座。下表给出了具体的信号说明

序号

信号名

方向

说 明

1

Vref

Input

接口电平参考电压,通常可直接接电源

2

Vsupply

Input

电源

3

nTRST

Output

(可选项) JTAG复位。在目标端应加适当的上拉电阻以防止误触发。

4

GND

--

接地

5

TDI

Output

Test Data In from Dragon-ICE to target.

6

GND

--

接地

7

TMS

Output

Test Mode Select

8

GND

--

接地

9

TCK

Output

Test Clock output from Dragon-ICE to the target

10

GND

--

接地

11

RTCK

Input

(可选项) Return Test Clock。由目标端反馈给Dragon-ICE的时钟信号,用来同步TCK信号的产生。不使用时可以直接接地。

12

GND

--

接地

13

TDO

Input

Test Data Out from target to Dragon-ICE.

14

GND

--

接地

15

nSRST

Input/Output

(可选项) System Reset,与目标板上的系统复位信号相连。可以直接对目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,应在目标端加上适当的上拉电阻。

16

GND

--

接地

17

NC


保留

18

GND

--

接地

19

NC

--

保留

20

GND

--

接地

ITM - instrumentation trace macrocell

General description

The ITM is an application-driven trace source that supports printf style debugging 
to trace Operating System (OS) and application events, and emits diagnostic system information.
The ITM emits trace information as packets which can be generated as:
● Software trace. Software can write directly to the ITM stimulus registers to emit packets.
● Hardware trace. The DWT generates these packets, and the ITM emits them.
● Time stamping. Timestamps are emitted relative to packets. 
The ITM contains a 21-bit counter to generate the timestamp. 
The Cortex™-M3 clock or the bit clock rate of the Serial Wire Viewer (SWV) output clocks the counter.

The packets emitted by the ITM are output to the TPIU (Trace Port Interface Unit). 
The formatter of the TPIU adds some extra packets (refer to TPIU) and 
then output the complete packets sequence to the debugger host.

The bit TRCEN of the Debug Exception and Monitor Control Register must be enabled before you program or use the ITM.

 

ETM - embedded trace macrocell

 

General description

The ETM enables the reconstruction of program execution.
Data are traced using the Data Watchpoint and Trace (DWT) component or 
the Instruction Trace Macrocell (ITM) whereas instructions are traced 
using the Embedded Trace Macrocell (ETM).

The ETM transmits information as packets and is triggered by embedded resources. 
These resources must be programmed independently and the trigger source 
is selected using the Trigger Event Register (0xE0041008). 
An event could be a simple event (address match from an address comparator) 
or a logic equation between 2 events.

The trigger source is one of the fourth comparators of the DWT module, 
The following events can be monitored:

● Clock cycle matching
● Data address matching

For more informations on the trigger resources refer to Section 31.13: DWT (data watchpoint trigger).

The packets transmitted by the ETM are output to the TPIU (Trace Port Interface Unit). 
The formatter of the TPIU adds some extra packets 
and then outputs the complete packet sequence to the debugger host.

 

DWT - data watchpoint and trace

 

The DWT unit consists of four comparators. They are configurable as:

● a hardware watchpoint or
● a trigger to an ETM or
● a PC sampler or
● a data address sampler


The DWT also provides some means to give some profiling informations. 
For this, some counters are accessible to give the number of:

● Clock cycle
● Folded instructions
● Load store unit (LSU) operations
● Sleep cycles
● CPI (clock per instructions)
● Interrupt overhead

 

TPIU (trace port interface unit)

The TPIU acts as a bridge between the on-chip trace data from the ITM and the ETM.
The output data stream encapsulates the trace source ID, 
that is then captured by a trace port analyzer (TPA).
The core embeds a simple TPIU, especially designed for low-cost debug 
(consisting of a special version of the CoreSight TPIU).

 

Serial Wire Debug (SWD)

SWD为pin有限的应用提供了一个调试的端口,主要是面向small package的微控制器
也面向复杂的ASICs—pin数量有限并且成本控制的应用。
SWD使用一个时钟+双向数据管脚来取代5-pin的JTAG端口,提供了所有的通用的JTAG调试和测试功能,
并且增加了:在没有中断内核以及没有增加额外的代码的情况下,对系统内存的实时访问。
SWD使用了一个ARM标准的双向有线协议,这已在ARM Debug Interface v5中定义。
SWD在调试器和目标系统之间用一种高效标准的方式互相传送数据。它是ARM-based设备的标准接口。
SWD提供了一种简单可靠的从JTAG的移植,只需在TMS和TCK管脚上覆盖SWDIO和SWCLK信号,
允许双模的设备,这可以提供另外的JTAG信号。在SWD模式中,这些额外的JTAG管脚可被用来作其他的用途。

SWD和所有的ARM核以及所有的使用JTAG的核兼容,并且在Cortex核以及CoreSight调试架构中提供了对调试寄存器的访问。

Serial Wire Output(SWO)

支持Serial Wire Output(SWO)意思是指支持从core引出一个pin的输出信号。
这个功能目前只在Cortex-M3上测试通过。  它这意味着更快的传输速度,并且不会中断程序的执行。

Serial Wire Viewer(SWV)

Serial Wire Output(SWO) 和 Instrumentation Trace Macrocell(ITM) 可以用来共同构成一个Serial Wire Viewer(SWV)。
SWV提供了一种低成本的从MCU获得信息的方法。
SWO可用两种格式输出调试信息,但在一个时间只能输出一种格式的调试信息。

这两种编码方式是UART和曼彻斯特编码

SWV使用SWO pin来传输不同的信息包。在Cortex-M3 Core中,有三种源信息可以通过此pin来传输:

对应用驱动跟踪源(支持printf格式的调试)的ITM,它支持32路通道,使得其可以用于例如real-time kernal信息的其他用途。

对实时变量的监测以及PC-sampling的Data Watchpoint和Trace(DWT),这可以用来定时的输出PC或者CPU内部不同计数器的值,
可以用来从目标板获得分析信息。

Timestamping。和包有关的Timestamping。

 

The Serial Wire Debug mode is an alternative to the standard JTAG interface.

SWD uses 2-pins to provide the same debug functionality as JTAG with no performance penalty, 
and introduces data trace capabilities with the Serial Wire Viewer (SWV).

The SWD interface pins can be overlayed with the JTAG signals, allowing the standard target connectors to be used.

  • TCLK - SWCLK (Serial Wire Clock)

  • TMS - SWDIO (Serial Wire debug Data Input/Output)

  • TDO - SWO (output pin for Serial Wire Viewer)

 

STM32 - SWJ debug port ( SWD and JTAG)

The STM32 core integrates the Serial Wire / JTAG Debug Port (SWJ-DP). 
It is an ARM standard CoreSight debug port that combines a JTAG-DP (5-pin) interface and 
a SWDP (2-pin) interface.

The JTAG Debug Port (JTAG-DP) provides a 5-pin standard JTAG interface to the AHPAP port.
The Serial Wire Debug Port (SW-DP) provides a 2-pin (clock + data) interface to the AHP-AP port.

In the SWJ-DP, the two JTAG pins of the SW-DP are multiplexed with some of the five JTAG pins of the JTAG-DP.

The asynchronous TRACE output (TRACESWO) is multiplexed with TDO. 
This means that the asynchronous trace can only be used with SW-DP, not JTAG-DP.

SWD and JTAG selection mechanism

SWJ-DP enables one of the following modes to be selected:

  • JTAG protocol

  • Serial Wire Debug protocol

  • Dormant.

When in Dormant mode, the TMS, TDI, and TDO signals can be used for other purposes, 
enabling alternative debug protocols to be used by other devices connected to the same pins.

The switcher defaults to JTAG operation on power-on reset, therefore 
the JTAG protocol can be used from reset without sending a selection sequence.

The SWJ-DP contains a mode status output, JTAGNSW, 
that is HIGH when the SWJ-DP is in JTAG mode and LOW when in SWD or Dormant mode. 
This signal can be used to:

  • disable other TAP controllers when the SWJ-DP is in SWD or Dormant mode, 
    for example by disabling TCK or forcing TMS HIGH

  • multiplex the Serial Wire output, TRACESWO, 
    onto another pin such as TDO when not in JTAG mode.

Another status output, JTAGTOP, indicates the state of the JTAG-DP TAP controller. These states are:

  • Test-Logic-Reset

  • Run-Test/Idle

  • Select-DR-Scan

  • Select-IR-Scan.

This signal can be used with JTAGNSW to control multiplexers so that, 
for example, TDO and TDI can be reused as General Purpose Input/Output (GPIO) signals 
when the device is not in JTAG mode, or during cycles when these signals are not in use by the JTAG-DP TAP controller.

 

By default, the JTAG-Debug Port is active.

If the debugger host wants to switch to the SW-DP, it must provide a dedicated JTAG sequence on TMS/TCK 
(respectively mapped to SWDIO and SWCLK) which disables the JTAG-DP and enables the SW-DP. 
This way it is possible to activate the SWDP using only the SWCLK and SWDIO pins.

This sequence is:

1. Send more than 50 TCK cycles with TMS (SWDIO) =1
2. Send the 16-bit sequence on TMS (SWDIO) = 0111100111100111 (MSB transmitted first)
3. Send more than 50 TCK cycles with TMS (SWDIO) =1

STM32 - JTAG TAP connections

关键字:ARM  JTAG  SWD  SWO  SWV 引用地址:ARM JTAG SWD SWO SWV

上一篇:安装配置arm-linux-gcc
下一篇:ARM JTAG 20P to Cortex JTAG 10P

推荐阅读最新更新时间:2024-11-10 13:18

arm交叉编译环境配置
1 解压下载的交叉工具链 2 vi /etc/profile 在这个文件最后添加上自己的环境变量: export PATH=$PATH:/usr/local/arm/4.3.2/bin($PATH后面为解压的交叉工具链的绝对地址) 3 source /etc/profile 注:一些交叉工具链要求解压在 /usr/local下 参考: http://www.itkee.com/os/detail-867.html 将下载的交叉编译工具包拷贝到 ubuntu 下的/usr/local/arm目录下(也可以拷贝到其它的地方,这个目录是个人的习惯),并解压(tar -jxvf 工具包名 或 tar -zxvf 工具包名)
[单片机]
ARM-FPGA杜邦线之片间传输--高速数据串扰
片间传输--高速数据串扰 这几天调试一个东东,STM32的FSMC传输数据给Bingo自制的VGA控制器,由于没有直接打板,板间用了杜邦线连接。FMSC传输模式为最快的速度,FSMC写时序如下图所示,最快达到了72M(HCLK)的速度。但是我用了杜邦线,,没办法。。。神奇的事情不断地发生,幽灵一直在身边,以此分享给大家点滴心得,虽然我也只是知道皮毛。 下图是我项目中STM32与FPGA间,杜邦线连接的图,杜邦线20cm,FSMC 最高HCLK=72MHz。从右到左分别为D0-D15,CS,RS,WR,RD 先贴一下贵人相助时的聊天记录,众人经验总结,精华部分,值得分享:
[单片机]
<font color='red'>ARM</font>-FPGA杜邦线之片间传输--高速数据串扰
ARM芯片选择的一般原则
1.1 ARM芯核 如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(memory management unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都带有MMU功能。而 ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux, 但目前有uCLinux等少数几种Linux不需要MMU的支持。 1.2 系统时钟控制器 系统时钟决定了ARM芯片的处理速度。ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz- 133MHz,ARM9的处理速度为1.1MI
[单片机]
谷歌、微软、高通联合抗议Nvidia收购Arm
集微网消息,针对Nvidia-Arm收购案引发了大规模的反对,包括Alphabet旗下的谷歌,微软和高通等科技企业正在向美国反垄断监管机构投诉Nvidia收购Arm,他们一致认为该交易将损害对其业务至关重要的行业领域的竞争,并要求进行干预。 据彭博社报道,了解这一过程的人士表示,至少有一家公司希望扼杀这笔交易。科技企业认为,这项收购将使Nvidia控制一个半导体产业链上重要的供应商,因为Arm向苹果、英特尔、亚马逊、华为等大公司授权芯片的基础技术,同时也向不计其数的中小企业提供授权。 总部位于英国的Arm被视为“全球半导体行业的瑞士”,因为它将芯片设计和相关软件代码授权给所有客户,而不是直接与半导体公司竞争。业内担心,本身作为芯片
[手机便携]
ARM编译器中预定义的宏
ARM编译器预定义了一些宏,这些预定义宏对应一定的数值,有些预定义宏没有对应数值,见下表: _arm _ 使用编译器armcc,tcc,armcpp,tcpp时 _ARMCC_VERSION Ver 代表编译器版本号,其格式为: PVtbbb,其中: P为产品编号(1代表ADS) V为副版本号(1代表1.1) T为补丁版本号(0代表1.1) bbb为build号(比如650) _APCS_INT
[单片机]
ARM硬件支持java技术Jazelle DBX
Java已 经在各个领域得到了广泛的应用,尤其是无线移动领域,全球超过100个移动运营商已经推出了Java下载服务。Java也正成为其它嵌入式设备的支持标 准,如机顶盒。Java应用的快速增长源于以下几点:尽管Java的可移植性一直有争论,但无庸置疑的是其快速上市的优势,开发和发布Java应用都很便 捷;Java有着广泛的支持网络,众多的第三方在开发各色各样的Java应用;Java平台固有的安全性适合网络下载。 可以说,现在Java游戏已经发展成一项产业,三维图像、多人连线等更高级的支持也不鲜见。网络运营商和手机制造商希望出现更具可玩性的游戏,甚至跳出游戏应用发展诸如商务、定位、视频等各种各样的增值服务,以带来更多的收入。 为支持
[单片机]
<font color='red'>ARM</font>硬件支持java技术Jazelle DBX
ARM 命名规则、架构
处理器的命名应该包含两类:指令集架构命名规则和处理器系列规则。 可以先来看一张简图: 可见:架构的命名比较规则从ARMv1到ARMv8,数字越大越先进。但是处理器系列的命名就比较混乱了,因此接下来以架构的顺序来介绍ARM的历史: (1)ARMv1、ARMv2 这两代没有做CPU,没有商业化; (2)ARMv3 对应的 CPU 是 ARM6; (3)ARMv4 首次增加 Thumb 指令集; 对应的 CPU 有:ARM7-TDMI,ARM720-T,ARM9-TDMI,ARM920-T,ARM940-T (4) ARMv5 改进了 Thumb,首次增加 E(增强型DSP指令)、J(Java加速器
[单片机]
<font color='red'>ARM</font> 命名规则、架构
代号Maya和Artemis:ARM开发64位新处理器
   据外媒报道,ARM公司CEO Simon Segars日前在财报会议上透露,公司目前正在开发新一代64位架构处理器,代号分别是Maya(玛雅)和Artemis(月亮女神)。 ARM开发新64位处理器(图片来自驱动之家)   ARM公司透露,这两款处理器是ARM尖端技术的结晶,有助于进一步提升市场占有率,但并没有透露这两款处理器的详细信息。只是表示这两款处理器基于ARMv8指令集研发,采用新架构,预计命名还是Cortex-A5x。   此外,ARM还称,目前已经有两家厂商获得了新版处理器授权,这意味着这两款处理器的研发进度已经已经接近尾声了,预计最快上市时间也会在明年初。   据了解,目前实现商用的64为ARM处理
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved