MMU功能解析

1.Memory Management Unit(存储器管理单元)

2.两个进程读取同一个地址能读到不同的值。因为进程访问的是虚拟地址,通过MMU转换成不同的物理地址。不同的进程通过MMU有不同的映射规则

3.如果MMU没有工作,那么在程序中使用的是物理地址。为避免程序物理地址冲突,在系统中会使用虚拟地址

4.MMU最重要的作用就是把虚拟地址转换成物理地址,其次就是控制访问权限

MMU地址转换

1.在ARM核手册的内存管理部分有相关描述

2.MMU把32位的虚拟地址转换成物理地址,分为两级转换。第一级转换通过translation table完成,第二级转换分为段页、粗页和细页

3.translation table存放在内存中,由工程师建立,并把TTB(转换表基地址)写到CP15的C2寄存器中,告诉MMU转换表的基地址

4.段页转换:

4.1.MMU根据虚拟地址的31~20位作为一级页表(转换表)的索引找到表项。当表项最后两位为10时,表示二级转换为段页转换。在该表项的31~20位保存了段页的物理基地址

4.2.段页的大小为1MB,段内偏移由虚拟地址19~0位来提供

4.3.段页转换的物理地址等于段页的物理基地址加上段内偏移

5.细页转换

5.1.MMU根据虚拟地址的31~20位作为一级页表(转换表)的索引找到表项。当表项最后两位为11时,表示二级转换为细页转换。在该表项的31~20保存了细页页表的基地址

5.2.通过细页页表的基地址找到二级页表。通过虚拟地址的19-12位找到二级页表的表项。通过该表项找到物理页基地址

5.3.物理页也叫做页帧,是指把物理内存按照1K/4K/64K大小进行划分。物理页的偏移由虚拟地址的11-0位来提供

5.4.细页转换的物理地址等于物理页基地址加上页内偏移

6.MMU工作依赖于一级页表和二级页表。段页转换有一级页表(转换表);细页转换有一级页表(转换页)和二级页表(细页页表)。这些页表由工程师来建立

[国嵌攻略][047][MMU功能解析]的更多相关文章

  1. [国嵌攻略][048][MMU配置与使用]

    MMU配置与使用 1.通过点亮LED使用虚拟地址来使用MMU,采用段页映射方式 2.任务步骤:1.建立一级页表 2.写入TTB 3.打开MMU 代码编写 1.虚拟地址的段地址0xA0000000,一级 ...

  2. [国嵌攻略][051][NandFlash原理解析]

    扮演角色 相当于嵌入式设备的硬盘 NandFlash分类 1.SCL(single level cell):单层式存储 2.MLC(multi level cell):多层式存储 3.SCL在存储格上 ...

  3. [国嵌攻略][060][LCD工作原理解析]

    LCD硬件体系 1.LCD液晶屏 液晶属于一种有机化合物,分子形状为长棒状,在不同的电流作用下,分子会有规律旋转,这样对光线产生一定的控制形成一个像素,而很多像素右可以构成完整的图像. LCD是Liq ...

  4. [国嵌攻略][179][OpenSSL加密系统]

    未加密传输的安全弊端 如果在网络传输中没有加密,就是以明文传输.传输的数据可以被抓包软件直接截获,并能读取里面的数据. 加密基本原理 1.对称加密 2.非对称加密 2.1.公钥私钥 公钥和私密要配对. ...

  5. [国嵌攻略][174][CGI快速入门-网页控制LED]

    CGI程序(Common Gate Way Interface) 在服务器外部供服务器调用的程序,CGI程序与服务器配合后能让服务器完成更强大的功能. 1.浏览器通过HTML表单或超链接请求指向一个C ...

  6. [国嵌攻略][164][USB驱动程序设计]

    USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.U ...

  7. [国嵌攻略][155][I2C用户态驱动设计]

    用户态驱动模型 用户态驱动模型首先是一个应用程序,其次是在这个用户程序中通过内核调用来驱动设备. IIC通用驱动代码 IIC通用驱动程序的代码在/drivers/i2c/i2c-dev.c中.一次读操 ...

  8. [国嵌攻略][153][I2C裸机驱动设计]

    eeprom简介 eeprom电可擦除可编程只读存储器,是一种类似于flash的固态存储器,但是与flash相比又存在一些区别: 1.eeprom可以按位擦写,而flash只能大片擦除. 2.eepr ...

  9. [国嵌攻略][127][tty驱动程序架构]

    tty概念解析 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备. 1.串口终端(/dev/ttyS*) 串口终端是使用计算机串口连接的终端设备.Lin ...

随机推荐

  1. lesson - 4 Linux目录文件管理

    内容概要:1. 和目录相关的几个命令mkdir 关注-p选项 rmdir 同样也有一个-p选项rm -r -f 两个常用选项cp -r 针对目录, 有时我们使用/bin/cpmv 重命名或者移动, 有 ...

  2. 设计模式之 - 模板模式(Template Pattern)

    引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplica ...

  3. tideways+xhgui搭建php 7的性能测试环境

    前言 我之前使用的是xhprof+xhgui分析线上环境的性能,然而PHP版本升级到PHP 7之后,xhprof已经不可用,于是改用tideways+xhgui,这实际上也是PHP7下开源方案的唯一选 ...

  4. asp.net mvc ajax提交模型到控制器

    http://blog.csdn.net/loongsking/article/details/53224473 function btn_submit() {        var data = n ...

  5. 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数

    问题描述: 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数. 算法一: 对数组a[n]进行冒泡排序,如果冒泡所得的最值和前一个最值相等,则该最值为重复的数. 分析: 该算法时间复杂 ...

  6. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...

  7. Xp根据数据库insert获取微信聊天记录

    https://mp.weixin.qq.com/s?__biz=MzIzNDA3MDgwNA==&mid=2649230245&idx=1&sn=3746423a481976 ...

  8. JS中闭包、函数与对象的介绍和用法

    闭包 闭包概念:当一个内部函数被调用,就会形成闭包,闭包就是能够读取其他函数内部变量的函数,定义在一个函数内部的函,创建一个闭包环境,让返回的这个子程序抓住i,以便在后续执行时可以保持对这个i的引用. ...

  9. TPYBoard—MicroPython开发板免费试用!你最想抱走哪款?

    TPYBoard开发板自上市开售以来,受到了广大硬件及MicroPython爱好者的一致好评,许多人提出想试用开发板的申请.为此,TPYBoard特推出多款开发板免费试用活动,感兴趣的朋友抓紧申请吧! ...

  10. 页面刷新vuex数据消失问题解决方案 之 vuex中间件

    之前我写了一篇用ES6 Proxy方案解决数据同步的文章 页面刷新vuex数据消失问题解决方案. 今天和同事沟通这个vuex数据还原问题,我说我的方法很奇异.聊着聊着,同事咋不用  store.sub ...