论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
引言
在过去的10多年里,嵌入式技术得到飞速发展。随着嵌入式应用的不断深入,嵌入式系统的复杂性、不确定性在不断提高,系统规模也在逐步增大;而产品的研发周期又在不断地缩短,这给嵌入式应用软件的开发带来了新的挑战。因此,最近几年,对占先式实时内核的研究、开发与应用逐渐成为嵌入式系统的重点研究方向。
面向对象技术由于内在地支持了对系统的抽象、分层和复用技术,能够很好地控制系统的复杂性,可很好地减轻嵌入式软件的开发者必然面临 的由于芯片性能的提高、嵌入式操作系统平台等技术方面不断变化所带来的各种压力,因此在嵌入式领域得到越来越广泛的应用。其中,统一建模语言是当今世界上面向对象系统开发领域中应用最为广泛的工具之一。
1 统一建模语言UML
1.1 UML简介
UML(Unified Modeling Language)是一种标准的、用于面向对象和基于构件的软件系统建模工具,是一种用于对软件系统模型绘制可视化描述的工具。UML以标准的、易于理解的方式建立能够描述复杂系统结构和过程的可视化模型,广泛用于描述信息管理系统、具有实时要求的工业系统过程、嵌入式系统、分布式系统、系统软件等。
UML由图、视图、模型元素、通用机制和扩展机制等几个部分组成。其中图是UML建模的关键,视图由图来描述;而图由模型元素结合通用机制、扩展机制等表示和语义组成。
根据图在系统开发过程中不同阶段的应用,可以分为五类:用例图、静态图、行为图、交互图与实现图。
这些图为系统的分析、设计提供了多种图形表达形式,应用于建模的不同阶段。运用UML。我们可以分析、设计几乎所有的软件和非软件系统。当然,对于具体的系统应该根据系统的类型、系统的规模和开发需要绘制相应的图,不一定在一个系统中画出所有种类的图。
1.2 UML与占先式实时内核
开发一个占先式实时内核与一般软件的开发一样,必然要经过开发的分析、设计、编码、测试四个阶段。在嵌入式软件开发过程中,一般采用的是一种顺序开发方法。然而,由于嵌入式产品更新很快,研发周期要求尽可能的短,同时在开发过程中应能动态地调整,所以,开发初斯所做的需求分析和设计,在后期的实现和测试中往往要做变动。这反映了在软件开发过程中的需求分析、设计与具体实现之间有某种程度上的脱节,对软件实现后面的验证往往会带来很大风险。另外,传统的嵌入式系统软件开发环境主要是对开发过程中软件实现和测试阶段的支持,是以源程序的开发和测试为核心的,缺少必要的需求分析和设计工具。
UML为占先式实时内核的设计和实现提供了一套功能强大的建模工具。由于UML融合了面向对象方法中的数据驱动和行为驱动两种方式,可以从各个方面描述实时系统的功能及反映实时系统的结束条件,可以为具有静态结构和动态结构的系统以面向对象图形的方式建模。因此,使用面向对象的UML可以很好地完成占先式实时内核的建模。 (转载自中国科教评价网www.nseac.com )
图2 占先式实时内核的类图
2 UML建模的具体应用
2.1 占先式实时内核概述
占先式实时内核具有多任务机制。多任务机制是基于面向任务对象的,以任务为对象,以事件和时间为驱动,通过实时内核管理时间关键任务和任务的优先级,实现任务之间的调度、协同和仲裁。
多任务机制的具体实现由调度程度来完成。在系统程序运行过程中,当前任务完成之后,调度程序调出任务就绪表中优先级最高任务的入口地址,把CPU资源分析给该任务,使之执行。如果该任务在执行过程中引起比它优先级高的任务进入就绪态,或者是中断服务程序使一个更高优先级任务进入就绪态,调度程序会把任务的当前程序指针、寄存器压入到该任务的任务堆栈指针指向的栈空间,保证现场,再把CPU资源分配给更高优先级任务,使高优先级任务开始执行。高优先级任务执行完毕后,下一个在任务就绪表中的最高级任务先从该任务的堆栈数据区恢复寄存器、程序指针、程序状态,然后切换并执行该任务。