一:ioremap 在内核中有关与物理地址到虚拟地址的映射全都是有mmu,统一开启,而物理地址到虚拟地址的映射关系全都存在一张对应的表格里面,这张表,在开启mmu的时候一起建好,比如在建表的时候是将物理地址0x11111111映射到44444444,那么问题就是: 比如以后我们如果要将0x11...
分类:
系统相关 时间:
2015-05-23 12:57:29
阅读次数:
390
一 页表 1. 页表是放置在RAM(一般为DRAM)中的一个数据段。 2. ARM的地址空间为2^32字节,即4G字节。 3. 一级页表总共有4096条记录,每条记录对应的地址块为1M,一级页表中的记录将虚拟的连续4G寻址空间等分。 4. 一级页表中的每条记录的内容就是虚拟的4G寻址空间的物...
分类:
其他好文 时间:
2015-05-20 00:13:58
阅读次数:
153
在整个ARM体系结构中,为了处理外部中断,依次学习了MMU,模式跳转,异常,GIC,看门狗程序,这些都是为了处理外部中断具体如下:处理外部中断有五个步骤:30 //step 1: cpu cpsr31 __asm__ __volatile__(32 "mrs r0, cpsr\n"33 "bic r...
分类:
其他好文 时间:
2015-05-19 20:33:46
阅读次数:
316
由于在裸板驱动的时候要中断>>异常>>MMUMMU是一个内存管理单元,在CP15协处理器里面,而CP15处理器是嵌入在ARM芯片里。功能是将虚拟地址映射到物理地址里面。在使用MMU寄存器机制之前首先要配置寄存器。将寄存器的功能打开映射的机制支持段模式1M,小段模式,小页模式(更精细)000000--...
分类:
其他好文 时间:
2015-05-13 18:43:04
阅读次数:
141
与其说虚拟地址,倒不如说内核给程序(代码段、数据段)提供了统一的访问模式(抽象出统一的访问模式)基址加偏移量(这也是内存的分层次的断页管理模式)。所以所有程序的编码你可以从假设的“0”基址开始开始编程,具体基址操作系统设定并由MMU完成地址转化~...
分类:
其他好文 时间:
2015-05-10 09:54:27
阅读次数:
139
1、内核数据结构(taskstructure)包含了:PIDPPID进程上一次的运行状态相关数据名称等信息堆:动态增加的内存,可以简称为堆stack:栈,用于存储本地变量MMU:内存管理单元(CPU中的设备)进程切换:也叫上下文切换(进程包含的信息进程号内存空间用户父进程CPUtimeVSZ:虚拟内集..
分类:
系统相关 时间:
2015-05-07 17:00:19
阅读次数:
162
在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。
一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。
从低地址到高地址,可分为下面几段:
预留内存地址(操作系统维护的内存地址,不可访问)
程序代码区(只读,存代码和一...
分类:
其他好文 时间:
2015-04-14 14:43:36
阅读次数:
187
1. 编写linux设备驱动,要求工程师具备一定的硬件基础,懂得SRAM, Flash, SDRAM, 磁盘的读写方式, UART, I2C, USB等设备的接口,轮询、中断、DMA的原理,PCI总线的工作方式以及CPU的内存管理MMU。2. 具备好的C语言基础,可灵活运用结构体,指针,函数指针及内...
分类:
系统相关 时间:
2015-03-13 10:48:17
阅读次数:
190
1.分页内存管理的核心就是:页面的翻译。
对于任何一个虚拟页面,系统要知道该页面是否在物理内存中?如果在的话,对应的物理页面是哪一个?如果不在,就会产生一个缺页中断,并将该虚页从磁盘转到内存,然后将分配给它的物理页面号返回。虚拟页面到物理页面的映射,这个翻译过程由内存管理单元MMU完成。MMU接收CPU发出的虚拟地址,将其翻译为物理地址后发给内存。MMU对虚拟地址的翻译只是对页面号的翻译,而对于...
分类:
其他好文 时间:
2015-03-10 12:15:49
阅读次数:
190
一. 预热文章; | 二. C语言中插入ARM汇编; | 三. U-Boot下汇编裸板开发基本流程; | 四. U-Boot下C语言裸板开发基本流程; | 五. MMU 配置流程; | 六....
分类:
其他好文 时间:
2015-03-07 21:15:53
阅读次数:
929