首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

常见的五大ARM存储器之一:协处理器CP15(6)

常见的五大ARM存储器之一:协处理器CP15(6)

1.4 寄存器c1          CP15中的寄存器c1包括以下控制功能:
          · 禁止/使能MMU以及其他与存储系统有关的功能;
          · 配置存储系统以及ARM处理器中相关的工作。
          注意在寄存器c1中包含了一些没有使用的位,这些位在将来可能被扩展其他功能时使用。因此为了编写代码在将来更高版本的ARM处理器中仍可以使用,在修改寄存器c1中的位时应该使用“读取-修改特定位-写入”的操作序列。
          当对寄存器c1进行读操作时,指令中CRm和opcode2的值将被处理器忽略,所以要人工将其置位为0。
          例2用MRC/MCR指令将协处理器寄存器c1的值进行读取和写入。
          【例2】
          MRC P15,0,r0,c1,0,0 ;将寄存器c1的值读取到ARM寄存器r0中
          MCR P15,0,r0,c1,0,0 ;将ARM寄存器r0的值写入寄存器c1
          图7显示了寄存器c1的编码格式。

          


          图7 寄存器c1编码格式
          寄存器c1各控制字段的含义如表11所示。
          表11 寄存器c1中各控制位字段的含义
          C1中的控制位含 义
          M(bit[0])禁止/使能MMU或者MPU
          0:禁止MMU或者MPU
          1:使能MMU或者MPU
          如果系统中没有MMU或者MPU,读取时该位返回0,写入时忽略
          A(bit[1])对于可以选择是否支持内存访问时地址对齐检查的系统,本位禁止/使能地址对齐检查功能
          0:禁止地址对齐检查功能
          1:使能地址对齐检查功能
          对寄存器进行写操作时,忽略该位
          C(bit[2])当数据Cache和指令Cache分开时,本控制位禁止/使能数据Cache。
          当数据Cache和指令Cache统一时,该控制位禁止/使能整个Cache
          0:禁止Cache
          1:使能Cache
          如果系统中不含Cache,读取时该位返回0,写入时忽略
          当系统中Cache不能禁止时,读取返回1,写入时忽略
          W(bit[3])禁止/使能写缓存
          0:禁止写缓存
          1:使能写缓存
          如果系统中不含写缓存,读取时该位返回0,写入时忽略
          当系统中的写缓存不能禁止时,读取时该位返回0,写入时忽略
          P(bit[4])对于向前兼容26位ARM处理器,本控制位控制PRGC32控制信号
          0:异常中断处理程序进入32位地址模式
          1:异常中断处理程序进入26位地址模式
          如果系统不支持向前兼容26位地址,读取该位时返回1,写入时被忽略
          D(bit[5])对于向前兼容26位ARM处理器,本控制位控制DATA32控制信号
          0:禁止26位地址异常检查
          1:使能26位地址异常检测
          如果系统不支持向前兼容26位地址,读取该位时返回1,写入时被忽略
          续表
          C1中的控制位含 义
          L(bit[6])对于ARMv3及以前版本,本控制位可以控制处理器的中止模式
          0:选择早期中止模式
          1:选择后期中止模式
          对于以后的处理器读取该位时返回1,写入时忽略
          B(bit[7])对于存储系统同时支持大/小端(big-endian/little-endian)的ARM处理器,该控制位配置系统使用哪种内存模式
          0:使用小端(little-endian)
          0:使用大端(big-endian)
          对于只支持小端(little-endian)的系统,读取时该位返回0,写入时忽略
          对于只支持大端(big-endian)的系统,读取时该位返回1,写入时忽略
          S(bit[8])支持MMU的存储系统中,本控制位用作系统保护
          R(bit[9])支持MMU的存储系统中,本控制位用作ROM保护
          F(bit[10])本控制位由生产厂商定义
          Z(bit[11])对于支持跳转预测的ARM系统,本控制位禁止/使能跳转预测功能
          0:禁止跳转预测功能
          1:使能跳转预测功能
          对于不支持跳转预测的ARM系统,读取时该位返回0,写入时忽略
继承事业,薪火相传
返回列表