Cortex‐M3-总线接口

news/2024/11/16 11:44:02/
总线框图

 Cortex‐M3 内部有若干个总线接口,以使 CM3 能同时取址和访内(访问内存),它们是:

  • 指令存储区总线(两条): 负责对代码存储区的访问,分别是 I‐Code 总线和 D‐Code 总线。前者用
    于取指,后者用于查表等操作,它们按最佳执行速度进行优化。
  • 系统总线: 用于访问内存和外设,覆盖的区域包括 SRAM,片上外设,片外 RAM,片外扩展设备,
    以及系统级存储区的部分空间。
  • 私有外设总线: 负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。

注:

I-Code 总线

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

D-Code 总线

  • D‐Code 总线也是一条基于 AHB‐Lite 总线协议的 32 位总线,负责在 0x0000_0000 –0x1FFF_FFFF 之间的数据访问操作。尽管 CM3 支持非对齐访问,但你绝不会在该总线上看到任何非对齐的地址,这是因为处理器的总线接口会把非对齐的数据传送都转换成对齐的数据传送。因此,连接到 D‐Code 总线上的任何设备都只需支持 AHB‐Lite 的对齐访问,不需要支持非对齐访问。

系统总线

  • 系统总线也是一条基于 AHB‐Lite 总线协议的 32 位总线,负责在 0x2000_0000 –0xDFFF_FFFF 和0xE010_0000 – 0xFFFF_FFFF 之间的所有数据传送,取指和数据访问都算上。和 D‐Code 总线一样,所有的数据传送都是对齐的。

外部私有外设总线

  • 这是一条基于 APB 总线协议的 32 位总线。此总线来负责 0xE004_0000 – 0xE00F_FFFF 之间的私有外设访问。但是,由于此 APB 存储空间的一部分已经被 TPIU、ETM 以及 ROM 表用掉了,就只留下了 0xE004_2000‐E00F_F000 这个区间用于配接附加的(私有)外设。

Cortex-M3 的其它接口

  • 除了总线接口之外,CM3 还有若干个用于其它目的的接口,这些接口的信号都不大可能会引出到引脚上,而只用于连接 SoC 不同的部分,或者干脆就没有使用。

http://www.ppmy.cn/news/146794.html

相关文章

MPU MCU CPU GPU之间的关系

CPU(Central Processing Unit,中央处理器)是计算机系统的主要处理器,它负责执行指令、处理数据和控制计算机系统的操作。CPU通常被用于通用计算和控制任务,如桌面电脑、服务器和智能手机等。 MPU(Microprocessor Unit…

CPU、MPU、MCU、SoC、MCM介绍

写在前面: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 目录 一、CPU二、MP…

CPU、MPU、MCU、SOC的概念和区别

概念 1、cpu cpu(central processing unit)是一台计算机的运算核心和控制核心,CPU由运算器、控制器和寄存器以及实现他们联系的数据、控制总线构成,cpu典型的三级流水线操作是取值、译码、执行,差不多所有CPU的执行原理可以分为四个阶段&am…

CPU、MPU、MCU、SOC的理解

1、CPU(Central Processing Unit) 中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU由运算器、控制器和寄存器及实现它们之间联系的数…

【日常】怀念儿童时的多啦A梦

怀念儿童时期的多啦A梦 儿童时期的乐趣HTML多啦A梦效果图:总结对自己孩子的期望 儿童时期的乐趣 时光飞逝,如白驹过隙版飞逝而过,一眨眼已经到了奔三的年纪。俗话说三十而立,是我拖了三十群里的后腿,在这里说一声抱歉…

ARM:MPU MMU SMMU

1、MPU (Memory Protection Unit); 2、MMU(Memory Management Unit)。 MMU是比MPU提供了功能更强大的内存保护机制,MPU只提供了内存区域保护,而MMU是在此基础上提供了虚拟地址映射技术&#x…

glGenBuffers与glBindBuffer理解

1.glGenBuffers 官方解释:generate buffer object names unsigned int VBO; glGenBuffers(1, &VBO); void glGenBuffers(GLsizei n,GLuint * buffers); 第一个参数是要生成的缓冲对象的数量,第二个是要输入用来存储缓冲对象名称的数组&#xff0c…

Vue实现订单确认界面禁止浏览器返回操作导致重复提交订单的问题

哈喽 大家好啊 最近遇到一个问题,就是在提交订单成功后的页面,然后用户去浏览器返回,就导致又提交了一次 然后就想到了如果提交成功页面,就阻止浏览器返回操作 主要实现如下: 1.在mounted的钩子函数: 2.…