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

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

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

1.2 CP15中的寄存器          表1给出了CP15主要寄存器的功能和作用。
          表1 CP15寄存器
          寄存器编号基 本 作 用特 殊 用 途
          0ID编号(只读)ID和Cache类型
          1控制位各种控制位
          2存储器保护和控制MMU:地址转换表基地址
          PU:Cache属性设置
          3内存保护和控制MMU:域访问控制
          PU:写缓存控制
          4内存保护和控制保留
          5内存保护和控制MMU:错误状态
          PU:访问权限控制
          6内存保护和控制MMU:错误状态
          PU:保护区域控制
          7Cache和写缓存Cache和写缓存控制
          8内存保护和控制MMU:TLB控制
          PU:保留
          9Cache和写缓存Cache锁定
          续表
          寄存器编号基 本 作 用特 殊 用 途
          10内存保护和控制MMU:TLB锁定
          PU:保留
          11保留保留
          12保留保留
          13进程ID进程ID
          14保留保留
          15芯片生产厂商定义芯片生产厂商定义
          1.3 寄存器c0
          寄存器c0包含的是ARM本身或芯片生产厂商的一些标识信息。当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出的标识符也是不同的。操作码与标识符的对应关系如表2所示。寄存器c0是只读寄存器,当用MCR指令对其进行写操作时,指令的执行结果不可预知。
          表2 操作码和标识符的对应关系
          操作码opcode2对应的标识符寄存器
          0b000主标识符寄存器
          0b001Cache类型寄存器
          其他保留
          在操作码opcode2的取值中,主标识符(opcode2=0)是强制定义的,其他标识符由芯片的生产厂商定义。如果操作码opcode2指定的值未定义,指令将返回主标识符。其他标识符的值应与主标识符的值不同,可以由软件编程来实现,同时读取主标识符和其他标识符,并将两者的值进行比较。如果两个标识符值相同,说明未定义该标识符;如果两个标识符值不同,说明定义了该标识符,并且得到该标识符的值。
          (1)主标识符寄存器
          当协处理器指令对CP15进行操作,并且操作码opcode=2时,处理器的主标识符将被读出。从主标识符中,可以确定ARM体系结构的版本型号。同时也可以参考由芯片生产厂商定义的其他标识符,来获得更详细的信息。
          在主标识信息中,bit[15:12]区分了不同的处理器版本:
          · 如果bit[15:12]为0x0,说明处理器是ARM7之前的处理器;
          · 如果bit[15:12]为0x7,说明处理器为ARM7处理器;
          · 如果bit[15:12]为其他值,说明处理器为ARM7之后的处理器。
          对于ARM7之后的处理器,其标识符的编码格式如图2所示。
          其中各部分的编码含义说明如下。
          bit[3:0]:包含生产厂商定义的处理器版本型号。
          bit[15:4]:生产厂商定义的产品主编号,可能的取值为0x0~0x7。
          bit[19:16]:ARM体系的版本号,可能的取值如表3(其他值由ARM公司保留将来使用)所示。
继承事业,薪火相传
返回列表