MMU配置和使用

本文介绍了MMU(内存管理单元)在嵌入式系统中的作用,详细讲解了MMU的页表描述,包括一级和二级页表描述符的格式分析,并阐述了1M分段式映射的过程。此外,还提供了MMU配置的三个关键步骤:建立一级页表、写入TTB和打开MMU。
摘要由CSDN通过智能技术生成

一:初识MMU

MMU是memory managerment unit 即内存管理单元,是把虚拟内存转化为物理内存的一个“介质”,为什么要用到虚拟内存呢,因为在嵌入式系统中,进程和程序是很多的,物理内存根本不够用,所以使用MMU可以最大限度减少物理内存的使用,提高运行效率。MMU也是嵌入式和单片机两者中不同点最大的地方,单片机是没有MMU这个概念的。在这里,我们尝试去做一个简单的程序。假设保存为a。

#include<stdio.h>
int a=1;
void main()
{
   while(1)
{
printf("&a=%p,a=%d\n",&a,a);
sleep(3);
}
}

首先在虚拟机上运行这个程序后在我的主机上显示的是0x80496a4 a=1
再将此文件复制一次保存为b。修改b,将int a=1改为int b=2。

#include<stdio.h>
int b=1;
void main()
{
   while(1)
{
printf("&b=%p,b=%d\n",&b,b);
sleep(3);
}
}

运行后发现显示的是0x80496a4 b=2
为什么读出来的地址一样,一个读出的是1,一个读出的是2呢?
这就是MMU的作用了,这个地址0x80496a4其实是虚拟地址,MMU需要将其转化为物理地址。

二:MMU深入学习

MMU 页表描述

为了支持段和页的映射方式,MMU使用两级页表描述符,一级页表描述符决定访问的是一个分段还是一个分页式的表,如果访问的是一个分页式的页表,处理器MMU决定页表类型是大页还是小页并找到二级页表。

一级页表描述符格式分析

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值