文章目录
- CP15 协处理器
-
- 指令格式
- MCR 示例
- MRC 示例
- 寄存器
-
- C0 identification registers
- C1 system control registers
- C2 memory protection and control registers
- C3 memory protection and control registers
- C4 Not used
- C5 Memory system fault registers
- C6 Memory system fault registers
- C7 Cache maintenance, address translation, and other functions
- C8 TLB maintenance operations
- C9 reserved for cache TCM control and performance monitors
- C10 memory remapping and TLB control registers
- C11 reserved for TCM DMA registers
- C12 security entensions registers
- C13 process, context and thread ID registers
- C14 reserved for generic timer extension
- C15 IMPLEMENTATION DEFINED registers
- 操作示例
CP15 协处理器
Coprocessor 协处理器提供内核的一些系统配置功能,一共有16个32bit的协处理器,简写为C0-15。对CP15的访问受权限控制,并非所有寄存器都在用户模式下可用。 通过协处理器指令 MCR和 MRC 提供具体的寄存器来配置和控制 caches、MMU、保护系统、配置时钟模式(在 bootloader时钟初始化用到)等。
指令格式
访问 CP15 寄存器的指令有下面两种:
- MCR: ARM 寄存器到协处理寄存器的数据传送指令
- MRC: 协处理寄存器到 ARM 寄存器的数据传送指令
MCR 指令和 MRC 指令只能在处理器模式是系统模式时执行,在用户模式下执行 MCR 指令和 MRC 指令将会触发未定义指令的异常中断。
如果需要在用户模式下访问 CP15 中寄存器,需要采用其他的方法。一种常见的做法是由操作系统定义一些 SWI 调用,这些 SWI 调用完成相应的功能,在用户模式下可以调用这些 SWI 调用。
MRC{
cond} p15,
本文介绍了ARMv7-A架构下的CP15协处理器,包括其功能、指令格式如MCR和MRC,以及各寄存器的功能,如C0标识寄存器、C1系统控制寄存器等。MCR用于将ARM寄存器数据传送到协处理器,而MRC则是将协处理器数据传送到ARM寄存器。在用户模式下,通常通过操作系统提供的SWI调用来访问CP15寄存器。
订阅专栏 解锁全文
120

被折叠的 条评论
为什么被折叠?



