登录站点

用户名

密码

arm的mmu

已有 161 次阅读  2013-03-15 15:17   标签arm 
关于CP15:  
 1.在基于ARM嵌入式系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32寄存器,编号0-15.对于某些编号的寄存器可能对应有多个物理寄存器,在指令中指定特定的标志位为区分这些物理寄存器。
 2.操作CP15的指令:MCR与MRC
   MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功的执行该操作,将产生未定义的指令异常中断
   MRC指令将协处理器的寄存器中的数据传送到ARM处理器的寄存器中。如果协处理器不能成功的执行该操作,将产生未定义的指令异常中断
   MCR与MRC指令只能在处理器模式是系统模式中执行,在用户模式下执行此两指令将会角触发未定义指令的异常中断。
  指令的格式为:
MCR{cond} p1,opcode-1,Rd,CRn,CRm,opcode-2
MRC{cond} p1,opcode-1,Rd,CRn,CRm,opcode-2

对于CP15协自带器来说,协处理器操作码1永远为0
Rd  作为源寄存器的ARM寄存器
CRn 目标寄存器的协处理器寄存器。其编号可能为C0,C1,C15
CRm 附加的目标寄存器或者源操作寄存器。用于区分同一个编号的不同物理寄存器。当指令不需要提供附加信息时,将C0指定为CRm。否则指令操作系统不可预知
opcode-2提供附加信息,用于区别同一个编号的不同物理寄存器。当指令中没有指定附加信息时,省略opcode_2或者指定为0

CP15中寄存器的作用:

点击看大图

关于MMU:
ARM支持的存储块大小有以下几种:
 段:大小为1M的存储块
 大页:大小为64K
 小页:大小为4K
 极小页:大小为1K
通常,以段为单位的地址变换过程只需要一极页表。
变化过程:
点击看大图
地址变化过程其实是很简单的。对我们编程稍复杂一点的地方主要是描述符中各字段的作用及设置。

关于Cache:
Cache的分类:
1.统一/独立的数据Cache和指令Cache。当然,系统可能只包含有指令Cache或者只包含数据Cache
2.写通(write-through)cache和写回(write-back)cache。当CPU更新了Cache中的数据后,要将结果写入主存,有两种方法:写通与写回。写通是指CPU必须同时把数据写入主存与Cache。写回是指CPU只写Cache,而要在替换Cache的时候才写主存。
Cache使用注意事项:
1,在ARM中,IO操作通常被映射成存储器操作。对于存储器映射的IO空间,连续读取两次,返回的值可能不同,可能是因为第一次读操作的副作用或者是其它的操作影响了该IO单元的内容。
2.由于写缓冲技术可能会推迟写操作,它同样不适合对于存储器映射的IO空间的操作。
以上两种情况不适合用Cache

上一篇: stm32应用例程 下一篇: ARM寄存器介绍

分享 举报