linux mmu源码分析,写了一个基于MMU的操作系统,A

MOS

...\arch

...\....\built-in.o

...\....\Makefile

...\....\mos.lds

...\....\s3c2410

...\....\.......\built-in.o

...\....\.......\head.d

...\....\.......\head.o

...\....\.......\head.S

...\....\.......\init.c

...\....\.......\init.d

...\....\.......\init.o

...\....\.......\Makefile

...\include

...\.......\init.h

...\.......\interrupt.h

...\.......\mmu.h

...\.......\s3c2410.h

...\.......\sched.h

...\.......\serial.h

...\.......\string.h

...\.......\swi.h

...\init

...\....\built-in.o

...\....\main.c

...\....\main.d

...\....\main.o

...\....\Makefile

...\kernel

...\......\built-in.o

...\......\interrupt.c

...\......\interrupt.d

...\......\interrupt.o

...\......\Makefile

...\......\sched.c

...\......\sched.d

...\......\sched.o

...\......\sched_arm9.d

...\......\sched_arm9.o

...\......\sched_arm9.S

...\......\serial.c

...\......\serial.d

...\......\serial.o

...\......\swi.c

...\......\swi.d

...\......\swi.o

...\......\swi_s3c2410.d

...\......\swi_s3c2410.o

...\......\swi_s3c2410.S

...\lib

...\...\built-in.o

...\...\Makefile

...\...\string.c

...\...\string.d

...\...\string.o

...\Makefile

...\mm

...\..\built-in.o

...\..\Makefile

...\..\mmu.c

...\..\mmu.d

...\..\mmu.o

...\mos

...\mos_dissemble.s

...\mos_tmp.o

...\readme.txt

...\Rules.make

...\user_program

...\............\cat3.s

...\............\cat_sh

...\............\leds

...\............\m

...\............\uart

...\............\usr_LEDS

...\............\........\crt0.o

...\............\........\crt0.s

...\............\........\disassemble.s

...\............\........\leds

...\............\........\leds_tmp.o

...\............\........\lib.c

...\............\........\lib.h

...\............\........\lib.o

...\............\........\main.c

...\............\........\main.o

...\............\........\Makefile

...\............\........\uart

...\............\........\usr.lds

...\............\usr_UART

...\............\........\crt0.o

...\............\........\crt0.s

...\............\........\disassemble.s

...\............\........\lib.c

...\............\........\lib.h

...\............\........\lib.o

...\............\........\main.c

...\............\........\main.o

...\............\........\Makefile

...\............\........\uart

...\............\........\uart_tmp.o

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现了对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位物理地址进行访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值