协处理器CP15.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
协处理器CP15

ARM920T的MMU和Cache都集成在CP15协处理器中 以下是CP15协处理器的寄存器列表(摘自[S3C2410用户手册]),和CPU核的r0到r15寄存器一样,协处理器寄存器也是用0到15来编号,在指令中用4个bit来表示寄存器编号,有些协处理器寄存器有影子寄存器,这种情况下对同一个编号的寄存器使用不同的选项读或者写实际上访问的是不同的寄存器,后文用到某个寄存器时会详细说明它的功能。 访问CP15寄存器的指令访问CP15寄存器指令的编码格式及语法说明如下: 31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0 cond 1 1 1 0 opcode_1 L cr n rd 1 1 1 1 opcode_2 1 cr 说明: opcode_1:协处理器行为操作码,对于CP15来说,opcode_1永远为0b000,否则结果未知。 rd:不能是r15/pc,否则,结果未知。 crn:作为目标寄存器的协处理器寄存器,编号为C0~C15。 crm:附加的目标寄存器或源操作数寄存器,如果不需要设置附加信息,将crm设置为c0,否则结果未知。 opcode_2:提供附加信息比如寄存器的版本号或者访问类型,用于区分同一个编号的不同物理寄存器,可以省略opcode_2或者将其设置为0,否则结果未知。 指 令 说 明 语法格式 mcr 将ARM处理器的寄存器中的数据写到CP15中的寄存器中 mcr{cond} p15,opcode_1, rd,crn,crm,{opcode_2} mrc 将CP15中的寄存器中的数据读到ARM处理器的寄存器中 mcr{cond} p15,opcode_1, rd,crn,crm,{opcode_2} CP15寄存器介绍CP15的寄存器列表如表所示。 寄存器编号 基本作用 在MMU中的作用 在PU中的作用 c0 c0 ID号寄存器 缓存类型寄存器 ID编码和cache类型 c1 全局控制寄存器 (使能/禁止MMU、cache、写缓冲)) 各种控制位 c2 转换表基址寄存器(Translation Table Base --TTB)(设置变换表基地址(16k对齐)) 地址转换表基地址 Cachability的控制位 c3 域访问控制寄存器(Domain access control )(设置16个域的访问权限) 域访问控制位 Bufferablity控制位 c4 保留 保留 保留 c5 异常状态寄存器(fault status -FSR) 内存失效状态 访问权限控制位 c6 异常地址寄存器(fault address -FAR) 内存失效地址 保护区域控制 c7 缓存操作寄存器 高速缓存和写缓存控制 c8 TLB操作寄存器操作TLB功能(无效统一TLB、无效指令或数据TLB TLB控制 保留 c9 缓存锁定寄存器 高速缓存锁定 c10 TLB 锁定寄存器 TLB锁定 保留 c11 保留 c12 保留 c13 进程PID 进程标识符 c14 保留 c15 测试配置及时钟配置寄存器 因不同设计而异 因不同设计而异 ARM处理器中CP15协处理器的寄存器 CP15系统控制协处理器 CP15 —系统控制协处理器 (the system control coprocessor)他通过协处理器指令MCR和MRC提供具体的寄存器来配置和控制caches、MMU、保护系统、配置时钟模式(在bootloader时钟初始化用到) CP15的寄存器只能被MRC和MCR(Move to Coprocessor from ARM Register )指令访问 MCR{cond} p15,Opcode_1,Rd,CRn,CRm,Opcode_2 MRC{cond} p15,Opcode_1,Rd,CRn,CRm,Opcode_2 其中L位用来区分MCR(L=1)和MRC(L=0)操作. CP15包括15个具体的寄存器如下 要注意有2个R0,根据MCR操作数2的不同传送不同的值,操作数为0则表示操作ID号寄存器,这也一个只读寄存器;操作数为1则表示操作缓存类型寄存器 -c0:ID号寄存器 这是一个只读寄存器,返回一个32位的设备ID号,具体功能参考ARM各个系列型号的的CP15 Register 0说明. MRC p15, 0, Rd, c0, c0, {0, 3-7} ;returns ID 以下为ID C

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档