第4章嵌入式系统软件设计资料

上传人:f****u 文档编号:114569867 上传时间:2019-11-11 格式:PPT 页数:70 大小:4.84MB
返回 下载 相关 举报
第4章嵌入式系统软件设计资料_第1页
第1页 / 共70页
第4章嵌入式系统软件设计资料_第2页
第2页 / 共70页
第4章嵌入式系统软件设计资料_第3页
第3页 / 共70页
第4章嵌入式系统软件设计资料_第4页
第4页 / 共70页
第4章嵌入式系统软件设计资料_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第4章嵌入式系统软件设计资料》由会员分享,可在线阅读,更多相关《第4章嵌入式系统软件设计资料(70页珍藏版)》请在金锄头文库上搜索。

1、第4章 嵌入式系统软件设计,4.1 嵌入式软件特点及分类 4.2 嵌入式软件的体系结构 4.3 嵌入式系统的设备驱动 4.4嵌入式操作系统基础,嵌入式系统的软/硬件框架,嵌入式系统硬件部分,嵌入式系统软件部分,如人的大脑,决定了硬件的操作模式。通过良好的操作系统以及应用程序,把硬件功能发挥到极至。,如人的手、脚、神经等部位,决定了嵌入式系统的先天功能。如运算能力和I/O接口等。,4.1 嵌入式软件特点及分类,应用在嵌入式计算机系统当中的各种软件统称为嵌入式软件,(l)规模较小 嵌入式系统的资源有限 嵌入式软件都在几MB以内 (2)开发难度大 嵌入式软件在时间和空间上都受到严格的限制 涉及到底层

2、软件的开发 运行环境和开发环境比PC机复杂,4.1 嵌入式软件特点及分类,应用在嵌入式计算机系统当中的各种软件统称为嵌入式软件,(3)高实时性和可靠性要求 实时性要求软件对外部事件做出反应的时间必须要快 在某些情况下还要可以预测的 在航天控制、核电站、工业机器人等实时系统对嵌入式软件的可靠性要求是非常高的 (4)软件固化存储 为了提高系统的启动速度、执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微处理器中。,4.1 嵌入式软件特点及分类(续),(1)系统软件 系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。 (2)

3、应用软件 应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互。 (3)支撑软件 支撑软件指辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器、源程序模拟器和配置管理工具等。 在嵌入式系统当中,系统软件和应用软件运行在目标平台的(即嵌入式设备上) 而对于各种软件开发工具来说,它们大部分都运行在开发平台(PC机)上,运行Windows或Linux操作系统。,4.2 嵌入式软件的体系结构,(1) 无操作系统的嵌入式软件 早期在嵌入式系统的应用范围主要集中在控制领域,硬件的配置比较低,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上

4、,没有专门的操作系统,软件的规模也很小。 若嵌入式系统的功能需求比较简单,如电动玩具、空调、冰箱等,则嵌入式系统软件只需完成较简单的功能,就不需要嵌入式操作系统的支持。,无操作系统的嵌入式软件主要采用循环轮转和中断(前后台)两种实现方式。 循环轮转方式 循环轮转方式的基本设计思想是:把系统的功能分解为若干个不同的任务,放置在一个永不结束的循环语句当中,按照时间顺序逐一执行。当程序执行完一轮后,又回到程序的开头重新执行,循环不断。 优点:程序简单、直观、开销小、可预测。 缺点:程序必须按顺序执行,无法处理异步事件,缺乏并行处理的能力。缺乏硬件上的时间控制机制,无法实现定时功能。,中断方式 中断方

5、式又称为前后台系统形式,系统在循环轮转方式的基础上增加了中断处理功能。 ISR(Interrupt Service Routine,中断服务程序)负责处理异步事件,即前台程序(foreground),也称为事件处理级程序。 后台程序(background)是一个系统管理调度程序,一般采用的是一个无限的循环形式,负责掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度。 一些对实时性有要求的操作通常由中断服务程序来完成,(2)有操作系统的嵌入式软件 从20世纪80年代开始,操作系统出现在嵌入式系统上。 功能比较复杂,需要网络功能、存储器管理、进程/线程管理等,则通过嵌入式操作系统的帮助,可以

6、加快嵌入式系统软件的开发进度和可靠性。 系统具有自愈能力,不会造成系统崩溃。,多任务: 将整个程序分解为多个任务模块 商业软件提供的多任务调试环境 可裁减 可移植,4.2 嵌入式软件体系结构,4.3 嵌入式系统的设备驱动,嵌入式系统的设备驱动层用来完成嵌入式系统硬件设备所需要的一些软件初始化和管理。 设备驱动层直接对硬件进行管理和控制,并为上层软件提供所需的驱动支持。,三个概念 板级支持包 BootLoader 设备驱动程序,设备驱动层也称为BSP(Board Support Package, 板级支持包), 为操作系统提供一个虚拟的硬件平台,操作系统运行在这个虚拟的硬件平台上。 BSP是针对

7、某个特定的单板而设计的, 系统都会提供相应的演示版本的BSP(最小系统BSP)。 BSP对于用户(指系统开发人员)是开放的,用户可以根据不同的硬件需求对其进行改动或二次开发。 BSP主要包括BootLoader(引导加载程序)和设备驱动程序两个方面的内容。 对于不同的嵌入式操作系统,BSP的具体结构和组成是不相同的。,4.3.1板级支持包,BSP的特点与功能,硬件相关性 因为嵌入式实时系统的硬件环境具有应用相关性,所以,作为高层软件与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。 操作系统相关性 不同的操作系统具有各自的软件层次结构, 因此,不同的操作系统具有特定的硬件接口

8、形式,BSP的特点与功能,一个嵌入式操作系统针对不同的CPU,会有不同的BSP 即使同一种CPU,由于外设的一点差别BSP相应的部分也不一样,BootLoader(引导加载程序)是在操作系统内核运行之前运行的一小段程序。 初始化硬件设备 建立内存空间的映射图 完成整个系统的加载启动任务 BootLoader通常固化在硬件上某个固态存储设备上,加电后自启动。,4.3.2BootLoader,在基于ARM的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Bootloader。 Bootloader是严重地依赖于硬件而实现的。每种不同体系

9、结构的处理器都有不同的Bootloader。,4.3.2BootLoader,Bootloader 的工作模式,对于嵌入式系统的开发人员而言,Bootloader通常包含“启动加载”和“下载”这两种不同的工作模式。,启动加载(Boot loading)模式 正常启动模式 下载(Downloading)模式 提供给开发人员或者技术支持人员使用,Bootloader 的工作模式,(1)启动加载模式 这种模式也称为自主(Autonomous)模式,即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。 这种模式是BootLoader的正常工作模式。

10、 因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下。,Bootloader 的工作模式,(2)下载模式 在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机上下载文件,比如下载应用程序、数据文件、内核映像等。 从主机下载的文件通常首先被BootLoader保存到目标机的RAM中然后再被BootLoader写到目标机上的固态存储设备中,BootLoader的这种模式通常在系统更新时使用。 工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口,比如U-Boot、Blob、VIVI等。,设备驱动程序是必不可少的。

11、 设备驱动程序是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供访问接口。 不同功能的硬件设备,它们的设备驱动程序是不同的。 硬件启动(初始化) 硬件关闭(关机) 硬件停用(暂停) 硬件启用(重新启用) 读操作(读取数据) 写操作(写入数据),4.3.3 设备驱动程序,4.3.4 BSP和BIOS区别,BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化)、装入操作系统并调度操作系统向硬件发出的指令。 BSP是和操作系统绑在一起运行,尽管BSP的开始部分和BIOS所做的工作类似,但是 BSP还包含和系统有关的基本驱动 BIOS程序是用户不能更改,编译编程

12、的,只能对参数进行修改设置。但是程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中,4.3.5 BSP的设计与实现,设计一个完整的BSP需要完成两部分工作: 设计初始化过程,完成嵌入式系统的初始化; 设计硬件相关的设备驱动,完成操作系统及应用程序对具体硬件的操作。,(1)初始化过程,片级初始化: 主要完成CPU的初始化 设置CPU的核心寄存器和控制寄存器 CPU核心工作模式 CPU的局部总线模式等 片级初始化把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态 这是一个纯硬件的初始化过程,(1)初始化过程(续1),板级初始化:

13、完成CPU以外的其他硬件设备的初始化 同时还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境 这是一个同时包含软硬件两部分在内的初始化过程,(1)初始化过程(续2),系统级初始化: 这是一个以软件初始化为主的过程,主要进行操作系统初始化 BSP将控制权转交给操作系统,由操作系统进行余下的初始化操作: 包括加载和初始化与硬件无关的设备驱动程序 建立系统内存区 加载并初始化其他系统软件模块(如网络系统、文件系统等) 最后,操作系统创建应用程序环境并将控制转交给应用程序的入口,(2)硬件相关的设备驱动程序,BSP另一个主要功能是硬件相关的设备驱动 硬件相关的设备

14、驱动程序的初始化和使用通常是一个从高层到底层的过程 系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。,(3)设计实现BSP的一般方法,BSP的开发需要具备一定的硬件知识 要求掌握操作系统所定义的BSP接口 快捷方法 以经典BSP为参考 使用操作系统提供的BSP模板,(4)Bootloader的移植,移植是嵌入式Linux软件设计中用得最多的一个概念 移植就是指软件移植,即将一个软件从一个平台迁移到另一个与其不同的平台上工作。 通常情况下,移植分为以下3种情况: 从一个硬件平台移植到另一个硬件平台 从一个操作系

15、统移植到另一个操作系统 从一种软件库环境移植到另一种软件库环境,(4) Bootloader的移植,一个功能完备的大型Bootloader,就相当于一个小型的操作系统。 在嵌入式领域中,操作系统移植的关键在于Bootloader的移植以及操作系统内核与硬件相关部分的移植。,每种不同的CPU体系结构都有不同的Bootloader. Bootloader还依赖于具体嵌入式板级设备的配置 板卡的硬件地址分配 RAM芯片的类型 其他外设的类型,(5)典型的Bootloader,U-BOOT RedBoot Vivi,U-boot,U-Boot,全称Universal Bootloader,是遵循GPL

16、条款的开放源码项目 U-Boot是德国DENX小组开发的用于多种嵌入式CPU的BootLoader程序,它可以运行在基于PowerPC、ARM、MIPS等多种嵌入式开发板上。 它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS等嵌入式操作系统。,RedBoot是一个专门为嵌入式系统定制的引导启动工具,最初由Redhat开发,它是基于eCos(Embedded Configurable Operating System)的硬件抽象层,同时它继承了eCos的高可靠性、简洁性、可配置性和可移植性等特点。 RedBoot集Bootloader、调试、Flash烧写于一体,支持串口、网络下载,执行嵌入式应用程序。 既可以用在产品的开发阶段(调试功能),也可以用在最终的产品上(Flash更新、网络启动)。执行。,RedBoot,VIVI是由韩国MIZI公司开发的专门用于ARM产品线的一种BootLoader。因为VIVI 目前只支持使用串口和主机通信,所以必须使用一条串口电缆来连接目标板和主机。 它同样支持启动加载模式和下载工作模式。,ViV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号