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

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