第十章 ARM存储系统MMU.pptVIP

  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文档。上传文档
查看更多
ARM存储系统概述 传统的低端单片机地址分配是固定的,系统中各部分使用物理地址。 复杂的系统要求的技术 支持多种类型的存储器。如flash、rom、sram和sdram等。 使用高速缓存(cache)和写缓冲技术(write buffer)缩小处理器和存储系统的速度差。 内存管理部件使用内存映射技术实现虚拟空间到物理空间的映射。例如把实际起始地址为0RAM空间映射到起始地址为0x0的空间上。 有存储保护机制。 引入一些机制,保证I/O映射到内存,后各种I/O操作可以得到正确的结果。对于有高速缓存和写缓冲的系统,不能把I/O操作安排在其中。 用于存储管理的系统控制协处理寄存器CP15 在基于ARM的嵌入式系统中,存储系统通常使用CP15来完成存储器的大部分管理工作;除了CP15之外,在具体的存储机制中可能还会用到其他技术如:页表技术等。 CP15可以保护16个32位的寄存器,编号0-15。实际上对于某些编号的寄存器可能对应有多个物理寄存器,在指令中指定特定的标志位来区分相应的寄存器。 MCR:写协处理器指令,将ARM中的Rn寄存器的值写入协处理 器的Cn中。 MRC:读协处理器指令,将协处理器的Cn寄存器的值读入ARM 的Rn中。 MCR 写CP15 指令语法 MCR {cond} p15, op1, Rd,CRn,CRm{, op2} OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0; Rd为源寄存器,其值将被传送到协处理器中;该寄存器不能为PC; CRn是协处理器的目标寄存器,可以是C0-15; CRm是附加的目标寄存器或源操作数寄存器,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm; OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0。 MCR 写CP15 MCR P15, 0, R4, C1, C0, 0 上述指令从ARM寄存器R4中将数据传送到协处理器CP15的寄存器C1中。其中R4为ARM寄存器,存放源操作数;C1和C0为协处理器寄存器,为目标寄存器;操作码1为0,操作码附加信息也为0。 MRC 读CP15 指令语法 MRC {cond} p15, op1, Rd,CRn,CRm{, op2} OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0; Rd为目标寄存器,指令处理的结果将存放在该寄存器中; CRn是协处理器寄存器,存放第一个源操作数; CRm是附加的源操作数寄存器,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm; OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0。 CP15寄存器列表 CP15寄中的寄存器C0 存放ARM相关的一些标识符,C0只读,当MRC指令中制定不同的opcode2时,获取到的是不同的标识符: opcode2编码 对应的标识符寄存器 0 主标识符寄存器 1 Cache类型标识符寄存器 其他 保留 示例:MRC P15, 0, R0, C0, C0, 0 ;将该ARM芯片的标示符读取到ARM寄存器R0中。 示例:MRC P15, 0, R0, C0, C0, 1 ;将该ARM芯片的cache类型读取到ARM寄存器R0中。 CP15中的寄存器C1 CP15中的寄存器C1 C(bit[2]): 当数据和指令cache分开时,使能数据cache,否则使能整个cache。 0 = 禁止, 1 = 使能。 W(bit[3]): 使能写入缓冲, 0 = 禁止, 1 = 使能。 P(bit[4]): 兼容26位地址, 控制PROG32控制信号。0 = 异常中断处理程序进入32位地址模式, 1 = 进入26位模式。 D(bit[5]): 兼容26位地址, 控制DATA32控制信号。 0 = 禁止26位地址异常检查, 1 = 使能。 L(bit[6]): ARMv3及以前版本, 0 = 早期中止模型, 1 = 后期 B(bit[7]): 内存模式, 0 = little-endian, 1 = big-endian。 S(bit[8]): 在基于MMU的存储系统中,用作系统保护。 R(bit[9]): 在基于MMU的存储系统中,用作ROM保护。 CP15中的寄存器C1 F(bit[10]): 由生产商定义。 Z(bit[11]): 使能跳转预测, 0 = 禁止, 1 = 使能。 I(bit[12]

文档评论(0)

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

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

1亿VIP精品文档

相关文档