[ARM系列]coresight(一)

原文链接

目的:对复杂SOC实现debug和trace的架构

典型环境

包含:2个ARM core,一个DSP,众多coresight组件

coresight组件实现对core、DSP的debug和trace功能

  • 环境中包含3个通路
    • trace通路:将core和DSP内部信息输出到外部
    • debug通路:对core和DSP实现debug
    • trigger通路:用于core 和 core之间,core和DSP之间,传输trigger信号

trace通路

实现对master组件数据追踪 功能,使用ETM追踪。

ETM负责追踪处理器和DSP信息,将信息打包,通过ATB总线发送到trace bus上。

trace bus上有trace funnel,funnel接收多个ATB总线数据,然后合并成一个ATB总线数据,发送给replicator。

replicator接收到ATB数据,根据配置,将ATB数据发送给ETB和TPIU

  • 注:
    • trace funnel是一种硬件组件,用于在系统级别收集和整合来自多个处理器核心的跟踪数据 。它允许将来自多个源的跟踪数据聚合到一个单一的数据流中,以便更容易地进行分析和调试
    • ATB总线:Advanced Trace Bus,是一种用于连接跟踪组件的专用总线,通常在芯片上实现,用于传输跟踪数据

debug通路

用于外部的debugger,对ARM core和DSP进行调试功能。

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

  • 一个是debug apb总线,连接到debug APB互联上,用于访问debug组件的寄存器
  • 一个是system bus,链接到bus matrix,用于访问soc的内部的资源
    debug apb互联,连接了有CTI ETM HTM ITM ETB等组件,因此外部的debugger可以通过JTAG port,对这些coresight素锦进行访问
    bus matrix一般是连接soc的一些外设,如memory,串口等,因此外部的debugger可以通过JTAG port对这些外设设备进行访问

trigger通路

用于给指定的组件发送和trigger信号,或接收指定的组件的trigger信号

这个功能由CTI和CTM实现

每个core和DSP都有一个CTI组件相连,CTI可以给处理器DSP发送trigger信号,也可以接收处理器DSP的trigger信号

所有的CTI和CTM相连,故可以实现多个CTI之间的trigegr信号的互发与接收

coresight组件的种类

control component

trigger的coresight组件

  • ECT(embedded cross trigger):一种调试和追踪功能,通常用于多核系统或多处理器系统中
    • CTI(cross trigger interface):接收和发送trigger信号
    • CTM(cross trigger matrix):CTI之间的trigger信号传递

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信息

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

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

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

debug access port

DAP不属于coresight组件,但是我们会通过DAP来对coresight的组件进行访问。

DAP主要是由DP和AP组件。DP负责接收外部的JTAG或SW数据,然后转化为对AP的访问,而对AP的访问,是可以发起memory-mapped的访问。因此就可以对内部的资源进行访问。

DAP包括三个AP:

  • APB-AP:对挂接到debug APB总线上的内部调试设备的访问
  • AHB-AP:对挂载在AHB系统总线上的设备的访问
  • JTAG-AP: 对JTAG设备的访问。这个是兼容以前较早的ARM处理器,如ARM9。这些较早的处理器内部是用JTAG来调试的。但是现在的ARM处理器,已经不用这种方式,统一用memory-mapped方式进行调试
相关推荐
TeYiToKu16 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
w微信150135078121 天前
小华一级 代理商 HC32F005C6PA-TSSOP20 HC32F005系列
c语言·arm开发·单片机·嵌入式硬件
憧憬一下1 天前
Pinctrl子系统中Pincontroller和client驱动程序的编写
arm开发·嵌入式·c/c++·linux驱动开发
上海知从科技2 天前
知从科技受邀出席ARM日产技术日
arm开发·科技
极客小张3 天前
基于STM32的智能温室环境监测与控制系统设计(代码示例)
c语言·arm开发·stm32·单片机·嵌入式硬件·物联网·毕业设计
TeYiToKu3 天前
笔记整理—linux驱动开发部分(6)platform平台总线
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件
飞腾开发者4 天前
飞腾平台Arm ComputeLibrary编译安装指南
linux·服务器·arm开发·后端·性能优化
CodingCos4 天前
【ARM Linux 系统稳定性分析入门及渐进 1.1 -- Crash 工具功能概述】
linux·arm开发·crash tools·linux crash·crash 工具使用
@haihi5 天前
IIC和SPI的区别和相同之处
arm开发·stm32·mcu
@@庆5 天前
FreeRTOS 数据传输方法(环形buffer,队列的本质)队列实验—多设备玩游戏
arm开发·stm32·单片机·嵌入式硬件·freertos