Chinaunix

标题: 关于mmu地址转化的一个例子 [打印本页]

作者: palm008    时间: 2015-04-09 11:00
标题: 关于mmu地址转化的一个例子
TLB寄存器值0x33ffc000是整个页表的基地址
0x00000018(虚拟地址)地址转换:将虚地址[31:20]位0x0作为索引*4(每个描述符占4个字节)再与页表基地址相加得0x33ffc000,即页表中第一个描述符,因为该描述符为段描述符将其[31:20]位0x300左移20位充0为0x30000000作为该段物理基地址,并将虚地址[19:0]位0x18作为偏移地址与该段物理基地相加得0x30000018。该地址就为虚地址0x18对应的物理地址。

1. 该描述符如何判断是段描述符。
2.为什么要左移动20位呢? 我觉得应该是先右移20位,再左移20位才对,请高手指导

作者: amarant    时间: 2015-04-10 08:51
你说的是什么架构呀?MMU的转化机制每个架构都不一样,需要看具体的手册
作者: arm-linux-gcc    时间: 2015-04-10 11:50
回复 2# amarant


    这个地址一看就是s3c2440或s3c2410,
作者: amarant    时间: 2015-04-10 12:29
回复 3# arm-linux-gcc


    看他说段描述符,怎么都有一种x86的感觉。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2