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:與尋址方式有關的標誌