CP15协处理器访问指令MCR/MRC解析

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:与寻址方式有关的标志

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章