MMU = memory management unit

1、把虚拟地址转化成物理地址,防止地址冲突

2、访问权限管理

MMU把一个虚拟地址的20位到31位作为取出来,建立

一张表,叫做translation table base,也叫做一级页表

索引,根据每个地址的最后两位进行分类,在进行段式

转换、粗叶地址转换和细叶地址转换。

段式转换是将最后两位是10的虚拟地址的高12位作为基

地址,剩余20位作为偏移地址

细叶地址转换是将最后两位是11的虚拟地址的高12位作为

一级页表,第10到第19位作为二级页表,0到11位作为偏移

地址。

#define GPBCON (volatile unsigned long *)0xA0000010
#define GPBDAT (volatile unsigned long *)0xA0000014 #define MMU_FULL_ACCESS (3<<10)  // 访问权限
#define MMU_DOMAIN    (0<<5)  // 属于哪个域
#define MMU_SPECIAL (1<<4)  // 必须是1
#define MMU_CACHEENABLE (1<<3)  // cacheable
#define MMU_BUFFERABLE (1<<2)  // bufferable
#define MMU_SECTION (2<<0)  // 表示这是段描述符 #define SECDESC (MMU_SECTION|MMU_SPECIAL|MMU_SPECIAL|MMU_FULL_ACCESS)
#define SECDESC_WB (MMU_SECTION|MMU_SPECIAL|MMU_SPECIAL|MMU_FULL_ACCESS|MMU_CACHEENABLE|MMU_BUFFERABLE) void creat_page_table()
{
unsigned long *ttb = (unsigned long *)0x30000000;
unsigned long vaddr,paddr; vaddr = 0xA0000000;
paddr = 0x56000000; *(ttb + (vaddr >> )) = ((paddr & 0xfff00000)|SECDESC); vaddr = 0x30000000;
paddr = 0x30000000; while(vaddr += 0x34000000)
{
*(ttb + (vaddr >> )) = ((paddr & 0xfff00000)|SECDESC);
vaddr += 0x10000;
paddr += 0x10000;
}
} void mmu_init()
{
__asm__(
  //设置TTB
"ldr r0, =0x3000000\n"
"mcr p15,0,r0,c2,c0,0\n"   //不进行权限检查
"mvn r0,#0\n"
"mcr p15,0,r0,c3,c0,0\n"   //使能MMU
"mrc p15,0,r0,c1,c0,0\n"
"orr r0,r0,#0x0001\n"
"mcr p15,0,r0,c0,c1,0\n"
:
:
);
} int gboot_main()
{
creat_page_table();
mmu_init(); *(GPBCON) = 0x15400;
*(GPBDAT) = 0x0; return ;
}

MMU功能解析、深入剖析、配置与使用的更多相关文章

  1. [国嵌攻略][047][MMU功能解析]

    MMU功能解析 1.Memory Management Unit(存储器管理单元) 2.两个进程读取同一个地址能读到不同的值.因为进程访问的是虚拟地址,通过MMU转换成不同的物理地址.不同的进程通过M ...

  2. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

  3. Lemon OA第2篇:功能解析方法

    Lemon OA,整个系统功能也算是比较丰富,OA的很多功能都能看见影子,虽然做得不是很强大 接触Lemon OA,起源于Activiti的学习热情,既然这样,研究Lemon OA的目标有3: 1.L ...

  4. java -D 参数功能解析

    我们都知道在启动tomcat或直接执行java命令的时候可以通过参数-XX等来配置虚拟机的大小,同样,也应该留意到java -Dkey=value的参数.那么这个参数是什么作用呢? 使用案例 其实,在 ...

  5. 菜鸟nginx源代码剖析 配置与部署篇(一) 手把手实现nginx &quot;I love you&quot;

    菜鸟nginx源代码剖析 配置与部署篇(一) 手把手配置nginx "I love you" Author:Echo Chen(陈斌) Email:chenb19870707@gm ...

  6. SQL Server 数据加密功能解析

    SQL Server 数据加密功能解析 转载自: 腾云阁 https://www.qcloud.com/community/article/194 数据加密是数据库被破解.物理介质被盗.备份被窃取的最 ...

  7. 微信小程序0.11.122100版本新功能解析

    微信小程序0.11.122100版本新功能解析   新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方 ...

  8. Unity5 新功能解析--物理渲染与standard shader

    Unity5 新功能解析--物理渲染与standard shader http://blog.csdn.net/leonwei/article/details/48395061 物理渲染是UNITY5 ...

  9. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

随机推荐

  1. 使用 certbot 自动给 nginx 加上 https

    概述 目前,Let's Encrypt 可以算是最好用的 https 证书申请网站了吧.而 certbot 可以算是它的客户端,能够很方便的自动生成 https 证书.我把自己的使用经历记录下来,供以 ...

  2. C#连接内存数据库redis【1、安装配置】

    Redis是一个不错的缓存数据库,读取数据速度效率都很不错.今天大家共同研究下redis的用法.结合网上的资料和自己的摸索,先来看下安装与配置把. 咱们主要看在WINDOWS上怎样使用REDIS数据库 ...

  3. Selenium 2自动化测试实战24(webdriver原理)

    一.webdriver原理 webdriver是按照Server-Client的经典设计模式设计的.Server端就是Remote Server,可以是任意的浏览器.当我们的脚本启动浏览器后,该浏览器 ...

  4. rabbiit报错处理

    一.ping不同download.yunwei.edu 内网服务地址必须在前面 [root@localhost ~]# vim /etc/resolv.conf # Generated by Netw ...

  5. python programming作业10(仍有一点点小bug)

    # -*- coding: utf-8 -*- import os import platform import sys from PyQt5.QtCore import * from PyQt5.Q ...

  6. app测试基础知识之命令

    app测试点:功能测试,安全测试,用户体验测试,交叉事件测试,兼容性测试,性能测试,安装/升级/卸载 ,UI测试 命令操作: adb connect 名 adb devices adb  instal ...

  7. 【Linux开发】linux设备驱动归纳总结(四):3.抢占和上下文切换

    linux设备驱动归纳总结(四):3.抢占和上下文切换 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  8. (一)Java秒杀项目之项目环境搭建

    一.Spring Boot环境搭建 1.把项目分成多个模块,每个模块对应一部分(不一定是一个章节)的内容,代码将在文章的具体位置给出,每个模块都是在之前模块的基础上构建,每个模块都为Spring Bo ...

  9. PHP 补零操作

    str_pad(string,length,pad_string,pad_type)//参数 描述string //必需.规定要填充的字符串.length //必需.规定新的字符串长度.如果该值小于字 ...

  10. jQuery可拖拽旋转的3D图片墙

    在线演示 本地下载