欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

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

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

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

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

    嵌入式系统原理第四章 启动:引导与驱动,引 言,引导是系统启动和运转的第一步,是系统从硬件走向系统软件的开始,从这一刻开始,系统将从固化的代码和静态的电路转变为动态运行的程序和具有功能的系统。启动前操作系统仅仅是存储在不挥发介质中的代码,从启动的一刻开始,操作系统将被装载到内存中成为有完整功能的运行系统。这个装载的过程就是引导,而为了保证系统功能可以正常调用,所做的初始化准备就是驱动。顺利进行引导与驱动两部分工作就是引导层要完成的使命。,4.1引导层建立,接口的统一性和友好性,控制度兼容性,加载操作系统映象(EPROM、FLASH),加电自检,引导层,系统配置,人机交互,可控状态与不可控状态,处于不可控状态下的系统是不稳定的引导层的可控性与厚度成正比,引导过程,加电,硬件检测,引 导 代 码,初始化硬件环境,载入内核映象,控制权移交,内核配置信息,系统复位,从0 xFFFF0运行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(0 xFFFFFFFF)Stage1:平台相关代码,如设备初始化设置时钟、中断控制寄存器等,完成内存映射、初始化MMU Stage2:平台无关代码装载内核,中断RAMCPU频率,测试RAM,地址参数,串口计时器,地址范围,CPU寄存器CPU模式CacheMMU,问题与优点,占用内存启动速度慢不稳定:程序运行于内存中,处于可修改状态可更新通用性灵活性,片内引导方式,两种运行方式将固化在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,0 x003FFh,内存,偏移量,基地址,基地址,X86中断向量表,编写中断程序例程 将例程的入口地址写入相应中断向量表特点中断向量与程序分离灵活性:便于编程安全性差:数据程序不分,ARM中断向量表,中断向量表必须放置在从0开始、连续84字节的空间内向量表包含一系列指令跳转到中断服务程序,中断向量表的初始化,设备一,设备二,设备三,中断请求队列,中断请求队列的初始化,中断向量表,4.3.2 I/O初始化,I/O系统包括:输入输出设备设备控制器输入输出操作有关的软硬件 I/O系统的主要功能 信息编址 信息通路 信息传送 格式转换 状态控制信息,总 线,I/O控制器,设备,设备,设备,I/O控制的方式,程序I/OCPU等待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后,下一条指令的地址关闭MMUMMU寄存器的初始化装载页表的信息:入口地址空间标识不可缓冲多个页表入口读写处理打开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 模块装载系统字体设置液晶屏显示为图形模式初始化图形用户界面初始化系统时钟启动操作系统的硬件定时器等中断,OSTaskCreateMain_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就会把其第一扇区的内容复制到物理地址,即从0 x00007c00开始的内存中,然后跳至刚加载的地址并执行之。,(1)把自已从地址0 x00007c00移动到0 x00090000;(2)使用地址0 x00003ff4,创建“实模式”栈;(3)设置磁盘参数表。这里使用的是BIOS提供的软盘驱动程序;(4)通过调用BIOS程序显示“Loading Linux”信息;(5)自举程序调用BIOS程序来加载软盘上内核的setup()函数,并把它放在起始地址为0 x00090200的内存中;(6)接下来自举程序调用一个BIOS程序,这个程序从软盘加载剩余的内核程序,并将其放入起始地址为0 x00010000或者0 x00100000;(7)然后,跳转到setup()函数。,硬盘启动Linux,Lilo 与Grub,l 输出Linux版本信息l 设置与体系结构相关的环境l 页表结构初始化l 设置系统自陷入口l 初始化系统IRQl 核心进程调度器初始化(包括初始化几个缺省的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 创建uidtaskcountSLABcache(uid_cache)l 创建文件cache(files_cache),Linux启动过程,创建目录cache(dentry_cache)l 创建与虚存相关的cachel 块设备读写缓冲区初始化l 创建页cachel 创建信号队列cachel 初始化内存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)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开