这里用到三个汇编指令。
ldr r0, =0x70000000
这行代码执行完成之后,r0 = 0x7000 0000.
orr r0, r0, #0x13
或运算,此刻r0 = 0x7000 0013.
mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff)
mcr这个指令麻烦一点,mcr指令将ARM处理器的寄存器中的数据传递到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。
指令从ARM寄存器中将数据传送到协处理器p15的寄存器中,其中r0为ARM寄存器,存放源操作数;c15和c2为协处理器寄存器,为目标寄存器;p15和r0之间的0为操作码1;最后4为操作码2。
你在查找下1176手册就明白这句话的含义。 |