欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    [信息与通信]7引导与驱动《嵌入式系统原理》.ppt

    • 资源ID:2000463       资源大小:948.50KB        全文页数:80页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [信息与通信]7引导与驱动《嵌入式系统原理》.ppt

    嵌入式系统原理 第四章 启动:引导与驱动,引 言,引导是系统启动和运转的第一步,是系统从硬件走向系统软件的开始,从这一刻开始,系统将从固化的代码和静态的电路转变为动态运行的程序和具有功能的系统。 启动前操作系统仅仅是存储在不挥发介质中的代码,从启动的一刻开始,操作系统将被装载到内存中成为有完整功能的运行系统。这个装载的过程就是引导,而为了保证系统功能可以正常调用,所做的初始化准备就是驱动。 顺利进行引导与驱动两部分工作就是引导层要完成的使命。,4.1引导层建立,接口的统一性和友好性,控制度 兼容性,加载操作系统映象(EPROM、FLASH ),加电自检,引 导 层,系统配置,人机交互,可控状态与不可控状态,处于不可控状态下的系统是不稳定的 引导层的可控性与厚度成正比,引导过程,加电,硬件检测,引 导 代 码,初始化硬件环境,载入内核映象,控制权移交,内核配置信息,系统复位,从0xFFFF0运行BIOS,运行MBR引导程序,运行活动分区引导程序,读入内核映象,PC 机 引 导 过 程,BIOS(基本输入输出系统),DOS的设备驱动层 软硬件分离 扩展能力增强 开放设备得以应用 功能 自检及初始化程序 程序服务处理 中断处理,BIOS的主要内容,自诊断测试程序 系统自举装入程序 系统设置程序 主要I/O设备的I/O驱动程序 中断服务程序,BIOS的功能及其分类,自检及初始化程序 硬件中断处理 程序服务请求,自检及初始化,加电自检 POST 初始化 创建中断向量 设置寄存器 对外设进行初始化和检测 引导程序,程序服务处理和硬件中断处理,操作系统、应用程序,硬件中断处理,程序服务处理,外设,BIOS,中断向量分配表,嵌入式系统中的BIOS环节,自检 初始化 参数设置,BootLoader,Boot Loader就是在操作系统内核运行之前运行的一段特殊程序,它负责将操作系统从非挥发介质或网络接口读出并放至内存中。 硬件检测 初始化硬件 配置内核 调用操作系统内核,驱动部分,驱动 效率,电子阅读器的BIOS,系统自检 完成MASK ROM、FLASH、SRAM、按键等硬件的检测工作。 SM卡系统升级 在加电进入自检菜单后,可以进入SM卡系统升级状态,BIOS根据SM卡的类型,自动完成系统升级工作的服务。 程序自举 加电无按键 BIOS程序在完成初始化 对SM卡等进行安全性检测 将程序引导到操作系统和应用程序,并将控制权移交操作系统 USB功能 在进入自检主菜单后,自动完成USB端口检测,对SM卡进行读写操作,嵌入式Linux启动过程,系统初始化,初始化,检测硬件,驱动程序,装载root,初始进程,初始化总线、网络,初始化外设,文件系统,4.2引导模式,研究引导模式的目的 成本 安全 功耗,非片内引导 将数据段复制到RAM 直接从非挥发介质中运行内核 片内引导 把内核从非挥发介质中复制到RAM 从RAM中运行内核,非片内引导引导加载程序,BootLoader (ARM、x86、MIPS ) 初始地址:Ox00000000 (0xFFFFFFFF) Stage1:平台相关代码,如设备初始化 设置时钟、中断控制寄存器等,完成内存映射、初始化MMU Stage2:平台无关代码 装载内核,中断 RAM CPU频率,测试RAM,地址 参数,串口 计时器,地址 范围,CPU寄存器 CPU模式 Cache MMU,问题与优点,占用内存 启动速度慢 不稳定:程序运行于内存中,处于可修改状态 可更新 通用性 灵活性,片内引导方式,两种运行方式 将固化在Flash中的内核先映射到RAM的某一段地址区间 PC(程序计数器)指向起始地址 直接在Flash中运行操作系统内核,BootLoader 地址:0H,关中断,数据内存,内核,初始化定时器,初始化进程调度,驱动程序,文件系统(Ramdisk),程序可以固化,不必和数据同时调入存储器,解决了复制自身的问题,增强了安全性,提高处理速度,程序不可修改,减少内存消耗,结构复杂,4.3中断、I/O、MMU初始化,4.3.1中断初始化 4.3.2 I/O初始化 4.3.3MMU初始化,中断,处理器,中断源,中断服务程序,中断产生,中断响应,返回,当前进程,什么是中断,CPU接到中断信号后,暂停正在执行的程序,而转去处理中断指令,直到处理完毕,再转回原程序的中断点继续执行 中断过程 现场保护:寄存器+程序计数器 装入中断向量表 运行中断指令 现场恢复,软中断和硬中断,软中断 一种信号机制 由内核机制的触发事件引起的中断 信号机制:进程运行超时,程序陷阱 硬中断 可屏蔽与不可屏蔽中断 由硬件发送中断信号引起的中断,如I/O 电源失效,网络新数据,中断初始化,设置中断向量表 引导程序 操作系统内核 应用程序 256个中断向量,00000h,0x003FFh,内存,偏移量,基地址,基地址,X86中断向量表,编写中断程序例程 将例程的入口地址写入相应中断向量表 特点 中断向量与程序分离 灵活性:便于编程 安全性差:数据程序不分,ARM中断向量表,中断向量表必须放置在从0开始、连续8×4字节的空间内 向量表包含一系列指令跳转到中断服务程序,中断向量表的初始化,设 备 一,设 备 二,设 备 三,中断请求队列,中断请求队列的初始化,中断向量表,4.3.2 I/O初始化,I/O系统包括: 输入输出设备 设备控制器 输入输出操作有关的软硬件 I/O系统的主要功能 信息编址 信息通路 信息传送 格式转换 状态控制信息,总 线,I/O控制器,设备,设备,设备,I/O控制的方式,程序I/O CPU等待I/O设备完成数据传送 中断I/O 当传输完一个数据之后,CPU做中断处理 适合于字符设备 DMA 适合于数据转换速率要求高的系统 不需要CPU干预 不需要中间媒介,浪费CPU,适合字符设备,适合块设备,I/O系统的分类,按传输速率分类 低速设备:数百字节/秒 键盘、鼠标 中速设备:数十K字节/秒 打印机、激光打印机 高速设备:数十兆字节/秒 磁带机、磁盘机、光盘机 超高速设备:数百兆字节/秒 万兆网,I/O系统的分类,按信息交换的单位分类 块设备:信息的存取总是以数据块为单位 磁盘:512B4KB 字符设备 :以字符为基本单位 显示器、键盘、打印机 设备控制器 :CPU与I/O设备间的接口 控制I/O设备 可编址,I/O系统的分类,I/O通道(I/O处理器) 优点 承担繁杂的I/O任务 CPU减轻负担 缺点 价格昂贵 I/O瓶颈,CPU,内存,I/O通道,设备控制器,设备,设备,设备,设备驱动程序,接收上层软件发来的抽象要求 发送具体要求给设备控制器,启动设备去执行 将设备控制器发来的信号传送给上层软件 设备中断程序,I/O完成后的收尾工作,软件,设备 驱动,设备 控制 器,I/O初始化,定义数据结构 设备控制表 设备类型,设备标识符,设备状态(等待/不等待),指向控制器表的指针,设备队列的对手指针,重复执行次数或时间 控制器表 控制器标识符,控制器状态,与控制器连接的的通道表指针,控制器队列的队首指针,控制器队列的队尾指针,定义数据结构,通道表 通道标识符,通道状态,与通道连接的控制器表首址,通道队列的队首指针,通道队列的队尾指针 系统设备表 设备类,设备标识符,驱动程序入口,初始化过程,I/O端口的检查和登记 DMA和IRQ的初始化检查和登记 DMA:交换内存空间 设备请求队列的初始化 设备控制寄存器的检查和初始化,4.2.3MMU初始化,MMU(Memory Management Unit ) 管理虚拟内存系统 功能 支持存储器动态分配,提供存储器保护。 MMU关掉时,虚地址直接输出到物理地址总线。 支持虚拟存储器,将虚地址转换成物理地址。 系统的某些地址段是不允许被访问的,否则会产生不可预料的后果,为了避免这类错误,可以通过MMU匹配表的设置将这些地址段设为用户不可存取类型。,段访问页访问,段访问支持1MB的存储模块 页支持如下各种大小不同的页: 大页(Large page):由64KB存储块组成。大页支持进行大存储区域的映射,附加的访问控制机制被扩展成16KB的子页。 小页(Small page):由4KB存储块组成。附加的访问控制机制被扩展成1KB的子页。 微页(Tiny page):由1KB存储块组成。,MMU的初始化,保存关闭MMU后,下一条指令的地址 关闭MMU MMU寄存器的初始化 装载页表的信息:入口地址空间标识不可缓冲 多个页表入口读写处理 打开MMU,4.4驱动设计,VxWorks系统 BSP的开发 Linux系统的BSP开发,VxWorks BSP,系统引导部分 硬件初始化处理器设置内存初始化 设备驱动部分 驱动字符型设备块存储设备网络设备,系统引导部分,处理器工作状态设定 配置寄存器 设定处理器的工作方式,如是否打开Cache 设置堆栈区的指针、处理器的运行频率等 内存的初始化和配置 根据硬件设计配置内存的大小 不同内存空间起始的地址范围 内存空间的划分等,设备驱动程序部分,字符型设备驱动的开发:如串行通信接口 块存储设备驱动的开发: 块存储设备:结构化管理的,数据以块的形式存储和访问的设备如硬盘、FLASH设备等。 块设备的驱动程序:提供读块,写块,复位设备、执行I/O控制和检查设备状态的例程 网络设备驱动的开发 网络设备主要是指挂接在VxWorks的网络层下的设备,如以太网的网络驱动设备等。网络设备驱动为VxWorks的网络层提供服务。,Linux BSP的开发,系统引导工作 引导层驱动程序的开发 操作系统的驱动程序的开发,系统引导部分,处理器工作状态的设定 设定接下来处理器的工作方式,设置堆栈区的指针,处理器的运行频率等 内存的初始化和配置 Linux操作系统内核不作内存的物理初始化和配置 在装载系统时,把内存大小、地址范围等参数传递给Linux内核,引导层设备驱动的开发,串口驱动的开发 单字符发送;字符串发送;单字符读取等 网络驱动的开发 芯片初始化函数,网络包发送函数,网络包接收函数,芯片复位函数,操作系统的设备驱动的开发,字符型设备 字符设备文件 对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了 不能够随机存取 块设备文件 利用一块系统内存作缓冲区 能够随机存取 网络设备 利用Socket访问 TCP/IP协议栈,BSP的调试,ICE调试 BDM调试,4.5最小系统与示例,使一个含有微处理器的系统具有I/O、中断处理、基本计算能力等制造功能与用户功能,所需的最少的硬件及软件环境 不带操作系统的系统 有操作系统的系统,硬件最小系统,PC DOS,WINCE,Bootloader 初始化XScale内部结构 清空指令和数据Cache 清空指令和数据TLB 处理器的工作级别(特权级) 设定XScale的工作频率等 初始化XScale外设结构 GPIO结构的功能设定 内存控制芯片设定 内核搬运,WinCE内核启动,初始化页表 显示debug信息 初始化硬件,初始化内存堆、内核进程、调度器、内核内存池等,启动调度器,C/OS,OSInit(),初始化系统硬件 复位MMU 设定系统时间设定 初始化LCD 模块 装载系统字体 设置液晶屏显示为图形模式 初始化图形用户界面 初始化系统时钟 启动操作系统的硬件定时器等中断,OSTaskCreate Main_Task :无限循环进程,等待高优先级进程 OSStart() :多任务的启动 OSStartHighRdy :启动最高优先级任务 OSCtxSw:任务级的上下文切换 OSIntCtxSw :中断级的任务切换 ,不需压栈 OSTickISR :时钟中断处理,处理高优先级任务 ARMEnableInt():开中断 ARMDisableInt() :关中断,以XScale处理器为例,介绍其上Bootloader的运行过程: l 初始化XScale内部结构,包括清空指令和数据Cache,清空指令和数据TLB,处理器的工作级别(特权级),以及设定XScale的工作频率等操作 l 初始化XScale外设结构,包括GPIO结构的功能设定,UART设定,内存控制芯片设定,以及其他一些寄存器设定。 l 最后将Flash上指定位置处的linux内核搬运到内存中某一地址,然后通过一条跳转指令将控制权移交给linux内核。,Linux,1.BIOS要对硬件进行一系列彻底的检测。这个步骤主要是检查系统安装有哪些设备,以及它们工作是否正常。通常把这个步骤叫做自检(Power-On Self-Test,POST),这时会显示版本及其它很多相关的硬件信息。 2.BIOS要对硬件进行初始化。这一步非常重要,因为它要保证所有的硬件设备在IRQ(中断请求)和I/O端口操作时都没有冲突。等这步完成以后,它会显示一个已经安装的PCI设备表。 3.接着到了操作系统,BIOS将查找一个可以引导的操作系统。这取决于BIOS的设置,它可以从软盘、硬盘或者光盘启动。 4.一旦发现一个合法的设备,BIOS就会把其第一扇区的内容复制到物理地址,即从0x00007c00开始的内存中,然后跳至刚加载的地址并执行之。,(1)把自已从地址0x00007c00移动到0x00090000; (2)使用地址0x00003ff4,创建“实模式”栈; (3)设置磁盘参数表。这里使用的是BIOS提供的软盘驱动程序; (4)通过调用BIOS程序显示“Loading Linux”信息; (5)自举程序调用BIOS程序来加载软盘上内核的setup()函数,并把它放在起始地址为0x00090200的内存中; (6)接下来自举程序调用一个BIOS程序,这个程序从软盘加载剩余的内核程序,并将其放入起始地址为0x00010000或者0x00100000; (7)然后,跳转到setup()函数。,硬盘启动Linux,Lilo 与Grub,l 输出Linux版本信息 l 设置与体系结构相关的环境 l 页表结构初始化 l 设置系统自陷入口 l 初始化系统IRQ l 核心进程调度器初始化(包括初始化几个缺省的Bottom-half) l 时间、定时器初始化(包括读取CMOS时钟、估测主频、初始化定时器中断等 l 提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理) l 控制台初始化(为输出信息而先于PCI初始化) l 剖析器数据结构初始化(prof_buffer和prof_len变量) l 核心Cache初始化(描述Cache信息的Cache) l 延迟校准(获得时钟jiffies与CPU主频ticks的延迟) l 内存初始化(设置内存上下界和页表项初始值) l 创建和设置内部及通用cache(“slab_cache“) l 创建uid taskcount SLAB cache(“uid_cache“) l 创建文件cache(“files_cache“),Linux启动过程,创建目录cache(“dentry_cache“) l 创建与虚存相关的cache l 块设备读写缓冲区初始化 l 创建页cache l 创建信号队列cache l 初始化内存inode表 l 创建内存文件描述符表 l 检查体系结构漏洞 l SMP机器其余CPU(除当前引导CPU)初始化 l 启动init过程,创建第一个核心线程,调用init()函数,原执行序列调用cpu_idle() 等待调度,启 动 过 程,1系统自检 在加电时按住特定按键(系统设置键+目录键),可使电子书进入自检菜单。可完成MASK ROM、FLASH、SRAM、KEY等的检测工作。 2 SM卡系统升级 在加电进入自检菜单后,按“5. SM Card System Update”键进入SM卡系统升级状态,此时系统根据SM卡的类型,自动完成系统升级工作。 3 程序自举 在加电无按键的情况下,BIOS程序在完成初始化后,进行SIM卡等安全性检测,若通过安全性检测则将程序引导到OS和应用程序,并将控制权移交OS和应用程序,完成程序自举工作。若不能通过安全性检测会出现提示信息,程序不继续运行。 4 USB功能 在进入自检主菜单后,BIOS V2.55版具有USB的即插即用功能,系统自动完成对USB端口检测,当检测到USB电平时,出提示信息“USB Writer/Reader for SM card.”,并打开USB端口,可通过USB端口对SM卡进行读写操作。,Wolf BIOS功能,判SIM卡正确否? 若正确,引导到OS 和应用程序,否则 HALT,写特定FLASH区,SM卡升级,硬件Hardware,引导与驱动,最小系统:系统成长,平整度,厚度:效率,融合度,OS 内核,总结,习 题,BSP的具体作用 详述片内引导与非片内引导,比较它们的区别 PC BIOS在PC产业的发展中起到了哪些作用 嵌入式系统中为什么要加入BIOS环节 什么是最小系统 MMU有哪些功能,

    注意事项

    本文([信息与通信]7引导与驱动《嵌入式系统原理》.ppt)为本站会员(音乐台)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开