版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012075395/article/details/78865373
04.ARM-mini2440-内存管理单元(MMU)
图中第1种没有使用MMU
图中第2种使用MMU
CPU只关心发出地址,读写数据
写程序,链接地址,无需你地址物理地址,只是cpu看到的
- 虚拟地址怎么转化成物理地址???
- 使用表格,即是页表
- CPU有两种映射方式:
- ①段(本次使用为段)
- ②大页、小页,极小页
映射大小为1M,表格数为4G/1M = 4096(表项)
PA | VA |
---|---|
0X56000000 | 2560 |
… | … |
PA2 | |
PA1 | 0——1M |
建立映射:
- 段单位是1M,0XA0000050/1M = 0XA00,如上表。
- 因此可以使用MMU步骤为;
- ①建立表格(建立虚拟地址到物理地址的赢映射)
- ①表格地址告诉MMU(表格放到内存里面,把内存的首地址告诉MMU)
- ①启动MMU
程序解析
1.片内RAM
存放内容 | 对应地址 |
---|---|
led.o | 2048 |
init.o head.o | 0 |
2.SDRAM
-
存放内容(或映射地址) 地址 对应的序号 … … … leds.o 0X30004000 - … … … 0XB0004000(1M) 0X30004000 c … … … 0XA0000050(1M) 0X56000050 c … … … 0-1M 0X30000000 a - 目标:用虚拟地址点亮LED
- 1.创建页表,需要创建以下三个页表。
-
a.0-4096==》0-4096
b.0XB0004000==》0X30004000
c.0XA0000050==》0X56000050