ARM11协处理器从CP0到CP15, 其中CP15位系统控制协处理器。功能如下:
• overall system control and configuration
• cache configuration and management
• Tightly-Coupled Memory (TCM) configuration and management
• Memory Management Unit (MMU) configuration and management
• DMA control
• system performance monitoring.
1.指令格式
MCR{<cond>} <coproc>, <opcode_1>, <Rd>, <CRn>, <CRm>{, <opcode_2>}
MRC{<cond>} <coproc>, <opcode_1>, <Rd>, <CRn>, <CRm>{, <opcode_2>}
2. 例子:
MRC p15, 0, <Rd>, c15, c2, 4 ; Read Peripheral Port Memory Remap Register
MCR p15, 0, <Rd>, c15, c2, 4 ; Write Peripheral Port Memory Remap Register
3. 参数解析:
p15: 表示访问CP15协处理器(这里有个疑问,访问CP14或者其他的协处理器,在机器码中没有对应的区分不同协处理器的标志位,是怎么区分的呢???)
Rd :目的寄存器 R0~R14
L: 1=MRC;0=MCR
CRn: Primary register.我的理解是CP15下一级有多个(0~15)主寄存器,操作哪个就用CRn指明。
CRm: operational register.我理解是主寄存器下又分为多个寄存器,要操作哪个就用CRm指明。
opcode2:operational register下一级也有多个寄存器,具体操作的是哪个用opcode2指明。缺省为0
opcode1:与寻址方式有关的标志