IOT-控制工程在线
国际领先的权威的工业自动化专业媒体

Hot Tag:

当前位置: 物联网在线 > 工业控制 > 技术 > 面向对象的技术来设计一种嵌入式软件IDE

面向对象的技术来设计一种嵌入式软件IDE

本文提出利用面向对象的技术来设计一种嵌入式软件IDE,对嵌入式软件开发中的各个对象的类进行分析与设计,架构一个通用的开发模型,根据硬件配置自动产生基本的系统软件方案。
关键词: 嵌入式 ESGIDE
时间:2013-01-20 20:33 来源:物联网在线 作者:IOTer 点击:

分享到:
我要发布文章 收藏 推荐 打印

嵌入系统开发已经趋于规范化,但是嵌入式系统的开发并不像在普通PC机上进行软件开发那样容易,它同样需要一个高度集成的开发平台,来降低开发的难度。

目前市场上的嵌入式系统集成开发平台特点是:(1)多数嵌入式系统集成开发平台都是以Windows为系统环境,很少有以Linux为系统环境的;(2)部分集成开发平台具有一定的开放性,许多功能作为插件供用户选择;(3)多数集成开发平台通用性较差,仅支持一个或者几个系列的微处理器;(4)目前嵌入式系统集成开发平台产品大都价格昂贵;(5)很少有集成开发平台集成有图形模块支持的功能。

为了解决其它嵌入式集成开发平台的缺点,本文研究了嵌入式系统可视化集成开发平台,ESGIDE ( Embedded system graphical integrated development environment),其最大特点是具有图形化人机交互功能和ARM CPU工作方式自动初始化。

所谓图形化人机交互,是指把将要裁剪和配置的系统级软件(比如bootloader、kernel、通用I /O输入、输出等)化整为零,封装成不同功能的形象化图形模块,开发者根据自己开发的系统需要,选择不同图形模块,动态生成bootloader、kernel、I /O等系统级的源代码,不需要开发者自己输入,这大大简化了开发步骤,减轻了程序员的负担,减少了操作的复杂度,提高了开发效率。

另一方面,ARM系列CPU应用比较广泛,不同型号的CPU在开发时需要对使用的内部资源进行初始化。传统的做法是开发者确定工作方式,确定工作方式字,然后手动编程。我们采用开发模式是:以定时器应用为例,将定时器的个数,工作方式确定,时钟频率的确定,是否允许中断等编写成对话框模式,开发者只要选中其中的方式,初始化控制字自动生成,编写代码自动生成,同样大大简化了开发步骤,减轻了程序员的负担。

面向对象技术是当前实现软件模块化、提高软件复用性最优的方法,现在成为计算机领域中的一种主流技术,本文提出利用面向对象的技术来设计一种嵌入式软件IDE,对嵌入式软件开发中的各个对象的类进行分析与设计,架构一个通用的开发模型,根据硬件配置自动产生基本的系统软件方案。

只需要系统中的每个对象类的属性及其操作设置,自动搭建交叉编译环境,降低操作系统裁减和移植的难度,产生驱动程序的基本框架。开发人员只需要配置好各个模块的基本信息,将更多精力集中在系统的应用上。

1嵌入式软件的开发流程

与常见的PC和服务器软件不同,嵌入式软件主要是对设备内部各部分的运行进行协调,并不与设备使用者发生直接接触。PC和服务器软件的运行环境是标准化的,而嵌入式软件的运行环境随电子设备的不同而改变,必须针对不同的电子产品进行专门的设计、开发和优化。由于嵌入式Linux操作系统在嵌入式开发中占据了主流,因此本文围绕针对移植有Linux操作系统的嵌入式开发流程进行讨论。

典型的基于嵌入式Linux操作系统的嵌入式软件开发流程如下:(1)获取硬件系统的信息:如选取的微处理器体系,Flash型号、网卡型号及其他外设的信息等;(2)建立交叉编译工具:一般的GCC工具都是针对X86体系的,为了能够生产目标板执行的代码必须建立交叉编译工具;(3)开发Bootloader:建立启动系统的主引导程序;(4)移植Linux内核:如基于Linux2.6内核移植;(5)开发一个根文件系统:如rootfs的制作;(6)开发特定硬件的驱动程序:如LCD,Keypad等;(7)开发上层的应用程序:如QT GUI开发。

对于开发过程的各个环节,有的提供了辅助的开发工具,有的需要完全依赖经验手工从底层开发,嵌入式软件开发依然停留在手工作坊式的方式,很难做到工程化管理。本文所设计的IDE将涵盖整个开发的各个重要环节,力求最大程度上降低开发难度,在集成化开发环境里完成主要工作。

2 IDE面向对象的分析与设计

对于运行嵌入式Linux操作系统的系统,根据其开发流程,利用面向对象技术分析设计出6个基本的大类,并给出对象之间的协作关系图,如图1、图2所示。这几个大类贯穿了嵌入式软件开发的重要环节。


图1嵌入式软件IDE基本类


图2基本对象类的协作图

硬件系统信息类,承载了硬件系统的描述信息,比如选取何种体系的微处理器,处理器的工作频率设置,采用何种启动方式,是NandFlash,还是NorFlash或者EPROM等,用户通过设定这些参数,其他对象将获取其中的信息进行配置。

嵌入式开发需要交叉编译,Linux环境下一般就是采用开源Gcc系列进行配置,环境搭建类管理交叉编译链的源代码,根据体系架构的信息自动生成运行脚本,在制定目录下生成完整的交叉编译链,这是嵌入式开发的基础。

工程管理类,集成开发环境的主要目的就是同一组织文档,省却人工管理,自动编译运行源码,其中包含了文件操作,组织好源代码之间的关系,利用make技术进行编译,牵扯到大量全局环境参数的设定。

引入控制字库类是方便部分程序的编写,比如Bootloader类需要对处理器初始化,基本的驱动控制器进行操作,其中包含了汇编指令级别和C语言的操作,开发人员往往需要对参考手册熟练掌握,大大降低了开发效率。控制字库尽量包含了常见的处理器系列的寄存器控制字库,只需选择某个具体功能,便可产生需要的指令源码。同样驱动程序开发中,也是频繁利用了C语言对寄存器进行操作。

系统移植类涵盖了整个系统需要移植的模块,引导程序,操作系统内核和文件系统,各类封装了大量繁杂的细节内容,尽量以最简化形式帮助开发人员完成操作,重要的环节只需设定参数,其他交由对象自动执行。

面向对象最重要的特征就是“高内聚度和低耦合性”,各个对象封装了细节操作,只需要有限的外部接口交换信息,这种柔性思想最大程度上提高了软件的复用性。本文所设计的IDE,根据体系结构的不同,所需修改的只是个别对象的内部数据和操作,整体架构不受任何影响。

图3给出了面向对象嵌入式集成开发平台的结构。


图3面向对象的嵌入式集成开发平台结构框图

3系统的具体实现

目前可视化的面向编程语言种类比较多,从对面向对象技术的支持程度上来说,微软最新的VC#从封装性、类型安全性方面相当强大。重要的是,类层次清晰,编码容易,可以根据面向对象设计的框架轻松的进行转换,却和C++一样强大。所以本文利用VC#设计了嵌入式软件IDE,对各个类编写详细代码。

整个系统基本架构如图4所示。


图4 IDE的系统架构图

集成开发环境运行于Windows平台下,但需要Linux的强大命令集,在此,本文提出了Cygwin技术来模拟Linux运行环境,从而使得IDE的底层得到强大的各种命令支持,可以运行各种脚本文件。此技术属于开源项目,安装后需个别地方的细节修改。

交叉编译工具链模块是IDE设计的核心,开发一个实用的编译器,需要花费大量的人力物力和财力,其可靠性也要经受时间的考验。幸运的是,GNU提供了免费的、功能强大的GCC工具链,它不仅可以编译Linux操作系统下的应用程序以及Linux内核,而且还是一款交叉编译器,支持ARM、PowerPC、x86、Intel960、M68等几乎所有知名的CPU厂家,而且国外大多数集成开发工具都从GCC移植而来。

本文的交叉编译工具链模块并不是单独的针对某个体系结构,可以重定向,根据参数配置,生成某个系列的编译工具,如图5所示。


图5交叉工具链模块

软件设计的一个重要环节就是,要组织好源代码之间的关系,编译连接,这就要用到工程化的手段去管理源码。这是IDE设计中的桥梁。

本文利用的Makefile技术对整个工程进行管理,主要就是针对驱动程序和应用程序的组织和编译。Makefile是Linux工程管理的一项成熟的技术,有一套完整的规则,只需要按照规则去编写Makefile文件,然后由make命令去解释执行。Cygwin中集成了Gnumake,因此只要编写好Makefile文件,只需一个make命令,就可以完成所有的编译连接工作,如图6所示。


图6工程管理模块

大多数的IDE都有这个命令,比如: Delphi的make,Visual C + +的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法。

(责任编辑:zxh007)



本文链接面向对象的技术来设计一种嵌入式软件IDE
http://c.iot-online.com/tech/2013/012023511.html
 
 
声明:物联网在线转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站转载而转移。作者如不同意转载,即请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。



电子刊物.技术特刊

立即下载

《 物联网在线》推出的免费电子刊物《无线通讯术特刊》收集了当今最新MEMS技术,产品资讯,它们可使你能在更短的时间内了解业内最先进的无线通讯技术信息。

今天就让您的系统设计更上层楼!敬请马上立即下载该免费的《无线通讯特刊》。
   
无线通讯特刊     M2M技术特刊 下载  

MEMS技术特刊 下载



Sierra Wireless白皮书

LTE和M2M 融合之路  
促使 LTE 应用在 M2M 设备上的市场推动力 ; 打破阻碍 LTE 进入 M2M 市场的技术壁垒

立即下载.






 现在播报
基于LONWORKS现场总线水轮机组状态监测系统
图解实战两线制、三线制、四线制
罗克韦尔集成架构系统十大创新
模块化/KSK 线束自动化设计
如何提高RF测量技巧并完整发挥RF设备的效能
基于化学处理法工艺的水处理过程智能控制系统
基于B/S 架构的嵌入式机房远程监测系统
电梯PLC控制系统的组态模拟设计
基于传感网的嵌入式远程测控平台设计
面向对象的技术来设计一种嵌入式软件IDE
基于嵌入式Internet技术的通用型RTU-Webit-GRTU
全球暖化的趋势日益明显 高效能源管理呼之欲出
实时数据库和关系数据库的设计特点
基于CAN总线的DNC集成制造系统设计
工业以太网EtherNet/IP性能分析

 最新Tag
周鸿祎 数据采集 LinkIt One 压力传感器 mate8 BCM20737S 红外线传感器 SM351LT 小米5 VR LiteOS TinyOS MSP430 DA14580 CC2650 STM32 CC2564 MSP432 PLC STM32L0538 STM32F103 智能家居 人工智能 机器人 iphone7 能量采集 MCU 能源计量 ZIGBEE 传感器 工业物联网 智能手表 TZ1000 无人机 ATmega2560 无线传感器 Android 智能电视 i.MX NFC 信号采集 MEMS WIFI IOT LTE 伺服电机 无刷直流电机 智能照明 智能插座 无线充电 CC430 智能电网 Nest Edison ADT7320 ADIS16229 英特尔 家庭医疗 数字隔离器 智能集成 工业4.0 iPhone 7 虚拟现实 可穿戴设备 CC2538 CC2540 CC2541 CC3000 杨旭 麒麟950 华为mate8 阅读器 蓝牙 Linux AllJoyn 树莓派 Windows10 Windows 10 Zephyr RTOS 智能硬件 Qualcomm CC3200 温湿度传感器 5G 可穿戴技术 工业以太网 Arduino CSR8670 VMware 大数据 ITS 蓝牙智能 PIC32MZ 运动传感器 SmartBond 车联网 ADAS V2X 语音控制

返回页首


TopeWay Business Media


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

网站导航|帮助| 关于我们|隐私政策|联系我们|安全承诺

Copyright © 2011 Iot-online.com. 本网站所有内容均受版权保护。
未经版权所有人明确的书面许可,不得以任何方式或媒体翻印或转载本网站的部分或全部内容。


粤ICP备10057207号