首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解ARM7上的MRC

了解ARM7上的MRC
EN

Stack Overflow用户
提问于 2013-10-23 22:34:59
回答 1查看 12.6K关注 0票数 10

我是ARM的新手,正在尝试理解MRC指令。

据我所知,MRC是读取协处理器寄存器,并将其放入主核寄存器。

现在,协处理器连接到主核上,用于控制主core.How的内存子系统。协处理器连接到主核处理器.Could上,谁能指出一些好的图吗?

下面是关于arm7 cpu核心的说明

代码语言:javascript
复制
  /* workaround to disable secure state */
     mrc     p15, #0, r0, c1, c1, #0
     orr     r0, r0, #1
     mcr     p15, #0, r0, c1, c1, #0
     isb

现在我就是找不到这里的mrc指令是怎么回事

1.mrc的第一个参数是协处理器编号( p0与p15的不同之处)。

2.第二个参数是协处理器的opcode1 (不确定)。

3.第三个参数是主核心寄存器(可以)。

4.第四个和第五个参数是协处理器寄存器(是c1的结果吗,#0存储在c1中)?

5.代理的最后一个参数是opcode2 (不确定)。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-24 01:09:49

ARM中的协处理器是一个误导性的概念。它是对不通过核心指令集公开的可选功能的简写。ARM CPU是模块化的。体系结构的实现者可能会或可能不会将一些CPU硬件放在芯片上。内存管理单元(MMU)就是一个例子;还有其他的例子,比如硬件调试工具。实际上,这些都是通过协处理器编号(pXX)来标识的,因此可以同时存在多个协处理器。MMU的协处理器编号传统上是p15。协处理器p0..p14与内存管理无关,可能不存在。例如,调试子系统是p14。

MRC和MCR命令用于向协处理器发送命令。助记符也有一些误导性--一个命令的效果可能不仅仅是一个寄存器移动。它更像是MRC代表“向协处理器发送命令并获取一些数据”,而MCR是“向协处理器发送命令并传递一些数据”。这样想吧。这就是操作码的作用--这是对协处理器的命令。有时,带有特定coproc #和操作码的MCR/MRC命令甚至会在汇编程序中获得单独的助记符(例如FPU命令)。

协处理器操作码和寄存器编号的确切细节因协处理器不同而不同。因为它是您感兴趣的MMU,所以请阅读这个特定的MMU;它将解释特定的操作如何映射到操作码和coproc寄存器编号。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19544694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档