第5章 ARMLinux内核.ppt

第5章 ARMLinux内核.ppt

ID:48534856

大小:329.00 KB

页数:60页

时间:2020-01-23

第5章 ARMLinux内核.ppt_第1页
第5章 ARMLinux内核.ppt_第2页
第5章 ARMLinux内核.ppt_第3页
第5章 ARMLinux内核.ppt_第4页
第5章 ARMLinux内核.ppt_第5页
资源描述:

《第5章 ARMLinux内核.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ARMLinux内核1提纲1.ARM系统结构简介2.ARM-Linux内存管理3.ARM-Linux的中断响应和处理4.ARM-Linux系统调用5.系统的启动和初始化6.ARM-Linux进程管理和调度7.Linux的模块机制21.ARM系统结构简介ARM有7种运行状态:用户状态(User)中断状态(IRQ,ImterruptRequest)快中断状态(FIQ,FastImterruptRequest)监管状态(Supervisor)终止状态(Abort)无定义状态(Undefined)系统状

2、态(System)3ARM系统结构中各个寄存器的使用方式寄存器使用方式程序计数器pc(r15)由所有运行状态共用通用寄存器r0-r7由所有运行状态共用通用寄存器r8-r12除快中断以外所有其他运行状态共用(快中断状态有自己专用的r8-r12)当前程序状态寄存器CPSR由所有运行状态共用保存程序状态寄存器SPSR除用户状态以外的6种运行状态,各有自己的保存程序状态寄存器SPSR堆栈指针sp(r13)和链接寄存器lr(r14)7种运行状态各有自己的sp和lr42ARM-Linux内存管理存储管理是一

3、个很大的范畴存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响52.1内存管理和MMUMMU,也就是“内存管理单元”,其主要作用是两个方面:地址映射对地址访问的保护和限制MMU可以做在芯片中,也可以作为协处理器62.2冯·诺依曼结构和哈佛结构冯·诺依曼结构:程序只是一种数据,对程序也可以像对数据一样加以处理,并且可以和数据存储在同一个存储器中嵌入式系统中往往采用程序和数据两个存储器、两条总线的系统结构,称为

4、“哈佛结构”72.3ARM存储管理机制ARM系统结构中,地址映射可以是单层的按“段(section)”映射,也可以是二层的页面映射采用单层的段映射的时候,内存中有个“段映射表”,当CPU访问内存的时候:其32位虚地址的高12位用作访问段映射表的下标,从表中找到相应的表项每个表项提供一个12位的物理段地址,以及对这个段的访问许可标志,将这12位物理段地址和虚拟地址中的低20位拼接在一起,就得到了32位的物理地址8如果采用页面映射,“段映射表”就成了“首层页面映射表”,映射的过程如下:以32位虚地址

5、的高12位(bit20-bit31)作为访问首层映射表的下标,从表中找到相应的表项,每个表项指向一个二层映射表。以虚拟地址中的次8位(bit12-bit19)作为访问所得二层映射表的下标,进一步从相应表项中取得20位的物理页面地址。最后,将20位的物理页面地址和虚拟地址中的最低12位拼接在一起,就得到了32位的物理地址。9凡是支持虚存的CPU必须为有关的映射表提供高速缓存,使地址映射的过程在不访问内存的前提下完成,用于这个目的高速缓存称为TLB高速缓存ARM系统结构中配备了两个地址映射TLB和两

6、个高速缓存10ARM处理器中,MMU是作为协处理器CP15的一部分实现的MMU相关的最主要的寄存器有三个:控制寄存器,控制MMU的开关、高速缓存的开关、写缓冲区的开关等地址转换表基地址寄存器域访问控制寄存器11控制寄存器中有S位(表示System)和R位(表示ROM),用于决定了CPU在当前运行状态下对目标段或者页面的访问权限:SRCPU运行在特权状态CPU运行在用户状态00不能访问不能访问10只读不能访问01只读只读11不确定不确定122.4ARM-Linux存储机制的建立ARM-Linux内

7、核也将这4GB虚拟地址空间分为两个部分,系统空间和用户空间ARM将I/O也放在内存地址空间中,所以系统空间的一部分虚拟地址不是映射到物理内存,而是映射到一些I/O设备的地址13ARM处理器上的实现和x86的既相似又有很多不同:在ARM处理器上,如果整个段(1MB,并且和1MB边界对齐)都有映射,就采用单层映射;而在x86上总是采用二层映射ARM处理器上所谓的“段(section)”是固定长度的,实质上就是超大型的页面;而x86上的“段(segment)”则是不定长的Linux在启动初始化的时候依

8、次调用:start_kernel()>setup_arch()>pageing_init()>memtable_init()>create_mapping()14Xsbase255开发系统存储管理的描述数据结构:staticstructmap_descxsbase255_io_desc[]__initdata={/*virtualphysicallengthdomainrwcb*/{0xE8000000,0x00000000,0x02000000,DOMAIN_IO,0,1,0,0},//片选0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。