ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。
分析:
mov r0, #0xfffffff
mcr p15, 0, r0, c1, c0, 2
mcr:从arm寄存器移到协处理器寄存器;
mrc:从协处理器寄存器移到arm寄存器;
p15:协处理器类型(p15/p14)
0:代表op1;
r0:代表通用寄存器;
c1:代表cp15寄存器(CRn);
c0:代表辅助寄存器CRm;
0:代表第二操作符(op2);
最后两位(c0,0)决定最终cp15具体的寄存器
然后通过这些值查看cotex-A8的datasheet即可
如图将寄存器最终定位到coprocessor access contr处,在查看具体的页数:
即:
上例的作用为将cp1到cp13协处理器模式设置为
Privileged and User mode access。