arm 协处理器
协处理器是一种芯片,减轻系统微处理器的某些任务
支持多达16个协处理器,例如cp15寄存器来控制cache和存储器管理
协处理器操作指令
cdp:数据操作指令,初始化协处理器
ldc:数据加载指令,存储器到协处理器寄存器的数据传送
stc:数据存储指令,协处理寄存器到存储器的数据传送
mcr:arm处理器寄存器到协处理器寄存器的数据传送
mrc:协处理器寄存器到arm处理器寄存器的数据传送
访问cp15寄存器的指令编码格式
31 28 27 24 23 21 20 19 16 15 12 11 8
7 5 4 3 0
cond 1110 opcode_1 L crn rd 1111
opcode_2 1 crm
opcode_1:协处理器行为操作码,cp51永远为0
rd:arm寄存器
crn:协处理器寄存器
crm:附加的协处理器或源操作数寄存器,不需要附加时设置为c0
opcode_2:提供附加信息如寄存器版本号或访问类型
示例代码如下:
在arm1176jzfs文档中
MRC p15,0,<Rd>,c0,c0,0 ;Read Main ID Register
协处理器是一种芯片,减轻系统微处理器的某些任务
支持多达16个协处理器,例如cp15寄存器来控制cache和存储器管理
协处理器操作指令
cdp:数据操作指令,初始化协处理器
ldc:数据加载指令,存储器到协处理器寄存器的数据传送
stc:数据存储指令,协处理寄存器到存储器的数据传送
mcr:arm处理器寄存器到协处理器寄存器的数据传送
mrc:协处理器寄存器到arm处理器寄存器的数据传送
访问cp15寄存器的指令编码格式
31 28 27 24 23 21 20 19 16 15 12 11 8
7 5 4 3 0
cond 1110 opcode_1 L crn rd 1111
opcode_2 1 crm
opcode_1:协处理器行为操作码,cp51永远为0
rd:arm寄存器
crn:协处理器寄存器
crm:附加的协处理器或源操作数寄存器,不需要附加时设置为c0
opcode_2:提供附加信息如寄存器版本号或访问类型
示例代码如下:
在arm1176jzfs文档中
MRC p15,0,<Rd>,c0,c0,0 ;Read Main ID Register