首页 理论教育ARM嵌入式系统中的协处理器CP15的功能和实现

ARM嵌入式系统中的协处理器CP15的功能和实现

【摘要】:在ARM系统中,要实现对存储系统的管理通常使用协处理器CP15,它通常也被称为系统控制协处理器。ARM处理器支持16个协处理器。在程序执行过程中,每个协处理器忽略属于ARM处理器和其他协处理器的指令。Cortex-A8内部实现了CP14和CP15两个协处理器。CP15是系统控制协处理器,它的功能为控制Cortex-A8处理器的功能实现,并为其提供状态信息。

在ARM系统中,要实现对存储系统的管理通常使用协处理器CP15,它通常也被称为系统控制协处理器(System Control Coprocessor)。

ARM处理器支持16个协处理器。在程序执行过程中,每个协处理器忽略属于ARM处理器和其他协处理器的指令。当一个协处理器硬件不能执行属于它的协处理器指令时,将产生一个未定义指令异常中断,在该异常中断处理程序中,可以通过软件模拟该硬件的操作。

Cortex-A8内部实现了CP14和CP15两个协处理器。CP14是调试协处理器,它的功能为用于各种调试功能函数。CP15是系统控制协处理器,它的功能为控制Cortex-A8处理器的功能实现,并为其提供状态信息。除了CP15外,在具体的各种存储管理机制中可能还会用到其他一些技术,如在MMU中除了CP15外,还使用了页表结构等。

在一些没有标准存储管理的系统中,CP15是不存在的。在这种情况下,针对CP15的操作指令将被视为未定义指令,指令的执行结果不可预知。

CP15包含16个32位寄存器,其编号为0~15。实际上对于某些编号的寄存器可能对应多个物理寄存器,在指令中指定特定的标志位来区分这些物理寄存器。

CP15中的寄存器可能是只读的,也可能是只写的,还有一些是可读写的。在对协处理器寄存器进行操作时,需要注意以下几个问题:(www.chuimin.cn)

(1)寄存器的访问类型(只读/只写/可读可写);

(2)不同的访问引发不同的功能;

(3)相同编号的寄存器是否对应不同的物理寄存器;

(4)寄存器的具体作用。