面向对象的嵌入式软件IDE的架构与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国自动化学会第二十五届青年学术年会论文集
面向对象的嵌入式软件IDE的架构与设计1
张小琪 王培进
1
(烟台大学 计算机科学与技术学院,山东,烟台 264005)
(E-mail: wpj@ , zxq@ )
摘 要:嵌入式硬件发展日新月异,使得软件的比重逐渐加大,针对目前嵌入式软件开发工具的不足,本文提出利用面向对象的技术来设计一种嵌入式软件IDE,使设计人员利用可重用的组件模块,搭建符合硬件要求的软件系统,大大提高开发效率和软件质量。 关键词:面向对象,嵌入式软件IDE, 交叉编译, 内核移植
Object-Oriented Design and Implementation of
Embedded System IDE Software
ZHANG Xiao-Qi WANG Pei-Jin
(School of Computer Science and Technology,Yantai University, Yantai 264005, China)
(E-mail: wpj@ , zxq@ )
Abstract The rapid development of embedded hardware makes the proportion of software design increase gradually. This paper proposed one method of designing embedded software IDE based on object oriented technology because of the shortcomings of current IDE .Software designers can use these reusable components modules to infrastructure software system which meets the hardware system. This greatly improves the efficiency and quality of the development of software. Key words Object-Oriented ; Embedded software IDE; Cross Compile; Kernel Porting
1
烟台市科技攻关资助项目(2007148)
Supported by Yantai science and technology Department (2007148) 收稿日期 2010-05-12 收修改稿日期2010-07-01
Received Date 2010-05-12; in revised form Date 2010-07-01
1 引言
随着芯片、软件、网络等技术的发展,嵌入式已经被广泛应用于科学研究、工程设计、军事技术以及文艺商业等领域,人们已经进入了后PC 时代,嵌入式系统正在以各种不同的形式改变着人们的生产,生活方式。它是以应用为中心,以计算机技术为基础,软硬件可剪裁,符合应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统[ 1 ]。
微处理器的高度集成化,操作系统的引进以及人们对嵌入式系统应用要求的提高,导致嵌入式系统开发中软件设计的难度空前复杂,集成开发环境(IDE)也就随之出现。但目前,大多数嵌入式开发商仍然在沿用低效率的工具和方法。设备软件开发人员必须面对诸多方面的困难,来自软件架构、操作系统和中间件等多个层次的复杂性困扰着他们。同时,由于缺乏集成化的开发环境,开发人员常常必须混合使用来自不同提供
中国自动化学会第二十五届青年学术年会论文集
商的开发工具,由此带来的复杂性也不可忽视。可见,在设备软件开发领域,仅仅由于开发工具和开发方法的一致性和整合性的问题,就给整个产业的发展造成了非常大的障碍。理想的状态是,设备软件开发人员不应该再去担心操作系统、功能集成和软件平台问题,而是将主要精力放在产品的差别化和竞争优势方面。但实际情况是,设备软件开发人大部分精力花在了工具、方法和集成性方面。
嵌入式软件采用的各种开发工具很多都来自不同的提供商,也很少考虑相互之间的兼容性,效率自然不是很高。开发人员发现,他们的工作就像是每设计一部车的时候都要从重新设计轮胎开始,基本上没有办法从已有的设计方案中重复利用原有的设计成果和知识产权。嵌入式软件在概念上主要局限于操作系统和开发工具。而且,许多制造商都采用自己开发的专有操作系统和开发平台,通用性就更差。
面向对象技术是当前实现软件模块化,提高软件复用性最优的方法,现在成为计算机领域中的一种主流技术,本文提出利用面向对象的技术来设计一种嵌入式软件IDE,对嵌入式软件开发中的各个对象的类进行分析与设计,架构一个通用的开发模型,根据硬件配置自动产生基本的系统软件方案。只需要系统中的每个对象类的属性及其操作设置,自动搭建交叉编译环境,降低操作系统裁减和移植的难度,产生驱动程序的基本框架。开发人员只需要配置好各个模块的基本信息,将更多精力集中在系统的应用上。
2嵌入式软件的开发流程
与常见的PC和服务器软件不同,嵌入式软件主要是对设备内部各部分的运行进行协调,并不与设备使用者发生直接接触。PC和服务器软件的运行环境是标准化的,而嵌入式软件的运行环境随电子设备的不同而改变,必须针对不同的电子产品进行专门的设计、开发和优化。由于嵌入式Linux 操作系统在嵌入式开发中占据了主流,因此本文围绕针对移植有Linux操作系统的嵌入式开发流程进行讨论。
典型的基于嵌入式Linux操作系统的嵌入式软件开发流程如下[ 1 ]:
(1)获取硬件系统的信息:如选取的微处理器体系,Flash型号、网卡型号及其他外设的信息等;
(2)建立交叉编译工具:一般的GCC 工具都是针对X86体系的,为了能够生产目标板执行的代码必须建立交叉编译工具;
(3)开发Bootloader:建立启动系统的主引导程序;
(4)移植Linux内核:如基于Linux2.6内核移植;
(5)开发一个根文件系统:如rootfs的制作;
(6)开发特定硬件的驱动程序:如LCD,Keypad等;
(7)开发上层的应用程序:如QT GUI 开发。
对于开发过程的各个环节,有的提供了辅助的开发工具,有的需要完全依赖经验手工从底层开发,嵌入式软件开发依然停留在手工作坊式的方式,很难做到工程化管理。本文所设计的IDE将涵盖整个开发的各个重要环节,力求最大程度上降低开发难度,在集成化开发环境里完成主要工作。
3 IDE面向对象的分析与设计
对于运行嵌入式Linux操作系统的系统,根据其开发流程,利用面向对象技术分析设计出6个基本的大类,如图1、2、3所示,并给出对象之间的协作关系图。这几个大类贯穿了嵌入式软件开发的重要环节。
图1 嵌入式软件IDE基本类
Fig.1 Basic classes of embedded software IDE