ARM Coresight -- 与内核并列的调试系统架构

本文介绍了ARM公司的CoreSight架构,详细阐述了该架构中的关键组件,如ETM(嵌入式跟踪宏单元)、PTM(程序跟踪宏单元)及各种跟踪和调试工具。此外还解释了CoreSight如何通过不同的模块实现对芯片上系统(SoC)的性能调试、监视和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、CoreSight 

CoreSight是一种基础架构,它可对完整的芯片上系统 (SoC) 设计的性能进行调试、监视和优化,CoreSight™ 跟踪宏单元在 SoC 中提供全面的

非干预性可见性。通过遵循 CoreSight 架构规范,可以方便地将合作伙伴特定的跟踪宏单元集成到 CoreSight 系统中。

ARM公司的CoreSight AHB追踪分析宏单元提供给了开发人员完整的AMBA AHB上行为的可见性,为调试和优化系统带来了很大的便利。

CoreSight(内核景象)调试架构是ARM在推出Cortex之后推出来的,旨在丰富ARM产品的调试功能,功能是相当强大

CoreSight技术支持JTAG协议和SW协议,其实更具体的说实际上是CoreSight把JTAG和SW协议转换成通用的内部DAP协议

这里只是利用了JTAG和SW接口。

ARM开发工具和 Keil开发工具以及全球超过 25 个其他调试和性能分析工具支持 CoreSight 产品组合(包含 ARM 嵌入式跟踪宏单元(ETM)),

从而向产品开发团队保证其产品将得到广泛的支持。

2、ETM

---- Embedded Trace Macrocell 嵌入式跟踪宏单元

ETM 宏单元为 ARM 微处理器提供实时指令跟踪和数据跟踪。跟踪软件工具使用 ETM 生成的信息重建全部或部分程序的执行情况。

3、PTM

---- Program Trace Macrocell 程序跟踪宏单元

PTM 是一个模块,它根据程序流程跟踪 (PFT) 体系结构执行实时指令流跟踪。跟踪工具使用 PTM 生成的信息重建全部或部分程序的执行情况。

4、术语

---- CTI:Cross Trigger Interface 交叉触发接口

---- ETB:Embedded Trace Buffer 嵌入式跟踪缓冲区

CoreSight ETB 是一个跟踪接收器,它可使用可配置大小的 RAM 为跟踪数据提供芯片上存储。

---- ETR:Embedded Trace Router

---- ETF:Embedded Trace FIFO

---- STM:System Trace Macrocell 系统跟踪宏单元

STM为所有软件开发人员提供了低成本的软件和硬件执行实时可见性,尤其是应用程序和内核开发人员,从而为整个供应链中支持 ARM 处理器

的设备提供了功能丰富且优化的低能耗软件。

---- TMC:Trace Memory Controller

---- TPIU:Trace Port Interface Unit

---- Funnel

---- Replicator

---- DAP:Debug Access Port 调试访问接口

Cortex-M3 的调试系统是基于ARM最新的CoreSight架构。不同于以往的ARM处理器,内核本身不再含有JTAG接口。取而代之的,是CPU提供

的DAP总线接口。通过这个总线接口,可以访问芯片的寄存器,也可以访问系统存储器,甚至是在内核运行的时候访问。对此总线接口的使用,

是由一个调试端口(DP)设备完成的。DPs不属于CM3内核,但它们是在芯片的内部实现的。目前可用的DPs包括SWJ-DP(既支持传统的JTAG

调试,也支持新的串行线调试协议),另一个SW-DP则去掉了对JTAG的支持。另外,也可以使用ARM CoreSight家族的JTAG-DP模块。

根据在coresight架构中的作用,这些模块大体可以分为source/link/Sink三种类型。

Source就是指一些信号或者profile/debug数据的来源,比如STM和ETM。

Sink就是指一些可以保持这些从source过来数据的模块,比如最基本的ETB,从buffer这个单词大体可以猜出一二,另外还有ETR,TPIU等等。

讲完了source和sink之后,那么link就是指用于引导从source到sink过程中的类似于通道作用的模块。当然这些通道的作用各不一样。

FUNNEL是用途将来之不同的source的数据合并,而replicator是这些合并之后的数据再一式两份,发送给不同的sink。

replicator从这个英文名称中就可以看出端倪。

下面是ARM官方文档中的一张截图,大体可以看出这些不同的模块在整个coresight架构中的作用。



03-19
<think>好的,我现在需要回答用户关于“jtag-dp”的问题。首先,我得确认自己对这个术语的理解是否正确。JTAG-DP听起来像是和JTAG相关的某个术语,可能涉及调试或接口方面。 首先,我应该回忆一下JTAG的基础知识。JTAG全称是Joint Test Action Group,是一种用于电路板测试和调试的标准接口,后来被IEEE标准化为1149.1。主要用于边界扫描测试,允许通过专用的测试访问端口(TAP)来检测集成电路的连接和功能。 接下来,DP这个缩写可能有多种含义,但在JTAG上下文中,常见的有两种可能性:Debug Port(调试端口)或者Design Process(设计流程)。不过考虑到技术术语,Debug Port的可能性更大。例如,在ARM架构中,CoreSight调试架构中的调试端口就有不同的类型,比如JTAG-DP和SWD-DP(Serial Wire Debug Debug Port)。 所以,JTAG-DP可能指的是通过JTAG接口实现的调试端口。这种调试端口允许调试工具通过JTAG协议目标设备的处理器或芯片通信,执行诸如设置断点、读写内存、控制处理器运行等调试操作。 接下来,我需要验证这个理解是否正确。查阅相关资料,比如ARMCoreSight文档,确实提到了JTAG-DP作为调试接口的一部分。它作为调试访问端口,使用标准的JTAG引脚(如TMS、TCK、TDI、TDO)进行通信,而SWD-DP则使用更少的引脚,适合空间受限的应用。 此外,JTAG-DP通常用于更复杂的调试场景,支持多核处理器的调试,能够访问系统内存和外设寄存器。这对于嵌入式系统开发尤其重要,开发者可以通过JTAG接口连接调试器,进行底层调试和故障排查。 可能还需要比较JTAG-DP和其他调试端口的区别,比如SWD。SWD使用两线制(SWDIO和SWCLK),而JTAG需要四线,因此在引脚资源紧张时,SWD更有优势。但JTAG-DP在兼容性和功能上可能更全面,尤其是在支持边界扫描测试方面。 用户可能还想了解JTAG-DP的应用场景,比如在嵌入式开发中如何使用它进行调试,或者它在芯片设计中的作用。此外,可能涉及配置和使用JTAG-DP时需要的硬件工具,如JTAG调试器,以及软件工具链的支持。 还需要注意,JTAG-DP的具体实现可能因厂商而异,但遵循IEEE 1149.1标准的基本原理。在ARM架构中,JTAG-DP是CoreSight调试子系统的一部分,负责处理调试访问请求,并系统的其他调试组件协同工作。 总结来说,JTAG-DP是一种基于JTAG协议的调试端口,用于在嵌入式系统中实现高效的硬件调试和测试。了解其工作原理和应用场景,对于嵌入式系统开发者来说非常重要,尤其是在进行底层调试和系统验证时。</think>JTAG-DP(JTAG Debug Port)是一种基于JTAG协议的调试接口,主要用于嵌入式系统的硬件调试和测试。以下是详细介绍: ### 1. **基本概念** - **JTAG基础** JTAG(Joint Test Action Group)是一种国际标准(IEEE 1149.1),最初用于电路板的边界扫描测试。它通过专用的测试访问端口(TAP)控制芯片引脚状态,检测电路连接性。 - **JTAG-DP定义** JTAG-DP是JTAG调试端口,属于调试接口的一种。在ARM CoreSight调试架构中,它SWD-DP(Serial Wire Debug)并列,提供通过JTAG协议访问处理器内核的能力。 --- ### 2. **核心功能** - **调试操作支持** - 读写内存和寄存器 - 设置断点/观察点 - 单步执行、暂停/恢复处理器 - 多核调试支持 - **边界扫描测试** 通过JTAG接口检测PCB上的电路连接故障(如开路、短路)。 --- ### 3. **硬件接口** - **标准引脚** - **TCK**:测试时钟 - **TMS**:测试模式选择 - **TDI**:测试数据输入 - **TDO**:测试数据输出 - **nTRST**(可选):复位TAP控制器 $$ \text{JTAG接口需4-5根信号线,比SWD(2线)占用更多引脚} $$ --- ### 4. **JTAG-DP vs. SWD-DP** | **特性** | **JTAG-DP** | **SWD-DP** | |----------------|----------------------------|--------------------------| | 引脚数量 | 4-5根 | 2根(SWDIO, SWCLK) | | 速度 | 较低(受TCK频率限制) | 较高(支持更高时钟速率) | | 应用场景 | 复杂调试、边界扫描测试 | 引脚资源受限的嵌入式系统 | | 兼容性 | 广泛支持传统设备 | 需目标芯片支持SWD协议 | --- ### 5. **典型应用场景** - **嵌入式开发调试** 通过JTAG调试器(如J-Link、ST-Link)连接目标板,实时监控程序执行。 - **生产测试** 利用边界扫描功能检测PCB焊接质量。 - **芯片验证** 在芯片设计阶段验证逻辑功能。 --- ### 6. **使用流程示例** 1. **硬件连接** 将调试器的JTAG接口目标板的TCK、TMS、TDI、TDO引脚连接。 2. **软件配置** 在IDE(如Keil、IAR)中选择JTAG调试模式,并设置调试参数。 3. **调试操作** - 下载固件到Flash - 设置断点 - 查看寄存器/内存值 --- ### 7. **注意事项** - **电平匹配** 确保调试目标板的电压一致(如3.3V vs. 5V)。 - **时序问题** 长线缆可能导致信号延迟,需限制TCK频率。 - **安全性** JTAG接口可能暴露芯片内部数据,生产中需禁用或物理保护。 --- ### 总结 JTAG-DP是嵌入式开发中重要的调试接口,适合需要深度硬件控制的场景。尽管引脚占用较多,但其兼容性和边界扫描功能使其在复杂系统中不可替代。对于资源受限的项目,可考虑SWD-DP作为替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值