本文共 2580 字,大约阅读时间需要 8 分钟。
coresight_technical_introduction_EPM_039795.pdfhttp://infocenter.arm.com/help/topic/com.arm.doc.epm039795/coresight_technical_introduction_EPM_039795.pdf//本篇文章内容来源于对上述书籍的理解//本篇文章主要对 coresight 中的 Debug 部分进行阐述
coresight 分为两大内容 Debug Trace
coresight提供的特性 使得 1.可以连续收集系统信息 //以便以后进行离线分析。 2.检测软件 // ETM 3.一些外围设备可以生成性能监视跟踪流。Trace 技术属于 非侵入性调试.Trace运行的时候处理器全速运行,Trace做以下动作: •进行信息收集和数据传输。 •芯片外实时传输或在片上存储器中捕获。 •将数据与源代码合并 // 以供将来分析的工具。
debug_interface_v6_0_architecture_specification_IHI0074B.pdf 中更详细的介绍了 Debug 模块DGI0012D_coresight_dk_sdg.pdf 也有介绍DDI0314H_coresight_components_trm.pdf 也有介绍
作用: 1.观察与修改(处理器寄存器,片上设备寄存器) 2.触发 3.停止 运行中的处理器Debug 是一种侵入性调试.Debug 分类: 常规JTAG调试(“外部”调试) 1.用 断点和监视点 在条件满足情况下 停止处理器。 2.在处理器停止情况下,用 debug connection 检查和修改 寄存器和内存,并提供单步执行。 常规监视器调试(“自托管”调试) 处理器运行时,处理器使用驻留在内存中的调试监视器(代码,被两个异常处理函数调用)运行
属于 Debug 部分的 常规JTAG调试
DAP DP 与 AP DAP 是 边界扫描测试技术 中的 核心控制器. 在arm coresight 最新架构中,DAP被分成了两个部分 : DP 和 AP // https://zhuanlan.zhihu.com/p/24517355 AP在微架构中实现,DP不在微架构中实现,DP在芯片中实现. 一个soc 中有一个 DP(一个soc有个),多个AP(每个核心对应一个). AP与DP之间用 通用调试总线 连接. 从理论上说DAP总线上的设备最多支持256个,同一芯片上的上百个处理器可以共用一个DP。DP与外部调试端口的连接 来自外部调试器的调试端口访问作为32位(word)读或写事务执行,目标是DP寄存器或访问端口(AP)寄存器。 多个调试端口(通常在多个包中)可以使用以下方法从单个外部调试代理寻址: 菊花链JTAG扫描链 星型拓扑JTAG扫描链 多点串行线DP与AP的连接 DP与AP之间用 通用调试总线 连接. //32位 总线上有一个DP 和 N个AP // 理论上说DAP总线上的设备最多支持256个,同一芯片上的上百个处理器可以共用一个DPDP接口提供 1.实现了外部接口 2.调试器始终处于连接状态 3.调试故障和状态报告 4.电源和复位请求接口 5.将外部信号转换为32位通用调试总线 // 总线高8位用于选择要访问的设备 DP 有几种: SWJ-DP // 支持SWD 和 JTAG SW-DP // 只支持 SWD JTAG-DP // ARM CoreSight提供的AP接口提供 AP由DP控制,以响应外部命令。 大多数AP 实现一个 master port,该 master port 与片上标准总线接口相连。 内存AP 内存AP存在于内存映射接口(内部总线),如APB、AHB和AXI. 内存ap提供以下特性: 目标地址寄存器 读取或写入目标地址 总线错误报告 交易进行中状态 地址递增(加速块读/写操作) 访问控制机制 有关连接的调试组件的信息 执行显示为系统主控或外部调试代理的访问。 AP 有几种: AXI-AP AHB-AP APB-AP MEM-AP JTAG-AP // 用于 连接 传统JTAG TAP控制器如何通过 外部调试端口 访问 DP 和 AP DAP中的单元地址是内存映射地址 如何访问: // 一个DAP地址可能需要多次访问才能启用正确的路径 1. 片上存储器映射中的目标地址: 2.DP标识符: 调试代理可能支持对多个DAP的并发访问。 3.AP选择: 通过写入DP中的寄存器来选择 哪一个目标AP. 4.TAR Select: 通过写入AP中的寄存器来设置 目标地址 . 每个AP可以对目标系统中的某些或所有内存映射组件具有唯一的视图。 5.数据访问: 一旦设置了DAP访问系统所需的所有地址,对AP的请求就可以以读或写的方式启动片上访问。 6.读取数据检索: 虽然现在将继续进行片上访问,但调试器必须对DAP执行另一次访问才能检索数据值。这不必导致第二次片上访问。 访问失败: 当访问由于某种原因失败时,调试器能够识别失败。通常,调试器可以重新尝试访问并从接口上的简单错误中恢复。
Test Access Port 测试访问端口
Debug access port
Debug port
access port
amba 总线
amba 总线
amba 总线
硬件接口
target address register
SWD(Serial Wire) 与 JTAG接口
Cross Trigger Interface当有信号要采集或驱动时,使用交叉触发接口(CTI)来控制感兴趣信号的选择
转载地址:http://cgngi.baihongyu.com/