购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1. 5.2 总线矩阵

总线矩阵用来将处理器和调试接口与外部总线相连。总线矩阵与下面的外部总线相连。

(1)I-Code总线:该总线用于从代码空间取指令和向量,是 32 位AHB-Lite总线。

(2)D-Code总线:该总线用于对代码空间进行数据加载/存储及调试访问,是 32 位AHB-Lite总线。

(3)系统总线:该总线用于对系统空间执行取指令和向量,数据加载/存储及调试访问,是 32 位AHB-Lite总线。

(4)PPB:该总线用于对 PPB 空间进行数据加载/存储及调试访问,是 32 位APB(v2.0)总线。

注意: 对于多层AHB矩阵,只有当多个主机试图同时访问同一矩阵的从机端口时,才会做主机之间的仲裁。在默认情况下,Cortex-M3 的D-Code总线有最高优先级,然后是I Code总线。所有其他主机的优先级较低。

如图 1-9 所示是Cortex-M3 总线接口示例,该图结合LPC17XX,说明了系统总线与各个设备之间的连接关系。在LPC17XX中,Cortex-M3 内核总线通过多层AHB总线矩阵连接各个外设设备。图 1-9 中给出的外设是LPC17XX的部分外设。

图 1-9 Cortex-M3 总线接口示例

1.I-Code总线

I-Code总线是一条基于AHB-Lite总线协议的 32 位总线,负责在 0x00000000~0x1FFFFFFF之间的取指操作。取指以字的长度执行,即使是对于 16 位指令也如此。因此,CPU内核可以一次取出两条 16 位 Thumb指令。

2.D-Code总线

D-Code总线也是一条基于AHB-Lite总线协议的 32 位总线,负责在 0x00000000~0x1FFFFFFF之间的数据访问操作。尽管Cortex-M3 支持非对齐访问,但该总线不允许这样操作,这是因为处理器的总线接口会把非对齐的数据传送都转换成对齐的数据传送。因此,连接到D-Code总线上的任何设备都只需要支持AHB-Lite的对齐访问,而不需要支持非对齐访问。

ARM公司推荐D-Code总线的优先级高于I-Code总线的优先级。

3.系统总线

系统总线也是一条基于AHB-Lite总线协议的 32 位总线,负责在 0x20000000~0xDFFFFFFF和 0xE0100000~0xFFFFFFFF之间的所有数据传送,取指和数据访问都包括在内。和D-Code总线一样,系统总线的所有数据传送都是对齐的。

4.私有外设总线

私有外设总线是一条基于APB总线协议的 32 位总线。此总线负责 0xE0040000~0xE00FFFFF之间的私有外设访问。但是由于此APB存储空间的一部分已经被TPIU、ETM及ROM表用掉了,所以只留下 0xE0042000~E00FF000 这个区间用于配接附加的(私有)外设。 p58aSD8gdt5fi11emlSDCP3yhqdFxO9VQU4BXvT1rJXWzDCtmQzAiKvLxUbpUX7E

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开