MMU学习

1.了解mmu的功能和作用:mmu全称为虚拟内存管理器,搞懂mmu可以让我使用更多的内存,而不是简单的只有物理内存。可以做到相同的虚拟地址在不同的进程中,读取的不同的数。不同的进程地址转换规则不同。
2.深入解析mmu:
地址转换分为两个层。level one level two
转换总体介绍
通过TTB的后两位,把转换分为段转换,细叶转换,和粗页转换。这就是第二层!TTB这张表由程序员建立,储存在内存中把其基地址写在cp15 的c2上。
一级页表格式
具体设置
粗页转换不常用,我只学另外两个。
段转换:31-20为段基地址,后面20位为偏移地址。
细叶转换:31-12细叶页表基地址0-11为偏移地址。
3.建立页表
建立一级页表,把TTB写入cp15 的c2,打开MMU
下面用段转换来实现控制LED的虚地址点亮LED,我的led相关配置寄存器物理地址为

 #define    GPFCON *(volatile unsigned long*)0x56000050
 #define    GPFDAT *(volatile unsigned long*)0x56000054

物理地址的基地址为0x56000000,虚拟地址的基地址随意选,我选择0xa0000000,我用的为2440的片子,把页表存在内存的开头0x30000000处。创建页表

创建页表

初始化mmu:
mmu初始化程序
现在在程序中可以使用虚拟地址了:

使用虚拟地址
成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值