文章目录
- APB-AP 介绍及使用
- APB-Mux
- ROM Table
- ROM Table entries bit 分配
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;如果使能的话,那么对应core可以通过系统总线来访问挂载在Debug APB上的组件(包括ROM Table);
- Master Debug APB Port下挂载一个ROM table,里面装有挂载在Debug APB上的 coresight 组件的地址信息。
图 1-2
APB Master是一种用于调试的接口模块,它可以通过APB总线协议从外部访问ARM系统的外设,APB Master模块的主要功能是允许调试设备通过APB总线直接访问系统内部的外设,不需要通过处理器。这意味着即使处理器在执行其他任务,或者处于低功耗模式,调试设备也可以直接访问和控制外设。
APB-Mux
该组件用于控制外部工具或者系统访问 Debug APB,APB-Mux 可以将多个接口合并成一个,从而使得接入的多个master 可以都可以访问Debug APB。
图 1-3
图 1-4
如上图 1-4所示,APB-Mux 使用一个 仲裁器来保证 某一时刻只有一个APB Master可以访问 Debug APB。AP Slave port 的优先级是一直高于 System slave port的,如果两个同时发出了transfer的请求,只有等到AP port 完成之后,才会获取访问权限。
ROM Table
如果 1-1 所示在 master Debug AP port 上挂有一个 ROM table, 其地址位于 Debug APB 的0x0000_0000 处 和 0x8000_0000处,这两个地址可以保证不管是从 AP 口还是 system APB口 ,它们从 APB ROM Table 中读到的内容是一样的,因为 Debug APB的最高位(bit31)没有连接到 ROM Table上。ROM Table 有一个标准的APB Slave 口,但是没有 PWRITEDBG 和 PWDATADBG,也即没有写地址和写数据。
ROM Table entries bit 分配
Rom Table Entry 格式如下:
图 1-5
此外每个组件的地址计算公式如下:
ComponentAddress = ROMAddress + (AddressOffset >> 12)
这里有个疑问,上面公式中 ROM Table 基地址在哪呢?
这个问题请到前面几节文章中寻找。
上篇文章:ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 2