嵌入式系统及应用-第6章板级支持包与系统引导.ppt
《嵌入式系统及应用-第6章板级支持包与系统引导.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统及应用-第6章板级支持包与系统引导.ppt(48页珍藏版)》请在三一办公上搜索。
1、第六章,板级支持包与系统引导,核心内容,嵌入式软件运行过程板级支持包(BSP)RTOS的引导模式Boot Loader,嵌入式软件运行流程,上电复位,系统升级,引导/升级系统,系统初始化,应用初始化,多任务应用,板级初始化,远程升级,本地升级,基于多任务操作系统的嵌入式软件的主要运行流程该运行流程主要分为5个阶段,嵌入式软件运行流程,上电复位、板级初始化阶段嵌入式系统上电复位后完成板级初始化工作。板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:CPU中堆栈指针寄存器的初始化。BSS段(Block S
2、torage Space表示未被初始化的数据)的初始化。CPU芯片级的初始化:中断控制器、内存等的初始化。,嵌入式软件运行流程,系统引导/升级阶段根据需要分别进入系统软件引导阶段或系统升级阶段。软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。,嵌入式软件运行流程,系统引导阶段系统引导有几种情况:将系统软件从NOR Flash中读取出来加载到RAM中运行:这种方式可以解决成本及Flash速度比RAM慢的问题。软件可压缩存储在Flash中。不需将软件引导到RAM中而是让其直接在NorFlash上运行,进入系统初始化阶段。将软件从外存(如NandFlash、CF卡、MMC等)中读取出
3、来加载到RAM中运行:这种方式的成本更低。,嵌入式软件运行流程,系统升级阶段进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级。远程升级一般支持TFTP、FTP、HTTP等方式。本地升级可通过Console口使用超级终端或特定的升级软件进行。,嵌入式软件运行流程,系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。,嵌入式软件运行流程,应用初始化阶段在该阶段进行应用任务的创建,
4、信号量、消息队列的创建和与应用相关的其它初始化工作。多任务应用运行阶段各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。,6.2 板级支持包,BSP的概念BSP中驱动程序BSP和BIOS的区别RTOS的BSP,一、BSP的概念BSP是嵌入式系统的基础部分,也是实现系统可移植性的关键。它负责上电时的硬件初始化、启动RTOS或应用程序模块、提供底层硬件驱动,为上层软件提供访问底层硬件的手段。,BSP是板级支持包(Board Support Package)的缩写,是通常用在嵌入行业中的一个术语,用来代表在一个特殊硬件平台上快速构建一个嵌
5、入操作系统所需的原始资料或者二进制软件包。BSP的作用是支持操作系统,使之能够更好的运行于硬件平台。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,包括Windows CE、Linux、Vxworks等。SoC/CPU厂商应向其芯片的用户提供一个基本的BSP包,以支持主板厂商或整机制造厂商在此基础上定制和开发各种商用终端产品。,二、BSP中驱动程序1、驱动程序的概念2、驱动程序基本功能1)对设备初始化和释放。2)对设备进行管理。3)读取应用程序传送给设备文件的数据,并回送应用程序请求的数据。4)检测和处理设备出现的错误。,3、驱动程序的运作过程,三、BSP和BIOS的区
6、别1、PC机主板上的BIOS开始部分所做工作和BSP比较类似,主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化等)、装入操作系统。但是BIOS不包含设备驱动程序,而BSP却包含。2、BIOS不可修改;BSP可以编程修改,四、RTOS的BSP最基本的BSP仅提供CPU复位、初始化、驱动串口和必要的时钟处理功能。1、VxWorks的BSP1)初始化A)CPU InitB)Board InitC)System Init2)驱动程序A)系统软件相关的驱动程序B)应用相关的驱动程序,2、RTEMS的BSP1)RTEMS中BSP的定义:RTEMS的板级支持包是启动代码、连接器脚
7、本和编译规范文件(specs)和设备驱动程序的集合。,2)RTEMS中BSP的开发A)建立开发环境B)选择BSP模板C)建立新BSP目录D)建立BSP配置文件E)修改makefile文件F)修改启动代码G)配置RTEMSH)调试和测试,在嵌入式系统的应用过程中,针对不同的应用环境,对时间效率和空间效率有不同的要求。一、需要Boot Loader的引导模式对于采用高性能RAM的系统,RAM空间有一定限制,此时一般采用Boot Loader引导方式。二、不需要Boot Loader的引导模式对于时间效率要求较高的系统,通常要求系统能够快速启动。直接在NorFlash或ROM系列可以做主存的非易失性
8、存储介质中运行,以达到较快的启动速度。,6.3 RTOS的引导模式,三、操作系统引导实例,ROM中运行的VxWorks写入ROM中的VxWorks是非压缩的,不需要解压,系统直接跳到ROM的首地址,运行VxWorks。VxWorks在ROM中运行主要是为了节省RAM空间,使应用程序有更大的空间运行。ROM中运行的VxWorks优点是启动速度快,缺点是运行速度慢。,2.RAM中运行的VxWorks 写入ROM或Flash中的BootROM Image或VxWorks Image是压缩的,需要先拷贝、解压所有的text和data到RAM的RAM_LOW_ADRS中,然后运行VxWorks。,6.4
9、 Boot Loader,Boot Loader概念Boot Loader的开发,一、Boot Loader概念Boot Loader是在操作系统内核运行之前执行的一段小程序。它将操作系统内核从外部存储介质拷贝到内存中,并跳转到内核的首条指令。在嵌入式系统中,Boot Loader严重依赖于硬件,几乎不可能建立一个通用的 Boot Loader,Bootloader是在操作系统内核运行前运行地一段小程序。通过这段小程序,可以对硬件设备,如CPU、SDRAM、Flash、串口等进行初始化,也可以下载文件到系统板、对Flash进行擦除和编程,真正起到引导和加载内核镜像的作用,但是随着嵌入式系统的发
10、展,Bootloader已经逐渐在基本功能的基础上,进行了扩展,Bootloader可以更多地增加对具体系统的板级支持,即增加一些硬件模块功能上的使用支持,以方便开发人员进行开发和调试。从这个层面上看,功能扩展后Bootloader可以虚拟地看成是一个微小的系统级的代码包。,Bootloader是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需求的Bootloader是不同的;除了体系结构,Bootloader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的Bootloader,未必能够运行在另一块电路开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 应用 章板级 支持 引导
链接地址:https://www.31ppt.com/p-5970502.html