文件名称:ARM启用MMU分析及源程序代码
文件大小:218KB
文件格式:ZIP
更新时间:2014-01-29 03:38:53
arm mmu
实现了对ARM920T中MMU的启用 地址转换过程 1. 从CP15寄存器C2得到一级页表的基地址 2. 将虚拟地址[31:20]作为页表的索引,得到页表中该虚拟地址的描述符。 3. 判断该描述符是否为段描述符,如为段描述符,将该描述符[31:20]和虚拟地址[19:0]作为偏移量组成一个32位的物理地址进行访问。 4. 如为粗页表描述符,则将该粗页表描述符[31:10]作为二级页表的基地址,并将虚拟地址[19:12]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为极大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ② 为小页描述符表将描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 5. 如为细页表描述符,将该组页表描述符[31:12]作为二级页表的基地址,并将虚拟地址[19:10]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ②为小页描述符表将该描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ③为小极页描述符表将描述符[31:10]作为基地和虚拟地址[9:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。
【文件预览】:
Mmu.mcp
interrup.s
s3c2440.s
ARM-MMU.DOC
s3c2440.inc
Mmu_Data
----DebugRel()
--------ObjectCode()
--------TargetDataWindows.tdt(54KB)
--------Mmu.axf(8KB)
----Debug()
--------ObjectCode()
--------TargetDataWindows.tdt(54KB)
--------Mmu.axf(8KB)
----Release()
--------ObjectCode()
--------MMu.bin(1008B)
--------TargetDataWindows.tdt(57KB)
--------Mmu.axf(7KB)
----CWSettingsWindows.stg(3KB)
mmu.bin
TestMain.s
mmu.s