嵌入式底层软件开发方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式底层软件开发方法

自从20世纪70年代单片机出现以来,嵌入式系统已获得了较为深入的研究,

提出了一些嵌入式软件的开发方法,但嵌入式系统仍处于发展阶段,嵌入式系统

已经显示出广阔的应用前景。

1.嵌入式系统的定义

嵌入式系统又称为嵌入式计算机系统,是指嵌入到对象体系中的专用计算机系统。对象系统则是指嵌入式系统所嵌入的宿主系统,嵌入性、专用性与计算机系统

是嵌入式系统的三个基本要素。嵌入式系统通常被描述为:以应用为中心,以计

算机技术为基础,软硬件可剪裁,适应于应用系统对功能、可靠性、成本、体积和

功耗有严格要求的专业计算机系统。

2.嵌入式系统的发展历程

嵌入式系统是在硬件和软件交替发展的支撑下逐渐趋于稳定和成熟的,它有着

悠久的历史。从20世纪70年代单片机的出现到现在各种嵌入式微处理器、微控制

器的大规模应用,嵌入式系统己经有了30多年的发展历史。纵观嵌入式技术的发展,大致经历了以下几个发展阶段。

(1)无操作系统阶段:主要是以功能简单的专用计算机或单片机为核心的可编

程控制器形式存在的系统,具有监测、伺服、设备指示等功能,一般没有操作系统

的支持,通过汇编语言编程对系统进行直接控制。主要特点是:系统结构和功能都

相对单一,处理效率较低,存储容量较小,几乎没有用户接口,比较适合于各类专

用领域。

(2)以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统:主要特点是出现

了高可靠、低功耗的嵌入式处理器,嵌入式操作系统能运行于各种不同类型的微处

理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;片上系统(System On Chip,SOC)使得嵌入系统越来越小,具有大量的应用程序接口,开发应用程序简单,应用软件丰富。

3.嵌入式系统的构成及其特点

1)嵌入式系统的组成

嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件

系统等组成,具有专用性、可嵌入性、实时性、可移植性和分布式等特点。其中,

嵌入式微处理器是嵌入式硬件系统的核心部分,它担负着控制、协调系统工作的重

要任务,通常具有实时多任务处理能力、中断处理能力、存储器保护能力和低功耗

能力;支撑硬件主要包括存储介质、通信部件和显示部件等;支撑硬件的驱动程

序、操作系统、应用软件等一起构成嵌入式软件。

2)嵌入式系统的特点

嵌入式系统是一个软件和硬件的集合体,它将先进的计算机技术、半导体技术、电子技术与应用软件开发技术相结合,是一个技术密集、资金密集、不断创新的知识集成系统。与通用计算机系统相比,嵌入式系统在很多方面独具特色,下面介绍了嵌入式系统的几大特点。

(1)软硬件紧密结合:嵌入式系统的主要特征之一是软件与硬件的紧密结合,

其底层的组织结构常常因为所选用硬件体系的不同而发生变化。平台差异性是不存在通用解决方案的主要原因之一,也使得嵌入式系统具有多种专用工具和特殊方法。

(2)多样性(专用性、定制性):每个嵌入式计算机系统总是跟具体的应用联系在一起,以应用为中心,为具体的应用服务。因此嵌入式系统是多样化的,需要为满足不同的应用需求而专门定制,其中既包括硬件系统的多样性,也包括软件系统的多样性。

(3)资源有限性:受制造工艺和应用环境的限制,嵌入式系统拥有的资源十分

有限。主要表现在对整个计算机系统的体积、功耗、CPU(Central Processing Unit,

中央处理器)的处理能力、存储器的容量和性能等方面都有较多的限制。

(4)高实时性:嵌入式系统的计算处理过程往往需要在规定时限内完成,这就

要求系统对外部事件的反应要及时准确。

(5)低功耗:功耗问题是嵌入式系统设计中普遍关注的热点和难点,特别是对

于电池供电的系统。降低功耗不仅可以延长用电池供电的设备的工作时间,同时也可以更容易解决系统的散热问题。

(6)高可靠性:嵌入式系统对可靠性的要求与系统的规模、应用环境和目的有

密切关系。一些实时系统对可靠性的要求极高,如航空航天技术。嵌入式系统的可靠性涉及到很多方面,如机械设计的可靠性、嵌入式硬件与软件的可靠性等。

4嵌入式系统开发的难点

随着电子技术的发展及制造工艺的提高,嵌入式系统的片内ROM(Read Only Memory,只读存储器)容量不断增大,CPU执行速率不断提高,尤其是嵌入式操作系统的出现,这使得嵌入式系统在代码实现上发展迅速,现已出现了多种嵌入式编程语言及其编译环境,如嵌入式C、C++、Java、Linux等等。尽管近几年嵌入式系统发展迅速,但嵌入式系统的特性及其开发方法的不完善,使得嵌入式系统的开发非常复杂和昂贵,嵌入式开发仍面临着以下重要的问题:

(1)嵌入式系统分析和设计方面没有统一的标准:分析设计方法不统一、从分

析设计到制作和编程没有一个始终一贯的工程化方法,使得产品形成的每一个过程受人为因素影响十分严重、分析设计的成果不能被开发类似项目或产品重用。

(2)嵌入式系统的专用性很强,嵌入式系统的一个最大特点就是软硬件紧密结

合,为此,嵌入式软件(尤其是嵌入式底层软件)的设计和验证要充分考虑硬件

因素。软件需要根据系统硬件的变化和增减不断进行修改。而且嵌入式系统

中微处理器(Micro-ControllerUnit,MCU)的系列十分丰富,使得MCU的编译

环境无法做到完全的通用。

(3)在实际产品应用中,嵌入式系统大多数是事件驱动的系统,而且外部事件

是多发的和并发的随机事件,即异步事件。嵌入式应用软件系统需要有效地处理

并发事件,所以往往采用多线程(任务)运行机制,以适应这种复杂的并发环境,这

就增加了软件设计的复杂度。

(4)嵌入式软件运行在特定的硬件体系和环境中,在进行设计时,不但需要考

虑各个节点间的通信和同步问题,还需要考虑整个系统的时序问题。

(5)由于嵌入式系统多工作于工业企业现场或军用装备,不允许死机和系统重

启发生,一旦出现故障,有可能造成整个生产的混乱,甚至产生严重后果,因此对可靠性和安全性要求很高。这使得嵌入式系统对可靠性、防危性、和容错性等功能有更苛刻的要求。

以上几个方面的问题成为近几年来制约嵌入式系统发展的主要瓶颈,使得大部分从事嵌入式系统应用开发的组织和团体,基本上是采用小组甚至是作坊式的运作模式。这使得开发较复杂或大型系统的工作变得十分困难甚至无法进行,或因为系统需求的不断变化、小组成员的流动导致项目失败。

1978年L.L.Constantine和E.Y ourdon提出了结构化的软件设计方法,经过30

多年的研究及应用,已成为技术最成熟、应用最广泛的软件开发方法之一。

结构化方法强调过程抽象化和功能模块化。其中,结构是指系统内各个组成

要素之间的相互联系、相互作用的框架。结构化方法的基本思想可以概括为:用系统工程的思想和工程化的方法,按用户至上的原则,自顶向下、逐步求精地对信息系统进行分析与设计。采用模块化技术、分而治之的方法,将系统按功能分解为若干模块,模块内部由顺序、分支、循环基本控制结构组成,应用子程序实现模块化结构化方法是用基于功能分解的观点来分析和解决问题的,即把一个复杂的系统分解成若干个尽可能独立的子系统、子模块,采用“自顶向下”逐层分析,整个过程从一个阶段到另一个阶段,其间有明显的间隔。任何软件系统都可以用数据流图表示,理论上,结构化方法可以用于任意一种软件系统的开发。使用结构化方法开发的软件运行效率高,且能够增加软件规格说明的可读性及系统的可靠性,因为数据流图容易理解,有利于开发人员与客户的交流。

相关文档
最新文档