一. 协处理器
协处理器,即协助型处理器,主要协助做一些主处理器无法执行或者执行效率不佳的事情。
例如,浮点、图像、音频处理这一类,随着硬件的发展,大多协处理器的功能都慢慢集成到主处理器中,但是某些特定的工作还是需要协处理器进行辅助。
二. CP15协处理器
IMX6ULL芯片是基于 ARMv7-A 系列架构的。
ARMv7-A 处理器除了标准的 R0~R15,CPSR,SPSR 以外,由于引入了 MMU、TLB、Cache 等内容,ARMv7-A 使用协处理器来对这些扩展来进行管理。
ARMv7-A 支持 16 个协处理器,编号从 CP0~CP15。其中,CP0-CP7 由厂家定义协处理功能,而CP8-CP15预留给ARM使用:
(1) CP10、CP11 两个协处理器一起,提供了浮点运算和向量操作,以及高级的 SIMD 指令扩展。
所以,SPI实验中,在设置开启硬件浮点时,代码中涉及 开启访问 CP10,CP11。
(2) CP14 主要提供 debug 系统的控制、Thumb执行环境、Java字节码执行。
(3) CP15 协处理器称之为系统控制协处理器,CP15 协处理器下的寄存器包含了 MMU、TLB、Cache等关键组件。
CP15 协处理器一般用于存储系统管理,但是在中断中也会使用到, CP15 协处理器一共有16 个 32 位寄存器(c0-c15)。CP15 协处理器的访问通过其独特的语法指令完成。
关于 CP15 协处理器的16个寄存器详细介绍或配置,可以查看 " Cortex-A7 Technical ReferenceManua.pdf " 文档 与 "ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition.pdf " 文档 进行详细了解。