面向对象的嵌入式系统开发技术
作者:厦门大学 陈飞 陈启安
摘要 为了改善目前嵌入式系统中的代码数量厦复杂度越来越高,维护效率低下,不能满足某些高级应用的要求等现状,提出一套新的基于面向对象的嵌入式系统开发技术。介绍面向对象嵌入式开发的应用现状和模块体系结构;针对面向对象编程所带来的更多的运行时间和资源需求进行性能分析。结合面向对象和底层语言应用,可以取得性能和可行性的平衡优势。
关键词 嵌入式系统 面向对象软件复用 设计模式
引 言
嵌入式系统不以独立设备的物理形态出现,嵌入式系统的部件根据主体设备以及应用的需要.嵌入在主体设备内部,发挥着运算、处理、存储以及控制等作用。从体系结构看,嵌入式系统主要以嵌人式处理器、支撑硬件和嵌入式软件组成。嵌入式系统的发展已有30多年的历史,早期的嵌入式系统以单个芯片为核心,大部分应用于工业控制系统中;后来发展为以嵌入式CPU为基础、以嵌入式操作系统为核心的嵌入式系统;进入20世纪90年代以后,Internet的应用迅速普及,广泛渗透到社会、经济、交通、通信等相关行业,计算机与通信一体化的趋势日趋明显。基于Internet的嵌入式系统再度成为一个研究热点。在人们的日常生活中,已经普遍使用的手机、PDA、手持设备和掌上电脑等信息电器就是嵌入式系统应用正在迅速发展的一个证明。
面向对象的基本思想就是程序被看作是相互协作的对象集合,每个对象都是某个类的实例,所有的类构成一个通过继承关系相联系的层次结构。程序设计是以对象为中心,以消息为驱动。程序一般由类的定义和类的使用组成。面向对象的建模,就是把系统看作是相互协作的对象。这些对象是结构和行为的封装,都属于某个类。那些类具有某种层次化的结构。系统的所有功能通过对象之间相互发送消息来获得。
面向对象技术有以下优点:
①维护简单。模块化是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,可以在名字空间中添加一个类而不会影响该名字空间的其他成员。
②可扩充。面向对象编程从本质上支持扩充性。如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充功能的类。
③代码重用。由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个标准类库就非常简单。
面向对象的方法克服了原有软件系统规模庞大、研制周期长、维护费用高、软件系统过于复杂、应用软件不易集成等困难。面向对象技术在软件设计当中占有非常重要的地位,但面向对象并不是C++等语言的专利。实际上,在诸如操作系统等系统软件当中,面向对象技术的使用是非常广泛的。利用C等高级语言实现面向对象技术,不仅结构清晰,而且在执行效率等方面也有C++等语言无法比拟的优势。
1 面向对象嵌入式技术分析
1.1 面向对象嵌入式技术现状
目前,面向对象技术在嵌入式系统中的应用虽然有限,但是已经得到了充分的发展。EC++是1996年在日本成立的Embedded C技术委员会针对嵌入式应用制定的减小代码尺寸的C++标准;EC++引人嵌入式系统,使得嵌入式开发和个人计算机、小型机等之间在开发上的差别逐渐消除。软件工程中的很多经验方法乃至库函数可以移植到嵌入式系统。EC++的使用使软硬件开发可以分工,从事嵌入式软件开发不再必须精通系统硬件和相应汇编指令集。相信使用C编程的开发者对这个优点都有感受,而EC++更为突出。
目前,在图形用户界面GUI、Web Server图像处理技术、数据采集等方面已经有着很成熟的面向对象开发模式;采用设备输入输出接口等抽象层,融合网络、驱动等底层操作,抽象成为上层开发的统一接口,提高可移植性和扩展性,方便后期维护和代码重用。
1.2面向对象嵌入式技术的总体设计思想
面向对象嵌入式技术的总体设计思想是所有操作由对象和消息驱动(或者事件驱动)。通过对现有面向对象技术的分析,对多种嵌入式应用系统的开发技术要求进行总结,抽象出各种接口和组件类。各个组件、接口、数据都被设计成为对象。对象之间通过消息通信形成整体,构成系统。在分析和设计的过程中,采用OOA/OOD进行分析设计,形成一个层次清楚、移植性好、易于扩展和重定义的系统结构。
从图1中可以看出,在整个模块与体系结构中面向对象技术的重要作用。
目前,嵌入式系统大都采取分层结构设计,并允许根据需要对不同的层次进行重写和替换。抽象接口是在抽象层定义的,不依赖于任何特殊硬件。
- 嵌入式系统与FPGA的最新动向(05-18)
- 有效利用巨量资料智慧型嵌入式系统备受瞩目(10-23)
- 意法半导体在ESC 2010上展示最新最强的嵌入式系统技术 (03-28)
- 也许单片机不再需要调试接口引脚(04-11)
- 交流、设计、实现,ADI在线设计峰会半程盘点(10-19)
- 嵌入式系统需求递增 ADI再遇市场良机(03-14)