翻译 CoreSight Technical Introduction White Paper

本文深入探讨了ARM CoreSight技术中的Debug与Trace模块,解析了非侵入性调试与侵入性调试的区别,详细介绍了DAP、DP、AP的架构与功能,以及它们在SoC中的角色和交互方式。
  • CoreSight Technical Introduction White Paper
coresight_technical_introduction_EPM_039795.pdf
http://infocenter.arm.com/help/topic/com.arm.doc.epm039795/coresight_technical_introduction_EPM_039795.pdf
//本篇文章内容来源于对上述书籍的理解
//本篇文章主要对 coresight 中的 Debug 部分进行阐述

综述

coresight 分为两大内容
	Debug
	Trace

Trace 简单介绍


coresight提供的特性 使得
	1.可以连续收集系统信息 //以便以后进行离线分析。
	2.检测软件 // ETM
	3.一些外围设备可以生成性能监视跟踪流。

Trace 技术属于 非侵入性调试.Trace运行的时候处理器全速运行,Trace做以下动作:
	•进行信息收集和数据传输。
	•芯片外实时传输或在片上存储器中捕获。
	•将数据与源代码合并 // 以供将来分析的工具。

Debug 简单介绍

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 access and DAP topology
属于 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个,同一芯片上的上百个处理器可以共用一个DP


DP接口提供
	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执行另一次访问才能检索数据值。这不必导致第二次片上访问。

	访问失败:
		当访问由于某种原因失败时,调试器能够识别失败。通常,调试器可以重新尝试访问并从接口上的简单错误中恢复。
名词解释
  • TAP
Test Access Port 测试访问端口
  • DAP
Debug access port
  • DP
Debug port
  • AP
access port
  • APB
amba 总线
  • AHB
amba 总线
  • AXI
amba 总线
  • JTAG
硬件接口
  • TAR
target address register
  • SWJ
SWD(Serial Wire) 与 JTAG接口
  • CTI
Cross Trigger Interface
当有信号要采集或驱动时,使用交叉触发接口(CTI)来控制感兴趣信号的选择
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值