嵌入式开发 - 龙人集团有限公司
反向技术
研究中心

当前位置:首页 > 技术支持与下载 > 嵌入式开发

嵌入式系统复用软件设计

更新时间:2015-12-22 16:42:16  点击次数:997次 打印
本文介绍了其中主要的系统级软件构件的开发方法,为系统集成各种应用级软件提供了总体框架,解决了控制系统应用软件难维护、难继承的问题,为控制类应用软件的开发提供了依据。

本文介绍了其中主要的系统级软件构件的开发方法,为系统集成各种应用级软件提供了总体框架,解决了控制系统应用软件难维护、难继承的问题,为控制类应用软件的开发提供了依据。嵌入式软件构件平台的体系结构包括系统层、连接层和应用层3个部分。系统层属于领域工程的范畴,连接层是一个嵌入式软件构件平台,应用层属于应用工程的范畴。

该软件构件平台是基于TMS320F2812 DSP芯片构建的一个构件化的嵌入式实时多任务操作系统。在设计时充分利用了平台体系结构所述的设计思想,程序的可读性和裁剪性非常好。由于本构件装配是采用语言组态的软件构件集成方式,因此接口的定义类似于组态入口参数序列。它主要包含软件构件标识信息、软件构件注册信息及软件构件的配置信息。接口类软件主要是完成应用程序与支撑平台的交互,起到一个系统接口界面的作用,方便了用户对支撑平台的访问。这类构件在系统软件集成时最多只能使用一次,主要完成系统资源的配置以及一些系统功能的启用,包括系统开始、系统结束、扩展、扩展内存等构件。

一、设计系统开始构件

一个嵌入式控制应用程序必须包括且仅包括一个系统开始构件,而且该构件位于软件构件组态集成序列的末端。系统循环扫描一开始时,首先进入的便是该构件。该构件的功能是根据系统所处的系统状态,对系统参数、程序空间进行配置。设计者可以根据系统设计需要,在构件组态集成时自由配置。

二、设计扩展构件

由于系统设计时,在系统总配置表单中规定了最大的原始构件数小于或等于511,因此当系统构件数目超过原始构件个数时,必须通过扩展构件来扩展系统构件。在支撑平台的设计中,根据嵌入式控制应用程序的需要,将系统的整个内存空间划分为4大块,每一块有固定的长度和使用域。当应用程序对内存的需求超出设计范围时,可以利用扩展内存构件对内存进行扩展。

三、设计系统结束构件

系统结束构件固定位于软件组态集成序列的前端,即组态集成号为0。它在系统软件构件组态集成完毕后、即将进入系统运行时启用该构件,即处于系统循环的最后。它在系统工作状态工作,执行返回软件组态集成序列起始地址的功能。在系统初始化状态时,完成标定数据和一般数据的获取和保存,并执行启动系统时钟和看门狗,以及返回组态序列起始地址等系统功能。接口参数仅有一个标识该构件的构件号0。

四、系统任务类软件构件的设计

任务创建构件Task:一般的多任务操作系统运行之前,系统必须至少建立一个任务,一般是一个空闲任务,其他任务可以在程序运行的过程中创建。但在本支撑平台的设计中,鉴于一个实际的嵌入式控制应用程序的任务数事先是可以确定的,因而设计了任务创建构件,可以利用该构件在应用程序的软件集成过程中创建所需的任务。

五、通信和同步管理类软件构件的设计

任务间的通信有2种途径:通过全程变量,或发消息给另一个任务。中断服务中保证独享的唯一办法是关中断。在支撑平台的设计中,采用了信号量方式进行系统的通信和同步管理,包括P操作PSema和V操作VSema两种软件构件。由于采用构件化的设计方式,系统通信和同步方式可以自由扩展。

六、集成开发环境

采用微型消息总线MMB嵌入式系统集成开发环境(MMBIDE)应用程序编程语言引入IEC611 31-3标准,将结构化语句描述程序设计语言作为自身嵌入式系统应用软件的编程语言。采用交叉开发方法,在Windows主机平台上开发与之连接的目标机。开发环境包括自己的可裁剪的微内核实时多任务操作系统,主机上的编译、调试、查看等工具,以及串口、网络与目标机的连接工具。

(编辑:admin)