基于Linux的嵌入式系统开发技术(第六章).ppt

基于Linux的嵌入式系统开发技术(第六章).ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 基于Linux的 嵌入式软件开发技术 目录 嵌入式软件设计 ARM-Linux内核 ARM-Linux系统的调试 ARM-Linux的设备驱动程序 嵌入式GUI简介 嵌入式软件设计 嵌入式软件设计—交叉编译 嵌入式软件设计—引导加载程序 嵌入式软件设计—引导加载程序 嵌入式软件设计—内核移植 嵌入式软件设计—内核移植 嵌入式软件设计—内核移植 嵌入式软件设计—内核移植 嵌入式软件设计—内核移植 嵌入式软件设计—文件系统 ARM-Linux内核 ARM-Linux内核 ARM-Linux内核 ARM-Linux内核 ARM-Linux内核 ARM-Linux内核—内存管理 存储管理是一个很大的范畴 存储地址映射和内存空间的分配 对地址访问的保护和限制 I/O地址映射 存储管理机制的实现和具体的CPU以及MMU的结构关系非常紧密 操作系统内核的复杂性相当程度上来自内存管理,对整个系统的结构有着根本性的深远影响。 ARM-Linux内核—内存管理 MMU,也就是“内存管理单元”,其主要作用是两个方面: 地址映射 对地址访问的保护和限制 MMU可以集成在芯片中,也可以作为协处理器 ARM-Linux内核—内存管理 冯·诺依曼结构:程序只是一种数据,对程序也可以像对数据一样加以处理,并且可以和数据存储在同一个存储器中。 哈佛结构:采用程序和数据两个存储器、两条总线的系统结构。 当前嵌入式系统中使用哈佛结构的较多。 ARM-Linux内核—内存管理 ARM存储管理机制 ARM系统结构中,地址映射可以是单层的按“段(section)”映射,也可以是二层的页面映射 采用单层的段映射的时候,内存中有个“段映射表” ,当CPU访问内存的时候: 其32位虚地址的高12位用作访问段映射表的下标,从表中找到相应的表项 每个表项提供一个12位的物理段地址,以及对这个段的访问许可标志,将这12位物理段地址和虚拟地址中的低20位拼接在一起,就得到了32位的物理地址 ARM-Linux内核—内存管理 如果采用页面映射,“段映射表”就成了“首层页面映射表”,映射的过程如下: 以32位虚地址的高12位(bit20-bit31)作为访问首层映射表的下标,从表中找到相应的表项,每个表项指向一个二层映射表。 以虚拟地址中的次8位(bit12-bit19)作为访问所得二层映射表的下标,进一步从相应表项中取得20位的物理页面地址。 最后,将20位的物理页面地址和虚拟地址中的最低12位拼接在一起,就得到了32位的物理地址。 ARM-Linux内核—内存管理 凡是支持虚存的CPU必须为有关的映射表提供高速缓存,使地址映射的过程在不访问内存的前提下完成,用于这个目的高速缓存称为TLB。 考虑到芯片成本,高速缓存不能放入全部映射表,由MMU有选择地存放部分表项。 ARM系统结构中配备了两个地址映射TLB和两个高速缓存。 ARM-Linux内核—内存管理 ARM处理器中,MMU是作为协处理器CP15的一部分实现的。 MMU相关的最主要的寄存器有三个: 控制寄存器,控制MMU的开关、高速缓存的开关、写缓冲区的开关等 地址转换表基地址寄存器 域访问控制寄存器 ARM-Linux内核—内存管理 ARM-Linux内核—内存管理 ARM-Linux内核—内存管理 ARM-Linux内核—内存管理 ARM-Linux进程的虚存空间 Linux虚拟内存的实现需要6种机制的支持: 地址映射机制 内存分配回收机制 缓存和刷新机制 请求页机制 交换机制 内存共享机制 ARM-Linux内核—内存管理 ARM-Linux内核—内存管理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—中断响应与处理 ARM-Linux内核—Linux系统调用 Linux内核—系统的启动和初始化 Linux内核—系统的启动和初始化 Linux内核—进程管理和调度 Linux内核—进程管理和调度 1. Linux进程的创建 系统的第一个真正的进程,init内核线程(或进程)的标志符为1 新进程通过克隆老进程或当前进程来创建,系统调用fork或clone可以创建新任务 复制完成后,Linux允许两个进程共享资源而不是复制各自的拷贝 Linux内核—进程管理和调度 2. Linux进程的执行 要让若干新进程按照需要处理不同的事情,就必须通过系统调用exec 函数sys_execve将可执行文件的名字从用户空间取入内核空间以

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档