
ARM Coresight 系列
文章平均质量分 93
详细介绍ARM Coresight 系统的下的各个component(ETM/ITM/STM/CTI/DWT/CATU/ETR/Funnel/ETF/ETB)的原理及使用方法,其中包括ARM SoC-400中的组件和 ARM SoC-600的组件,此外会详细介绍JTAG-AAP/AHB-AP...
优惠券已抵扣
余额抵扣
还需支付
¥359.90
¥399.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
主公讲 ARM
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】
1. ARM Coresight(SoC-400/SoC-600) 专栏2. ARMv8/v9 CPU/Cache 专栏3. Linux ARM AMBA 总线 专栏4. Trace32/DS-5 专栏。。。原创 2023-10-17 10:26:34 · 6548 阅读 · 0 评论 -
【ARM Coresight 系列文章 9.1 -- ARM ETM/ETE trace 数据解析详细介绍 】
Advanced Trace Bus (ATB) Trace ID of the trace to be decoded. trace 的 ATID 号。Arm Compiler for Embedded. Version 6.16 or later. 依赖的编译器,因为需要进行反汇编。ARM 一共提供了两种解析方法,一种是通过带有GUI界面的解析工具,另外一种就是通过命令行来解析。,本文抓的是ETE trace,所以下载了这个配套的文件。如果抓的是TRBE ETE 的trace 还需要下载。原创 2024-11-28 11:00:15 · 612 阅读 · 0 评论 -
【ARM Coresight Debug 系列 -- ARMv8/v9 Watchpoint 代码实现地址监控】
由于在测试中,我希望发生地址匹配后停下CPU,所以,我的代码中将其配置为。: 首先需要使能 watchpoint exception;,本篇文章主要是介绍如何使用代码来实现地址监控。的时候,它里面装的是寄存器。原创 2024-06-13 11:02:42 · 741 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.6 -- ARM Coresight JTAG 与 DFT 测试】
DFT(Design for Testability,可测试性设计)是一种在集成电路(IC)设计过程中使用的技术,旨在通过特定的设计技巧简化对芯片的测试,确保能够高效、准确地检测出制造过程中可能产生的缺陷。几乎所有的公司都会用JTAG来做DFT的验证,在ATE平台上,通过JTAG接口,将pattern向量通过JTAG接口打入chip,然后驱动chip内部的逻辑,并对chip进行验证。DFF是数字电路中的一种基本存储单元,用于存储一位二进制信息。它有两个主要的输入:数据输入D和时钟输入CLK,以及一个输出Q。原创 2024-05-30 14:51:42 · 487 阅读 · 0 评论 -
【ARMv9 DSU-120 系列 9.2 -- Cluster 和 Cores CTI 详细介绍】
Debug APB 可以通过访问内部的CTI寄存器来配置trigger event的路由,比如外部debugger trace32 可以配置PE进入 Debug state。外部的cross-trigger channel 可以连接到 CTM 上,这样外部就可以给内部发送trigger信号。上图中的CTIS 既包含和连接到每个core上的CTI 也包含了连接到cluster上的CTI。原创 2024-04-24 11:23:18 · 800 阅读 · 0 评论 -
【ARMv9 DSU-120 系列 9 -- DSU-120 Debug block】
ARMv9架构通过支持单线程和多线程核心,提供了灵活的处理能力,以满足各种计算需求。它的调试系统进一步增强了这种灵活性,通过允许对单个PE进行精确调试,使开发者能够有效地优化性能、诊断问题并分析系统行为。这种级别的控制和透明度对于开发复杂、多线程应用和系统至关重要。原创 2024-04-23 22:48:11 · 855 阅读 · 0 评论 -
【ARM Coresight 系列文章 11.1 -- CoreSight Cortex-M33 CTI 详细介绍】
以上图 Cortex-M33 内部CTI 网路为例进行介绍,比如 SoC 中其他的core(Cortex-A) 在某一个时刻准备 halt 住 M33,就可以通过配置CTI Output channels 来产生 脉冲,然后送给 Debug request(TriggerOut Event),当 Debug request 信号拉高后,M33 就会进入halt 状态停止运行。:CTI 可以在处理器的不同功能单元之间进行相互触发,例如,当一个核心停止时,可以触发另一个核心停止。同样是脉冲信号的通信协议。原创 2024-03-21 14:39:26 · 1548 阅读 · 0 评论 -
【ARM Coresight 系列文章 8.1 - ARM Coresight 通过 APBIC arbiter】
根据上述规则,仲裁器会首先授予 slave interface 0 访问权,然后是 slave interface 1,接着是 slave interface 2,最后是 slave interface 3。也就是说,如果 slave interface 0 和 slave interface 1 同时请求访问,那么 slave interface 0 的请求将被优先考虑。这意味着每个slave interface的访问都是独立的,不会因为连续的访问而保留优先级。原创 2024-02-02 10:56:53 · 403 阅读 · 0 评论 -
【ARM Coresight 系列 2 文章 -- Trace32 对 APBIC 地址的配置 介绍】
如上图所示,如果想通过Trace32/DS-5 去访问 AP, 这个时候需要怎么做呢?可以看到 APBIC 中ROMTABLE 中 APB-AP 的偏移是。,又从 APB-AP 的romtable 中可以看到 AP 的偏移为。同样,如果要访问 soc funnel, 需要配置的地址为。,所以 APB-AP的基地址为。图 1 APBIC 网络图。,所以AP 的基地址为。原创 2023-12-07 14:00:34 · 930 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.5 - ARM Coresight -- JTAG-DP(JTAG Debug Port) 详细介绍】
本节内容主要介绍 JTAG Debug Port 、Debug Test Access Port (DBGTAP), Debug Test Access Port State Machine (DBGTAPSM), 和 scan chains。本节对对 IEEE 1149.1中的一些专业名词加了前缀 “DBG”TAPDBGTAPTAPSMDBGTAPSM。原创 2023-11-07 16:30:40 · 1431 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.4 - ARM Coresight JTAG 详细介绍】
IEEE 1149.1标准测试访问端口和边界扫描架构的名称称为JTAG(联合测试行动组),这种边界扫描架构主要用于计算机处理器,因为第一个带有JTAG的处理器是由Intel发布的。该IEEE标准简单地定义了如何测试计算机的电路以确认其在制造过程后是否正常工作。在电路板上,可以用来执行测试以检查焊点。联合测试行动小组为测试人员提供了每个IC焊盘的引脚视图,有助于识别电路板内的任何故障。一旦该协议与芯片接口,就可以通过允许开发人员控制芯片及其与其他芯片的连接,将探针连接到芯片。原创 2023-11-07 11:05:45 · 1384 阅读 · 0 评论 -
【ARMv9 DSU-120 系列 -- AMU 详细介绍】
AMU 的用途是系统管理和监控,特别是功耗和性能管理。例如,可以使用 AMU 计数器作为 CPU 处理器活跃度信息来帮助 DVFS 的调节。AMU提供了少数的简单,固定的,free-running的计数器。AMUv1包括下列事件计数器:4个构架规定的64-bit事件计数器CPU cycle计数器,它以CPU的频率递增;常量计数器,它以system counter的固定频率递增;原创 2023-10-26 17:04:20 · 1418 阅读 · 0 评论 -
【ARM Coresight 系列文章 15.2 – components power domain 详细介绍】
ROM Table 中有个一个 power requester q 和两个组件 i 和 j, 对于 组件 i 和 j 的上电请求是通过 power requster q 发出的,因为 power requester q 处于 power domian 1,所以 q 控制的两个power domian 隶属于 power domian 1, 分别是power domain 1.0 和 power domian 1.1.为了支持向系统的其他部分请求电源,GPR功能被扩展到支持多达32个电源域的电源请求。原创 2023-10-25 16:38:09 · 1825 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.3 - ARM Coresight SWD 协议详细介绍】
首先 HOST 对SW-DP 进行操作,确定 AP 寄存器的参数,达到对 Cortex Memory Map 进行操作。如果想要写入/读出SoC上memory或者寄存器中的值,需要用到两个AP寄存器:TAR(The Transfer Address Register) 和 DRW(The Data Read/Write Register)。此时只能访问DP寄存器组,AP 寄存器组还无法访问。(指烧录器读取DP或MEM-AP寄存器的数据)(烧录器往DP或MEM-AP寄存器的写操作)数据的奇偶校验位组成。原创 2023-10-25 09:50:05 · 1572 阅读 · 0 评论 -
【ARM Coresight 系列文章19.1 -- Cortex-A720 PMU 详细介绍】
PMU(Performance Monitor Unit)本来指的就是硬件上的性能监控计数器(counter)。软件大部分是插桩法,对于没有插桩的地方缺乏监控;软件使用 hrtimer 的采样法开销较大,而且不精确。所以使用硬件采样来trace是一个很好的补充。cpu-cyclescache相关事件等等。它的监控原理比较简单:每个CPU有几个 counter,Counter0 固定只能配置成 cpu-cycles,其他 counter 可以配置成支持的任意类型。原创 2023-10-20 20:21:59 · 974 阅读 · 0 评论 -
【ARM Coresight Debug 系列 17 -- ARM Debug Vector Catch 详细介绍】
可以通过配置寄存器 DBGVCR( Debug Vector Catch Register)来使能 Vector Catch功能,这个寄存器的每一bit对应一种异常类型,bit 配置为1时使能响应异常的 Vector Catch 功能。在AArch64 架构下 Vector Catch异常 不会产生,在使用AArch64时不会在EL1下产生 Vector Catch 异常,只有在使用 AArch32 架构下在 EL1才会产生 Vector Catch 异常。对于这个寄存器的配置分为。中相应的使能位置位。原创 2023-10-17 13:53:15 · 749 阅读 · 0 评论 -
【ARM Coresight Debug 系列 16 -- Linux 断点 BRK 中断使用详细介绍】
上节内容介绍了 BRK 后面跟的立即数会在断点中断发生时,保存到ESR.ISS中,那么我们看下linux 中 BRK 后面的立即数宏定义种类有哪些并分别作用是什么?ARM64中BRK 立即数的定义位于文件/*0x0040x0050x0060x1000x4000x4010x8000x9000x0ff/*:这是用于 Kprobes 的BRK指令的立即数值。Kprobes是Linux内核中的一个动态追踪工具,它允许你在运行时插入断点到内核代码中;原创 2023-10-16 11:06:39 · 3848 阅读 · 0 评论 -
【ARM Coresight 系列文章 4.1 - ARM Coresight AHB-AP 使用详细介绍】
AHB-AP位于Cortex-M 的存储器系统和调试接口模块(SWJ-DP/SW_DP)之间,充当一个总线桥的角色,它把串行线/SWJ 接口的命令转换成 AHB 数据传送。控制及状态字(CSW);传输地址寄存器(TAR);数据读/写(DRW)。ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍SWJ-DP 支持 both 串行线协议和 JTAG 协议,而 SW-DP 只支持串行线协议。原创 2023-10-12 19:23:12 · 1117 阅读 · 0 评论 -
【ARM Coresight Trace 系列文章 9 -- ETM(Embedded Trace Macrocell) 详细介绍 】
ARM ETM(Embedded Trace Macrocell)是一种用于嵌入式系统的调试技术。它提供了一种非侵入式的调试方法,可以帮助开发人员在运行时监测和分析处理器的执行情况,包括指令执行、数据读写、异常和中断处理等。ETM主要负责追踪处理器的信息,将信息打包,通过ATB总线发送到 trace bus上。ETM 功能包括操作跟踪:ETM 可以跟踪处理器执行的所有指令,包括分支、跳转、异常和中断等。数据跟踪:ETM 可以跟踪处理器执行的所有数据读写操作,包括内存读写、寄存器读写和外设读写等。异常跟踪。原创 2023-10-08 15:16:34 · 2399 阅读 · 0 评论 -
【ARM Coresight 系列文章 20.1 -- linux perf event 的注册】
需要注意的是,cpu_clock 事件是一个抽象的事件,它不是具体处理器的某个特定功能。在具体使用时,你需要参考你使用的处理器的技术文档来了解 cpu_clock 事件的具体含义。,Tracepoint 是 Linux内核预先定义的静态探测点,它分布于内核的各个子系统中,每种Tracepoint有一个name、一个enable开关、一系列桩函数、注册桩函数的函数、卸载桩函数的函数。来实现,并且需要在钩子函数中获取我们调试所需要的信息并导出到用户态,这样就可以获取内核运行时的信息了。原创 2023-10-08 11:10:09 · 565 阅读 · 0 评论 -
【ARM Coresight 系列文章19 -- Performance Monitoring Unit(性能监测单元)
许多体系结构都包含 PMU(Performance Monitoring Unit)硬件,用于跟踪、计数系统内部的一些底层硬件事件,如与CPU有关的事件(执行指令数、捕获异常数、时钟周期数等)、与cache有关的事件(data/inst./L1/L2 cache访问次数,miss次数等)以及与TLB有关的事件等。这些事件反映了程序执行期的行为,可以帮助我们对程序进行分析和调优。以 Cortex-A9 为例:基于 PMUv2,Cortex-A9 PMU 提供六个计数器。原创 2023-10-08 10:56:08 · 1367 阅读 · 0 评论 -
【ARM Coresight 系列文章 15 -- SoC-400 介绍 】
因为有2个时钟域,一个是片内的时钟域,一个是片外的时钟域,因此该FIFO是异步FIFO,写是在atclk时钟域写入,读是在traceclkin时钟域读取。接收 ATB 发送的 trace 信息,通过 formatter,将数据转化,得到真正的数据信息,然后通过trace RAM interface,将数据,保存到trace RAM中。实现对各个AP的访问。APB互联组件,连接了众多的coresight组件,外部可以通过APB互联,实现对连接到APB互联上的coresight组件的访问。原创 2023-09-16 12:46:42 · 1295 阅读 · 0 评论 -
【ARM Coresight 系列文章 20 -- linux perf 与 ARM coresight】
perf tools 是 基于 Linux 内核的 perf_events 子系统,可以用来收集、分析和报告系统和应用程序的性能数据。# ./perfperf 的功能可以分为基础子命令和功能型子命令两大类。基础子命令perf list: 这个命令可以查看当前软硬件平台支持的性能事件列表,性能事件的属性。u: 仅统计用户空间程序触发的性能事件;k: 仅统计内核触发的性能事件;h: 仅统计 Hypervisor 触发的性能事件;原创 2023-08-29 13:59:38 · 1576 阅读 · 0 评论 -
【ARM Coresight 系列文章 13 -- 格雷码(Gray Code)与 coresight timestamp】
在复杂的嵌入式系统中,由于并发执行的任务可能会相互影响,因此,通过记录每个事件发生的时间,可以帮助开发者更好地理解系统的运行情况,从而更快地定位问题。像前面所说的,格雷码是一种二进制数码系统,在这种编码系统中,任何两个连续的数字只有一个位数的变化。由于格雷码的连续数字只有一个位数的变化,因此,可以利用格雷码来生成独一无二的时间戳,这样可以更准确地记录事件发生的时间,从而提高系统调试的准确性。在格雷码中,每个数的编码都是从前一个数的编码中转换过来的,只改变一位。例如,在二进制系统中,从。这就是格雷码的特性。原创 2023-08-24 18:07:09 · 725 阅读 · 0 评论 -
ARM Coresight 系列文章 11 -- CoreSight ECT(Embedded Cross Trigger)and CTI
CTM 将 trigger,发送给其他core(这里是core1)的 CTI 外部 input channel上,如果其他 core 的 AND与门 打开,也就是CTIGATE信号有效,就会传递到 CTI的 internal input channel上,通过 output trigger mux(通过CTIOUTEN[]选择),通过output trigger,发送给core1。所以对于CTI 而言,既可以接收外部其它组件送过来的trigger信号,也可以自己触发trigger信号。原创 2023-08-11 15:42:55 · 925 阅读 · 0 评论 -
【ARM Coresight 系列文章 2.3 - Coresight 寄存器】
Coresight 对于每个 coresight 组件,规定了一些寄存器,这些寄存器的偏移是固定的,这些寄存器有的是必须存在的。但是有的,可以不实现该寄存器功能。Coresight 架构,对于 Coresight 的组件,定义了若干个固定的寄存器。第一个寄存器的偏移从0xF00开始,直到0xFFC。以下是寄存器列表以上的寄存器的地址,在coresight的组件中,是不能当作其他功能使用的。原创 2023-08-01 22:32:58 · 1745 阅读 · 0 评论 -
【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】
而 连续码 continuation code 表示的是 0x7F 出现的次数,例如ARM的连续码是0x4。这个标准提供了一种机制,可以让不同的半导体制造商有自己独一无二的识别代码,这样就可以在设备和系统中准确地识别使用了哪些制造商的产品。SoC 中有多个coresight的组件,为了较好方便的管理这些组件,designer 给每个组件分配了唯一的编号。所以,JEP106实际上就是JEDEC的一个子集,是在JEDEC架构下的一个具体标准。这四个寄存器的组合,用来标识组件的类型。原创 2023-08-01 14:38:09 · 1318 阅读 · 0 评论 -
【ARM Coresight 系列文章 2.4 - Coresight 寄存器:DEVARCH,DEVID, DEVTYPE】
如果这几个寄存器没有使用到,实现时,全部设置为0。如果对应的组件是可以配置的,ARM推荐这几个寄存器可以填写该组件的版本升级信息或者是改动信息。这个寄存器的功能,由实现进行定义,总共包括3个寄存器,DEVID,DEVID1,DEVID2,每个寄存器32位,只读。DEVARCH 寄存器标识了coresight 组件的架构信息。偏移地址分别是:0xFC8, 0xFC4, 0xFC0。对于 ARM 架构来说,这11bits 是固定的。该寄存器中包含了组件的具体类型信息,通过。位域(次设备号)的组合值来表示。原创 2023-08-01 11:06:43 · 1666 阅读 · 0 评论 -
【ARM Coresight Trace 系列文章 12 - ARM Coresight ELA-500】
如果有trace 数据输出的话,这个时候就需要增加timestamp功能,否者数据进入buffer之后,无法环境trace data的顺序。trace data 从 ELA 出来之后一般会做个压缩,压缩率一般会做到 35%以上,数据压缩好只有再通过一级FIFO送到ATB总线上。输出电平信号变化(见图 1-1),或者让状态机进入下一个状态,当。如图1-3 所示,也可以通过counter 来触发。图 1-1 ELA-500 框架图。图 1-2 ELA-500 使用图。比较逻辑发生比较匹配的情况,或者。原创 2023-07-31 11:27:04 · 1010 阅读 · 0 评论 -
【ARM Coresight 系列文章 2.2- ATB 总线简介】
在第三代总线中,增加AHB-Lite精简协议,升级了APB总线外,为了满足更高的互联性能需求,增加了Advanced eXtensible Interface (AXI),这是一个重要的标志,至此开启了高性能系统设计的通道,在AXI总线的加持下,系统性能得到了质的提升。信号,trace 的数据要伴随着 ATID 进行发送的,因为产生 trace 的组件有很多,因此需要一个 ID 来识别这些组件,ID 就保存在 ATID中发送。在一个 soc 中,对于每个trace组件,ID 必须是唯一的。原创 2023-06-14 15:32:29 · 1756 阅读 · 0 评论 -
【ARM Coresight trace 系列文章 10.3 - ARM Coresight STM 寄存器介绍 及STM DMA 传输介绍】
信号告诉 DMAC 哪次是最后一次 transfer request在当前的 series 中,drlast 可以和。, 这样DMAC 就会检测到外设 STM 发起了一次 burst transfer 请求。当DMAC 完成了外设 STM 发起的一次 burst transfer时就会将。来告知 STM 发起的一次 burst transfer 传输已经完成。STMDMACTLR:控制DMA发起请求的水位寄存器;bit 为 1 的时候, STM 就会将 其。图 1-1 STM 功能框图。原创 2023-07-25 16:46:21 · 1386 阅读 · 1 评论 -
【ARM Coresight trace 系列文章 10.2 - ARM Coresight STM Trace packets】
由于接收 STM输出数据的接收器通常是按照bit 流接收的,所以接受器需要知道什么时候开始接收数据,STM 发出的同步包最长可能是由84个连续的0b1组成,也即 21个 0xF, 接着会再发一个0x0(0b0000),一旦接收器检测到了这个信号,首先会跳过 NULL packet(0x0),然后搜寻 VERSION packet 版本,来确认当前使用的版本号,以便决定后面如何解析剩下的数据。),payload的位宽为4bits,4bits 也是STP 最小的传输颗粒,专业属于叫做nibble(半字节)。原创 2023-07-21 19:57:14 · 1094 阅读 · 0 评论 -
【ARM Coresight trace 系列文章 10.1 - ARM Coresight STM 介绍及使用】
有保证的意思,数据不会丢失。STM 支持两种类型的软件的数据,一种是 guaranteed的,另一种是 invariant 的, 对于 guaranteed 类型的数据传输,当STM 无法接收 AXI总线发过来的数据时,会通过拉低。对于 invariant 的数据传输,当STM 无法接收数据时,并不会暂停AXI总线数据的发送,STM 会丢弃AXI发过来的数据,所以无法保证 invariant 数据传输都能够通过STM传输出去。M:Mark, 输出的数据会带有标记,比如一串数据中的某个字当做Mark。原创 2023-07-19 20:36:49 · 1460 阅读 · 0 评论 -
ARM Coresight 系列文章 8 - ARM Coresight 通过 APBIC 级联使用
SYS APBIC 中确实没有放 romtable,是直接 hard routing 过去的,也就是从 SNM-HUB出来之后,直接接到 SYS APBIC 上的两个 Master上的,这样做的原因是想分出两个master 出来好接到 AP APBIC 和 APB DECODE上。,可以通过这个地址访问到AP APBIC中的 romtable,然后根据romtable entry中的信息可以获取到AHB-AP的偏移地址,假设 AHB-AP 相对 AP APBIC romtable 中的偏移地址为。原创 2023-07-18 14:53:53 · 1894 阅读 · 0 评论 -
【ARM Coresight trace 系列文章 10 - ARM Coresight STM 介绍及使用】
ARM 对STM 的解释是其支持高带宽的"仪器化输出",仪器化输出其实也就是像 Cortex-M 系列中的 ITM 一样,通过将数据写入 STM 的 stimulus port,然后再通过STM将数据送输出,可以送到 System memory, 也可以通过TPIU送出去,之所以说是高带宽是因为 STM的输入口接入了AXI bus,所以CPU 可以通过 AXI bus 将大量数据写入STM。ETM: 如前文所述,ETM主要是用于跟踪 CPU 执行过的一些指令,通常只会统计指令有没有执行。原创 2023-07-17 22:13:01 · 1050 阅读 · 0 评论 -
ARM Coresight 系列文章 7 - ARM Coresight 通过 AHB-AP 访问 cpu 内部 coresight 组件
看了之后其实还是不明白为何要分为两组,其实前面的文章已经介绍过,对于AHB-AP(APB-AP) 的访问可以有两种,一种是通过外部 debugger 工具,另外一种就是通过系统总线来访问,这里的两组寄存器其实就是这个作用,在0x00001000之后的是留给系统总线使用的,另外一组是给外部debugger 使用的。如下图所示通过读取0x1df8 偏移之后,读到的值为 0xe00ff003, 这个值也就是 M33 ROM TABLE的地址。在SOC-600的SPEC中,如下面截取SOC-600的部分说明,原创 2023-07-12 22:16:41 · 2387 阅读 · 0 评论 -
【ARM Coresight 系列文章 5 - ARM Coresight APB Interconnect(APBIC)】
下图是基于SOC-400的 DAP 架构图,从图中可以看到 DAP 口出来的DAP-APB 会接入 APBIC 的 Slave 口,系统总线也接入了 APBIC 的 APB Slave port(图中并没有直接标出slave port)。所以两者都可以通过APBIC来访问Debug APB, APBIC 是 arm coresight 定义的一个coresight 组件,其功能是用于APB BUS的互联。原创 2023-07-11 14:23:55 · 1257 阅读 · 0 评论 -
【ARM Coresight 系列文章 4 - ARM Coresight APB-AP 介绍】
下图是一个 常见的DAP 结构图,其AP使用的是APB-AP。图 1-1- SWJ-DP 通过监控电路选择外部串行总线SWD或者 外部JTAG;- 通过 DPACC中的select register 选着AP(APB-AP);- APB-AP 时钟域来自于 DAPCLK;- 外部信号 DEVICEEN 控制 APB-AP的使能,更多信息可以见 CSW 寄存器介绍;- DBGSWENABLE 控制系统总线是否可以通过APB Mux来访问Debug APB;原创 2023-07-10 15:02:46 · 1228 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.2 - ARM Coresight DP 对 AP 的访问 2】
对于AP的选择可以通过DP 的寄存器SELECT中的 APSEL域来选择,每个AP中有一系列的bank,对于bank寄存器组的选择是通过APACC寄存器的A[7:4]来选择的,bank寄存器组中的某一个寄存器是通过APACC寄存器的A[3:2]来选择的。不同的组件会使用不同MEM-AP接口,如Cortex-A/Coretex-R 系列的core,它们的debug 接口一般都是使用Debug APB接口,而 Cortex-M系列的core, 它们的debug 接口一般都是使用 AHP-AP。原创 2023-07-10 10:07:38 · 1472 阅读 · 0 评论 -
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 寄存器及对AP访问的介绍】
如果DAP接入的是JTAG接口,那么将会通过APACC寄存器来访问系统的debug 资源,会通过DPACC访问DAP的内部资源,如DP中的一些寄存器的访问。DBGTAPSM, Debug TAP State Machine, Debug TAP 状态机,用于控制JTAG-DP的操作;IR scan chain and IR instructions, 用于接收和转换JTAG发过来的信息;一些数据寄存器,也就是DP中的一些寄存器或者AP中的一些寄存器。原创 2023-07-09 23:47:10 · 2036 阅读 · 0 评论