嵌入式底层软件开发方法_第1页
嵌入式底层软件开发方法_第2页
嵌入式底层软件开发方法_第3页
嵌入式底层软件开发方法_第4页
嵌入式底层软件开发方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式底层软件开发方法自从 20世纪 70 年代单片机出现以来,嵌入式系统已获得了较为深入的研究, 提出了一些嵌入式软件的开发方法,但嵌入式系统仍处于发展阶段,嵌入式系统 已经显示出广阔的应用前景。1. 嵌入式系统的定义嵌入式系统又称为嵌入式计算机系统,是指嵌入到对象体系中的专用计算机系 统。对象系统则是指嵌入式系统所嵌入的宿主系统,嵌入性、专用性与计算机系统 是嵌入式系统的三个基本要素。嵌入式系统通常被描述为:以应用为中心,以计 算机技术为基础,软硬件可剪裁,适应于应用系统对功能、可靠性、成本、体积和 功耗有严格要求的专业计算机系统。2. 嵌入式系统的发展历程 嵌入式系统是在硬件和软件交替发

2、展的支撑下逐渐趋于稳定和成熟的,它有着 悠久的历史。从 20世纪 70年代单片机的出现到现在各种嵌入式微处理器、微控制 器的大规模应用,嵌入式系统己经有了 30 多年的发展历史。纵观嵌入式技术的发展, 大致经历了以下几个发展阶段。(1) 无操作系统阶段:主要是以功能简单的专用计算机或单片机为核心的可编 程控制器形式存在的系统,具有监测、伺服、设备指示等功能,一般没有操作系统 的支持,通过汇编语言编程对系统进行直接控制。主要特点是:系统结构和功能都 相对单一,处理效率较低,存储容量较小,几乎没有用户接口,比较适合于各类专 用领域。(2) 以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统:主要特点

3、是出现 了高可靠、低功耗的嵌入式处理器,嵌入式操作系统能运行于各种不同类型的微处 理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性; 片上系统(SystemOnChip, SOC)使得嵌入系统越来越小,具有大量的应用程序接口, 开发应用程序简单,应用软件丰富。3. 嵌入式系统的构成及其特点1) 嵌入式系统的组成嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件 系统等组成,具有专用性、可嵌入性、实时性、可移植性和分布式等特点。其中, 嵌入式微处理器是嵌入式硬件系统的核心部分,它担负着控制、协调系统工作的重 要任务,通常具有实时多任务处理能力、中断处理能

4、力、存储器保护能力和低功耗 能力;支撑硬件主要包括存储介质、通信部件和显示部件等;支撑硬件的驱动程 序、操作系统、应用软件等一起构成嵌入式软件。2) 嵌入式系统的特点嵌入式系统是一个软件和硬件的集合体,它将先进的计算机技术、半导体技术、 电子技术与应用软件开发技术相结合,是一个技术密集、资金密集、不断创新的知 识集成系统。与通用计算机系统相比,嵌入式系统在很多方面独具特色,下面介绍 了嵌入式系统的几大特点。(1) 软硬件紧密结合:嵌入式系统的主要特征之一是软件与硬件的紧密结合, 其底层的组织结构常常因为所选用硬件体系的不同而发生变化。平台差异性是不存 在通用解决方案的主要原因之一,也使得嵌入式

5、系统具有多种专用工具和特殊方法。(2) 多样性 (专用性、定制性 ):每个嵌入式计算机系统总是跟具体的应用联系在 一起,以应用为中心,为具体的应用服务。因此嵌入式系统是多样化的,需要为满 足不同的应用需求而专门定制,其中既包括硬件系统的多样性,也包括软件系统的 多样性。(3) 资源有限性:受制造工艺和应用环境的限制,嵌入式系统拥有的资源十分 有限。主要表现在对整个计算机系统的体积、功耗、 CPU(Central ProcessingUnit, 中央处理器 )的处理能力、存储器的容量和性能等方面都有较多的限制。(4) 高实时性:嵌入式系统的计算处理过程往往需要在规定时限内完成,这就 要求系统对外

6、部事件的反应要及时准确。(5) 低功耗:功耗问题是嵌入式系统设计中普遍关注的热点和难点,特别是对 于电池供电的系统。降低功耗不仅可以延长用电池供电的设备的工作时间,同时也 可以更容易解决系统的散热问题。(6) 高可靠性:嵌入式系统对可靠性的要求与系统的规模、应用环境和目的有 密切关系。一些实时系统对可靠性的要求极高,如航空航天技术。嵌入式系统的可 靠性涉及到很多方面,如机械设计的可靠性、嵌入式硬件与软件的可靠性等。4 嵌入式系统开发的难点随着电子技术的发展及制造工艺的提高,嵌入式系统的片内 ROM (Read Only Memory,只读存储器)容量不断增大,CPU执行速率不断提高,尤其是嵌入

7、式操作 系统的出现,这使得嵌入式系统在代码实现上发展迅速,现已出现了多种嵌入式编 程语言及其编译环境,如嵌入式 C、C+、Java、Linux 等等。尽管近几年嵌入式系 统发展迅速,但嵌入式系统的特性及其开发方法的不完善,使得嵌入式系统的开发 非常复杂和昂贵,嵌入式开发仍面临着以下重要的问题:(1) 嵌入式系统分析和设计方面没有统一的标准:分析设计方法不统一、从分 析设计到制作和编程没有一个始终一贯的工程化方法,使得产品形成的每一个过程 受人为因素影响十分严重、分析设计的成果不能被开发类似项目或产品重用。(2) 嵌入式系统的专用性很强,嵌入式系统的一个最大特点就是软硬件紧密结 合,为此,嵌入式

8、软件 (尤其是嵌入式底层软件 )的设计和验证要充分考虑硬件 因素。软件需要根据系统硬件的变化和增减不断进行修改。而且嵌入式系统 中微处理器(Micro-ControllerUnit, MCU)的系列十分丰富,使得 MCU的编译 环境无法做到完全的通用。(3) 在实际产品应用中,嵌入式系统大多数是事件驱动的系统,而且外部事件 是多发的和并发的随机事件,即异步事件。嵌入式应用软件系统需要有效地处理 并发事件,所以往往采用多线程 (任务)运行机制,以适应这种复杂的并发环境,这 就增加了软件设计的复杂度。(4) 嵌入式软件运行在特定的硬件体系和环境中,在进行设计时,不但需要考 虑各个节点间的通信和同步

9、问题,还需要考虑整个系统的时序问题。(5) 由于嵌入式系统多工作于工业企业现场或军用装备,不允许死机和系统重 启发生,一旦出现故障,有可能造成整个生产的混乱,甚至产生严重后果,因此对 可靠性和安全性要求很高。这使得嵌入式系统对可靠性、防危性、和容错性等功能有 更苛刻的要求。以上几个方面的问题成为近几年来制约嵌入式系统发展的主要瓶颈,使得大部 分从事嵌入式系统应用开发的组织和团体,基本上是采用小组甚至是作坊式的运作 模式。这使得开发较复杂或大型系统的工作变得十分困难甚至无法进行,或因为系 统需求的不断变化、小组成员的流动导致项目失败。1978年L.L.Constantine和E.YOurdon提

10、出了结构化的软件设计方法,经过 30 多年的研究及应用,已成为技术最成熟、应用最广泛的软件开发方法之一。结构化方法强调过程抽象化和功能模块化。其中,结构是指系统内各个组成 要素之间的相互联系、相互作用的框架。结构化方法的基本思想可以概括为:用系 统工程的思想和工程化的方法,按用户至上的原则,自顶向下、逐步求精地对信息 系统进行分析与设计。采用模块化技术、分而治之的方法,将系统按功能分解为若 干模块,模块内部由顺序、分支、循环基本控制结构组成,应用子程序实现模块化结构化方法是用基于功能分解的观点来分析和解决问题的,即把一个复杂的系 统分解成若干个尽可能独立的子系统、子模块,采用 “自顶向下 ”逐

11、层分析,整个 过程从一个阶段到另一个阶段,其间有明显的间隔。任何软件系统都可以用数据流 图表示,理论上,结构化方法可以用于任意一种软件系统的开发。使用结构化方法 开发的软件运行效率高,且能够增加软件规格说明的可读性及系统的可靠性,因为 数据流图容易理解,有利于开发人员与客户的交流。4.1 结构化方法的不足结构化设计方法中,软件系统结构对系统功能的变化十分敏感,功能的变化往 往意味着需要重新设计。结构化方法中过程抽象化和功能模块化的特点使其在设计 过程中有如下不足:1) 与用户交流不直观,难以应对需求变化结构化分析设计是一种面向过程的方法,形成的系统模型实际上是信息的一种 抽取,这种模型用户难以

12、理解。结构化分析设计对需求变化的适应能力比较弱,当 用户需求信息发生变化或外界条件改变时,设计者无法直观地改变系统,必须映象 为数据流及过程后才有可能实现。2) 开发过程繁琐,从分析到设计难以实现结构化分析设计中的数据流程图是分层次展现系统模型的,这样的设计方法难 以详细地了解整个系统;而且结构化方法中设计文档很难与分析文档对应,因为二 者的表示体系不一致,从分析到设计的 “转换” 不存在可靠的转换规则,而更多地 是带有人为的随意性,容易因理解上的错误而埋下隐患。3) 开发周期长结构化分析设计强调弄清楚用户信息需求,事实上很多情况下信息需求是难以 一次性弄清的,特别是比较大型的系统。而且,设计

13、过程中从结构化分析到结构化 程序设计的转换不可靠,设计出的软件难以重用,进而延缓了开发的进度。目前嵌入式系统的应用越来越广泛,作为嵌入式系统主要部分的嵌入式软件的 需求也越来越大,但因为嵌入式系统实时性、安全性、硬件体系的多样性等特性的 要求,在不同的嵌入式硬件体系上开发出高质量、符合各种要求的嵌入式软件的困 难也越来越大。在嵌入式系统的开发过程中,不仅要尽可能的缩减开发周期和费 用,更重要的是开发出高质量的嵌入式应用程序。这些嵌入式软件不仅要符合嵌入 式系统可靠性、稳定性、实时性等要求,还要求满足软件的可重用性、可配置性和 可扩展性,以提高嵌入式软件的开发效率和质量。嵌入式系统规模不断扩大,

14、嵌入式软件开发已变成一项极具挑战性、较复杂的 任务。嵌入式系统的基本特点对嵌入式软件系统的开发具有重要影响,这些影响主 要包括:1) 实时性的影响实时性是嵌入式系统的重要特性之一,影响着嵌入式软件设计的多个方面,如 构件模型、应用设计、系统设计等方面。在设计构件模型时,必须有效地表示实时 属性,即构件的实现模型应该提供机制保证对构件接口的调用能够满足实时性要求; 在设计软件体系结构时要特别重视解决并行、异步、中断等问题,以满足系统对实 时性的要求;而在系统设计时,对构件的选择、修改、组装、系统验证与评估时都 必须将实时性作为一个主要的设计要素。2) 资源有限性的影响 资源有限性是嵌入式系统的独

15、特点,其影响主要表现在构件模型和系统设计等 方面。在分析设计模型时,要求对有限的资源作出显式的描述,方便在系统设计阶 段对构件的选用和对系统的验证,节省嵌入式系统的硬件资源 (例如内存 );而整体 系统设计时,要充分考虑系统的有限资源,进行合理的系统设计。3) 应用专用性的影响专用性是嵌入式系统的三个基本要素之一,主要体现为嵌入式硬件体系的多样 性。为满足多样性的要求,在应用分析和设计时,要求识别出应用的共同点,确定 应用的变化点,预测应用可能的变化,以设计出灵活易变的体系结构以适应领域内 各种潜在的变化,使构件的重用性更高。4) 软件代码健壮性的要求 嵌入式系统往往工作环境恶劣、受电噪声干扰

16、较大,而且随着软件复杂度越来 越高,系统运行不稳定的可能性愈来愈高,因此,嵌入式系统应用对软件的健壮性 提出了更高的要求,追求更高的健壮性、可靠性是嵌入式软件的特点之一。5) 底层硬件驱动程序 (底层软件 )的特殊要求 嵌入式系统与普通的软件系统不同,它不仅包括高端的应用软件,还有底层的 硬件体系及其底层软件。底层软件完全针对硬件体系,专用性强;嵌入式软件是应 用在嵌入式设备上的应用软件,这就决定了它比传统 PC 机上的软件更多地暴露给 用户对硬件的操作接口。4.2 结构化的嵌入式软件开发方法结构化的嵌入式软件设计流程是:按照系统总体规划和总体设计,由设计人员 分别编程设计各功能模块;接着依据

17、软件结构和程序流程,将功能模块组成结构化 程序,实现系统整体功能,满足系统要求,解决实际问题。具有如下特点:(1) 执行效率:结构化方 法比面向对象、构 件化方法的执 行效率要高,因为它 可以产生更直接、效率更高的代码,所以对于一些嵌入式的系统,结构化方法产生 的系统更小、运行效率更高。(2) 可重用性:结构化设 计方法中各功能通 过接口与外界 交互,当接口发生变 化时往往造成系统结构较大变动,难以扩充新的功能接口,因此结构化的设计方法 复用性差;面向对象和构件化设计方法分别通过调用对象和构件来设计系统,遇到 类似的问题时,只需要根据要求修改对象或构件即可,因此这两种方法具有很好的 可重用性。

18、(3) 应用的范围:结构化 方法适用于数据少 而操作多的问 题,实践证明对于以 功能为主的系统,结构化方法比较适用。5 嵌入式底层构件开发技术现有的嵌入式开发方法多集中在嵌入式软件开发方面,尤其是基于嵌入式操作 系统的嵌入式应用软件开发。而嵌入式系统开发区别与普通软件开发的最大之处就 是:嵌入式系统是软硬件紧密结合的系统,所有的嵌入式软件(嵌入式应用程序和嵌 入式操作系统)都必须运行在特定的硬件体系上。鉴于嵌入式系统需要硬件体系支持的特殊性,嵌入式底层软件 (即硬件驱动程序 ) 的开发便成为嵌入式软件开发的重要组成环节。在硬件构件基础的上,本节给出应 用于嵌入式底层软件上的底层构件 (Embe

19、ddedU nderl ying Comp on e nt EUC)的定义。5.1 基于硬件构件的嵌入式底层构件嵌入式底层构件(EUC)是在硬件构件的基础上,根据硬件构件的实际功能和接 口,实现与之相对应的硬件驱动模块的分解,并将硬件驱动底层程序的实现、头文 件定义及其文件描述封装成一个可重用的构件实体,并提供一系列规范的输入/输出 接口,供其他嵌入式应用程序调用。一个底层构件对应一个硬件构件,但并不是所有的硬件构件都需要底层构件驱 动,如只需要硬件接线的电源硬件构件。底层构件同硬件构件一样,也具有被独立 部署和被第三方组装的特性。实现内部硬件构件功能称之为内部底层构件,同样实 现外部硬件构件

20、功能称之为外部底层构件。5.2 底层构件的实现1. 底层构件的实现过程底层构件的实现为嵌入式系统底层软件开发提供具有重用性的功能构件,是开 发嵌入式底层软件的一种重要方法。与硬件构件的实现过程相似,底层构件也注重 构件的重用性与移植性,同样方便修改、发布和替换,得到了实验人员的认可。底层构件的概念模型参加图 4.1,从图中可以看出,底层构件可以分为底层软件、 头文件、接口描述和文件描述四个部分。其中,头文件用于实现底层构件的外部硬 件接线和内部寄存器的定义转换,即硬件构件的引脚定义和寄存器定义;接口是底 层构件与其他构件交互的唯一通道,是应用程序调用底层构件的通道;文件描述用 于描述整个底层构

21、件的相关信息;底层软件用于实现构件的具体逻辑功能,对外界 而言底层软件是一个不可见的黑盒,只是通过接口实现交互。EUC=底层软件,头文件,接口描述,文件描述底层软件=各种具体硬件构件的软件方法描述的实现过程头文件=实现底层构件与具体硬件接线及寄存器之间的对应接口描述=接口实体接口实体=硬件构件的方法描述方法描述=Direction Return_TypeFunctionName(Parameter_list)Directi on :接口方向In :输入;Out :输出Return_Type :返回值类型FunctionName:功能函数名称Parameter_list:参数列表模块描述=模块功

22、能描述,头文件信息描述,对外接口描述,注意事项等图 5.1 底层构件的概念模型底层构件的主要设计思想是:在嵌入式底层软件开发过程中,根据硬件系统中 设计完成的硬件构件,分析硬件构件的功能和接口,设计实现与之对应的功能程序 (即底层软件 )、头文件以及相应的外部接口模块,并封装成底层构件,应用时供设 计者选择使用。底层构件的实现过程如图 4.3 所示,是为嵌入式底层软件提供具有 重用性和移植性的底层功能函数的过程。2. 底层构件的应用过程底层构件的应用过程就是在系统硬件体系设计实现后,根据硬件体系中选用的 硬件构件,调用相应的底层构件;并根据硬件构件的接口实现,修改底层构件头文 件中的引脚定义;

23、最后,将这些底层构件添加到工程文件中,通过接口即可实现应 用程序对底层构件的调用。主程序、中断子程序、功能程序接口底层程序底层程序硬件驱动程序构件模型 1构件模型 2可重用底层构件底层构件库头文件头文件头文件硬件构件图 5.2 底层构件实现过程5.3 基于底层构件 的嵌入式底层软 件编程思想1) 底层构件与硬 件构件相分离的命 名规则由于底层构件与硬件构件存在对应关系,底层软件中包含许多与硬件构件密切 相关的寄存器、标志位和变量等信息,因此,为了满足底层构件可重用与可移植的 思想,底层软件中与硬件构件密切相关的信息命名时要与硬件构件分离,只是在头 文件的引脚定义、寄存器定义(在头文件的封装原则中详细讲解)中实现二者的对应 关系即可。2) 底层构件中头 文件的封装原则头文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论