对S3C2440 MMU的一点理解

S3C2440 MMU的一点理解

       罗覃东2009-10-8

以下以TQ2440开发为例说明本人对MMU工作原理的一点理解。

TQ2440开发板的SDRAM64M,地址范围在0x3000 0000~0x33FF FFFF(属于Bank 6)

 

S3C244032位的CPU,所以CPU可以看到的虚拟地址为232 = 4GB,64M的物理地址(在0x3000 0000~0x33FF FFFF)只是虚拟地址的一小部分。

 

举例:

MOV  R1, 0x30000012

下面结合下图说明一下当执行上述语句时,MMU是怎样工作的。

 (不好意思,不知道怎样上传图片了,该图片是“ARM920T(Rev 1) Technical Reference Manual” 中的Figure 3-8 Section Translation) 。

Modified virtual address 就是0x30000012Translation table base 就是CP15Register 2,也就是TTB寄存器,该寄存器的低140

当执MOV  R1, 0x30000012 时,MMU先将0x30000012地高12位右移18位,然后与TTB寄存器中的内容相或,得到的是第一级段描述符的地址,也就是上图中的Seltion level one descriptor的地址,该地址中的内容:

31~20位:0x30000012 映射到物理地址的段基址

19~0 位:该段的一些信息,比如访问权限等等

 

Seltion level one descriptor地址中的内容的31~20位只是物理地址31~20位而已,剩下的19~0位是从0x30000012这个虚拟地址的19~0位得来的。取出物理地址以后就把物理地址中的内容送到R1中了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值