汇编指令的学习3——协处理器cp15的操作指令mcr、mrc
2017-05-05 12:41
447 查看
一、什么是协处理器
(1)SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。
(2)ARM设计上支持多达16个协处理器,但是一般SoC只实现其中一个:协处理器CP15(cp:coprocessor)。
(3)协处理器和MMU、cache、TLB等处理有关,功能上和操作系统的虚拟地址映射、cache管理等有关。
二、协处理器cp15操作指令 mcr mrc
(1)主要是协处理器中的寄存器(c0~c15)与 cpu中的寄存器(r…)之间的数据传输。
(2)mrc用于读取CP15中的寄存器,mcr用于写入CP15中的寄存器
用法:
mcr {<cond>} p15, <opcode_1>, <Rd>, <Crn>, <Crm>, {<opcode_2>}
opcode_1:对于cp15永远为0
Rd:ARM的普通寄存器
Crn:cp15的寄存器,合法值是c0~c15
Crm:cp15的寄存器,一般均设为c0
opcode_2:一般省略或为0
举例:
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #1
mcr p15, 0, r0, c1, c0, 0
(1)SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。
(2)ARM设计上支持多达16个协处理器,但是一般SoC只实现其中一个:协处理器CP15(cp:coprocessor)。
(3)协处理器和MMU、cache、TLB等处理有关,功能上和操作系统的虚拟地址映射、cache管理等有关。
二、协处理器cp15操作指令 mcr mrc
(1)主要是协处理器中的寄存器(c0~c15)与 cpu中的寄存器(r…)之间的数据传输。
(2)mrc用于读取CP15中的寄存器,mcr用于写入CP15中的寄存器
用法:
mcr {<cond>} p15, <opcode_1>, <Rd>, <Crn>, <Crm>, {<opcode_2>}
opcode_1:对于cp15永远为0
Rd:ARM的普通寄存器
Crn:cp15的寄存器,合法值是c0~c15
Crm:cp15的寄存器,一般均设为c0
opcode_2:一般省略或为0
举例:
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #1
mcr p15, 0, r0, c1, c0, 0
相关文章推荐
- 关于ARM9中的协处理器CP15及MCR/MRC指令
- 协处理器CP15介绍—MCR/MRC指令(6)
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- ARM中CP的操作指令MCR/MRC详解
- 关于ARM9协处理器CP15及MCR和MRC指令
- ARM9协处理器CP15、MCR/MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- AT91RM9200的协处理器CP15的操作指令及操作码
- ARM9协处理器CP15及MCR和MRC指令
- 关于ARM协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- 关于ARM9协处理器CP15及MCR和MRC指令
- ARM9协处理器CP15及MCR和MRC指令