- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
total 23 嵌入式系统原理、设计与应用 6 嵌入式系统的软件系统 软件系统 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。 其中: 程序是按照事先设计的功能和性能要求执行的指令序列; 数据是程序能正常操纵信息的数据结构; 文档是与程序开发维护和使用有关的各种图文资料。 软件系统 软件是一种逻辑实体,具有抽象性。 这个特点使它与其它工程对象有着明显的差异。人们可以把它记录在纸上、内存、和磁盘、光盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。 嵌入式软件系统的分类 嵌入式软件系统的分类 从运行平台来分,嵌入式软件可以分为 运行在开发平台上的软件:设计、开发、测试工具等。 运行在嵌入式系统上的软件:嵌入式操作系统、应用程序、驱动程序及部分开发工具。 嵌入式软件系统的体系结构 嵌入式软件系统的体系结构 驱动层 驱动层是直接与硬件打交道的一层,它对操作系统和应用提供所需的驱动的支持。该层主要包括三种类型的程序。 嵌入式软件系统的体系结构 操作系统层 操作系统层包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分。 其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来确定。 嵌入式软件系统的体系结构 中间件层 目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向应用领域的中间件软件。 如基于嵌入式CORBA的应用于软件无线电台的应用中间件SCA(Software Core Architecture)等。 嵌入式软件系统的体系结构 应用层 应用层软件主要由多个相对独立的应用任务组成 每个应用任务完成特定的工作,如I/O任务、计算的任务、通信任务等,由操作系统调度各个任务的运行。 嵌入式软件运行流程 嵌入式软件运行流程 上电复位、板级初始化阶段 嵌入式系统上电复位后完成板级初始化工作。 板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的: CPU中堆栈指针寄存器的初始化。 BSS段(Block Storage Space表示未被初始化的数据)的初始化。 CPU芯片级的初始化:中断控制器、内存等的初始化。 嵌入式软件运行流程 系统引导/升级阶段 根据需要分别进入系统软件引导阶段或系统升级阶段。 软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。 嵌入式软件运行流程 系统引导阶段 系统引导有几种情况: 将系统软件从NOR Flash中读取出来加载到RAM中运行:这种方式可以解决成本及Flash速度比RAM慢的问题。软件可压缩存储在Flash中。 不需将软件引导到RAM中而是让其直接在NorFlash上运行,进入系统初始化阶段。 将软件从外存(如NandFlash、CF卡、MMC等)中读取出来加载到RAM中运行:这种方式的成本更低。 嵌入式软件运行流程 系统升级阶段 进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级。 远程升级一般支持TFTP、FTP、HTTP等方式。 本地升级可通过Console口使用超级终端或特定的升级软件进行。 嵌入式软件运行流程 系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。 系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。 嵌入式软件运行流程 应用初始化阶段 在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。 多任务应用运行阶段 各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。 嵌入式系统的软件开发问题 嵌入式操作系统。 操作系统与应用软件的集成。 软件的结构。 嵌入式系统的软件是没有出口的,程序不能“退出”,整个程序的结构应该是无限的循环。 嵌入式系统的软件设计需要考虑硬件的支持、操作系统的支持、程序的初始化和引导等诸多的方面。 嵌入式系统的软件可能没有操作系统,在裸机上直接开发。 4 软件系统的设计方法 无操作系统的嵌入式软件设计 有操作系统的嵌入式软件设计 单处理器多任务系统 多处理器多任务系统 4.1 无操作系统的嵌入式软件设计 前后台系统 中断(事件)驱动系统 巡回服务系统 基于定时器的巡回服务系统 按嵌入式系统软
文档评论(0)