一. CP15寄存器
mcr |
将ARM处理器的寄存器中的数据写到CP15中的寄存器中 |
mrc |
将CP15中的寄存器中的数据读到ARM处理器的寄存器中 |
4.1.2 CP15寄存器介绍
寄存器编号 |
基本作用 |
在MMU中的作用 |
在PU中的作用 |
0 |
ID编码(只读) |
ID编码和cache类型 |
|
1 |
控制位(可读写) |
各种控制位 |
|
2 |
存储保护和控制 |
地址转换表基地址 |
Cachability的控制位 |
3 |
存储保护和控制 |
域访问控制位 |
Bufferablity控制位 |
5 |
存储保护和控制 |
内存失效状态 |
访问权限控制位 |
6 |
存储保护和控制 |
内存失效地址 |
保护区域控制 |
7 |
高速缓存和写缓存 |
高速缓存和写缓存控制 |
|
8 |
存储保护和控制 |
TLB控制 |
保留 |
9 |
高速缓存和写缓存 |
高速缓存锁定 |
|
10 |
存储保护和控制 |
TLB锁定 |
保留 |
13 |
进程标识符 |
进程标识符 |
|
CP15的寄存器C0
CP15中寄存器C0对应两个标识符寄存器,由访问CP15中的寄存器指令中的<opcode_2>指定要访问哪个具体物理寄存器,<opcode_2>与两个标识符寄存器的对应关系如下所示:
0b000 |
主标识符寄存器 |
0b001 |
cache类型标识符寄存器 |
1)主标识符寄存器
访问主标识符寄存器的指令格式如下所示:
mrc p15, 0, r0, c0, c0, 0 ;将主标识符寄存器C0,0的值读到r0中
ARM不同版本体系处理器中主标识符寄存器的编码格式说明如下。
ARM7之后处理器的主标识符寄存器编码格式如下所示:
31 24 23 20 19 16 15 4 3 0 |
|||||
由生产商确定 |
产品子编号 |
ARM体系版本号 |
产品主编号 |
处理器版本号 |
|
位 |
说 明 |
||||
位[3: 0] |
生产商定义的处理器版本号 |
||||
位[15: 4] |
生产商定义的产品主编号,最高4位可能的取值为0~7但不能是0,7 |
||||
位[19: 16] |