我是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.第三个参数是主核心寄存器(没问题)。
4.第四和第五个参数是协处理器寄存器(c1,#0的结果是否存储为c1)?
5.最后一个参数是opcode2(不确定)。
谢谢。
MRC
/MCR
指令是通用的。您必须参考特定的文档,如VFP、Neon和CP15。CP15是一个捕获所有不内置到指令集中并且面向操作系统程序员的东西。它可能包括MMU、缓存控制、保护单元、快速上下文切换、写缓冲区、TrustZone、HyperVisor、向量表等。与指令集不同,CP15不保持向后兼容性。 - artless noise