ARM Coresight 及 DS-5 介绍 1 - Cosight介紹

【ARM DS-5 系列】

文章目录

  • 前言
    • 1.1 ARM DS-5 简介
      • 1.1.1 DS-5 与 Coresight 关系
      • 1.1.2 Trace 通路
      • 1.1.3 Debug 通路
      • 1.1.4 Trigger 通路
    • 1.2 Coresight 组件的种类
      • 1.2.1 Control component
      • 1.2.2 Trace sources
      • 1.2.3 Trace links
      • 1.2.4 Trace Sinks
      • 1.2.5 Debug Access Port


前言

本文主要介绍在实际工作 DS-5 常见的一些用法
DS-5 相关资料可以访问其官网:
https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio

官网可以下载各种资料:
ARM Coresight 及 DS-5 介绍 1 - Cosight介紹_第1张图片

1.1 ARM DS-5 简介

ARM DS-5(ARM Development Studio 5) 是对 ARM 支持的 RTOS/Linux 平台的全面的软件开发工具套件。ARM DS-5 提供具有跟踪、系统范围性能分析器、实时系统模拟器和编译器的应用程序和内核空间调试器。在实际的工作中可能使用最多的也就是其调试功能,主要是在线调试和线下分析。

1.1.1 DS-5 与 Coresight 关系

Coresight 是 ARM 公司提出的,用于对复杂的 SOC,实现 debug 和 trace 的架构。该架构,包含了多个 Coresight 组件。众多的coresight组件,构成了一个 coresight 系统。我们也可以根据 coresight 架构,实现自己的 coresight 组件。
每个coresight的组件(component),都要遵循 coresight 架构的要求。

典型的一个coresight的环境
以下是一个典型的coresight环境,包含了两个ARM core,一个DSP,和众多的coresight组件。这个coresight组件,实现对core,DSP的debug和trace功能。
ARM Coresight 及 DS-5 介绍 1 - Cosight介紹_第2张图片
环境中,总共包括3个通路

  • trace 通路: 将core和DSP内部信息输出到外部;
  • debug 通路:对core和DSP实现debug;
  • trigger 通路: 用于core和core之间,core和DSP之间,传输trigger信号。

1.1.2 Trace 通路

trace 通路 实现对 master 组件的数据追踪功能,使用 ETM 来追踪。
ETM 负责追踪处理器和 DSP 的信息,将信息打包,通过 ATB 总线发送到 trace bus上。trace bus上有 trace funnel,funnel 接收多个 ATB 总线数据,然后合并成一个 ATB 总线数据,发送给replicator。
replicator接收到ATB数据,根据配置,将 ATB 数据发送给 ETB 和 TPIU。

1.1.3 Debug 通路

Debug 通路 用于外部的 debugger,对 ARM core 和 DSP 进行调试功能。
上图中,只考虑了 JTAG 的 port。其实还有SWO 的 port。

DAP 接收外部端口的 JTAG 数据,然后转化成对 DAP 内部的 AP 的访问,然后 AP 再转化为 memory-mapped 的总线访问,去访问 soc 内部的资源。

上图中,DAP 输出两个memory-mapped 总线:

  • 一个是debug apb总线,连接到debug APB互联上,用于访问debug组件的寄存器;
  • 一个是system bus,连接到bus matrix,用于访问soc的内部的资源。

Debug APB 互联,连接了有CTI,ETM,HTM,ITM,ETB,TPIU 等 coresight 组件,因此外部的 debugger 可以通过JTAG port,对这些coresight组件进行访问。

bus matrix一般是连接soc的一些外设,如memory,串口等,因此外部的 debugger 可以通过 JTAG port 对这些外设设备进行访问。

1.1.4 Trigger 通路

Trigger 通路 用于给指定的组件发送 trigger 信号,或者接收指定的组件的 trigger 信号。这个功能由 CTICTM 来实现。每个 core 和 DSP 都有一个 CTI 组件相连,CTI 可以给处理器(DSP)发送trigger信号,也可以接收处理器(DSP)的trigger信号。

所有的 CTI 和 CTM 相连,因此可以实现多个 CTI 之间的 trigger信号的相互发送与接收。

1.2 Coresight 组件的种类

1.2.1 Control component

Trigger 的 Coresight 组件

  • ECT(embedded cross trigger)
  • CTI(cross trigger interface):接收和发送trigger信号
  • CTM(cross trigger matrix):CTI之间的trigger信号传递

1.2.2 Trace sources

Trace 的 coresight 组件:

  • ETM(embedded trace macrocells):追踪指定设备(处理器,DSP)的trace信息,每个设备(处理器,DSP)均有自己的ETM;
  • AMBA trace macrocells:追踪 AMBA 总线的 trace信息;
  • PTM(program flow trace macrocells);
  • **STM(**system trace macrocells):追踪总线互联上的trace信息。

1.2.3 Trace links

Trace 信息传递过程中所需要的中间coresight组件:

  • trace funnel : 将接收的多个ATB总线数据合并成一个ATB总线数据;
  • replicator: 将一个ATB总线数据,分发成多个ATB总线数据发送;
  • ATB bridge: ATB 桥,用于两个不同的ATB域之间数据传输。

1.2.4 Trace Sinks

最终接收 trace 信息的 coresight组 件

  • TPIU(trace port interface units):将ATB数据通过trace port发送给外界;
  • ETB(embedded trace buffers): 存储 ATB 数据的 buffer;
  • TMC(trace memory controller):

每个 trace sink 可以有一个 trace formatter。

1.2.5 Debug Access Port

DAP 不属于 Coresight 的组件,但是我们会通过 DAP 来对 Coresight 的组件进行访问。
DAP 包括以下:

  • APB access port(APB-AP)
  • AHB access port(AHB-AP)
  • AXI access port(AXI-AP)
  • JTAG access port(JTAG-AP)
  • serial wire JTAG debug port(SWJ-DP)
  • JTAG debug port(JTAG-DP)
  • ROM table

DAP主要是由DP和AP组件。DP负责接收外部的JTAG或SW数据,然后转化为对AP的访问,而对AP的访问,是可以发起memory-mapped的访问。因此就可以对内部的资源进行访问。
ARM Coresight 及 DS-5 介绍 1 - Cosight介紹_第3张图片
如上图:
DAP 包括了三个 AP:

  • APB-AP: 对挂接到debug APB总线上的内部调试设备的访问;
  • AHB-AP: 对挂载在AHB系统总线上的设备的访问;
  • JTAG-AP: 对JTAG设备的访问。这个是兼容以前较早的ARM处理器,如ARM9。这些较早的处理器内部是用JTAG来调试的。但是现在的ARM处理器,已经不用这种方式,统一用memory-mapped方式进行调试。

目前的 ARM soc中,一般至少会包括一个DAP。而一个DAP可以包括1-256个AP(access port),AP受DP的控制。只有对AP的访问,才可以转化成memory-mapped总线,对soc的内部资源进行访问。

参考阅读:
https://aijishu.com/a/1060000000119436

你可能感兴趣的:(#,ARM,CPU,Coresight系类介绍,arm,嵌入式硬件)