【发布时间】:2013-11-01 21:45:47
【问题描述】:
我是 ARM 新手,正在尝试理解 MRC 指令。
据我了解,MRC是读取协处理器寄存器并将其放入主核心寄存器。
现在协处理器连接到主核,用于控制主核的内存子系统。协处理器如何连接到主核处理器。有人能指出一些好的图表吗?
下面是关于arm7 cpu核心的指令
/* 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.第三个参数是主核心寄存器(OK)。
4.第四和第五个参数是协处理器寄存器(c1,#0的结果是否存储到c1)?
5.Agin final Argument 是 opcode2(不确定)。
谢谢
【问题讨论】:
-
MRC/MCR指令是通用的。你必须参考具体的文件。 VFP、Neon 和 CP15。 CP15 是指令集中未内置功能的包罗万象,适用于 OS 程序员。它可能包括MMU、缓存控制、保护单元、快速上下文切换、 write buffer、TrustZone、HyperVisor、Vector table等CP15没有与指令集一样保持向后兼容。 -
感谢@artlessnoise 提供这些有用的链接。
-
您的意思是 ARMv7 而不是 ARM7?