基于SDL语言的VxWorks嵌入式操作系统的具体实现

 基于SDL语言的VxWorks嵌入式操作系统的具体实现 作者: 杨凯,王群生 发布日期:2006-09-07 15:55 查看数:0 中文摘要:  随着嵌入式系统通信协议的复杂性急剧提高,迫使工程师们去寻找一种效率更高的设计工具来完成工作,而SDL作为 一种图形化的设计满足了这种需要,因此RTOS—SDL相结合的思路应运而生。主要说明了把SDL应用在VxWorks中的步骤和具 体实现中遇到的问题,以及编程中的一些技巧。而且经试验表明,采用这种方法不但可以完成原先的需求,而且还可以在有限的时 间内完成程序的编写,提高工作效率,对于SDL和嵌入式系统的结合具有很好的参考价值。 英文摘要: The rising complexity of communication protocols forces designers to work with efficient high level software design tools to increase the level of abstraction at which they work. And the SDL was followed for this purpose because it could finish the comp lex work by graphic flow. So a new advanced RTOS2SDL integration method was brought forward. This papermainly p resents how to use SDL tools in VxWorks and resolve some p roblemswhich ismet in p rocess of p rogramming. At last, by validated, the results of thismethod are quite p romising and the p roduced system met the initial specificationswithin the development time limits and it is beneficial to use SDL tools to design p rogram in the other Embedded System. 1 前 言 近年来,通信技术发展迅猛,通信系统越来越复杂,从事通 信软件开发与维护的人也越来越多,因此掌握一种有力的开发 软件是非常必要的。SDL ( Specification and Descrip tion Lan2 guage)是ITU—T( International TelecommunicationsUnion)推荐使 用的一种形式化描述语言,该语言基于扩展的有限状态机( EF2 SM)模型,特别适合于描述软件系统的离散过程。 SDL主要用于通信协议软件的设计,具有文本和图形两种 表述方式,并且两种方式之间可相互转换,而图形模式更有力于 协议过程的描述。采用SDL 的最大的特点是目前大多数的应 用SDL的工具软件都支持把图形流程式的系统描述直接转换 成可执行的程序代码,其中生成的C/C ++代码应用最为广泛。 而VxWorks操作系统是美国WindRiver公司推出的一种嵌 入式强实时操作系统(RTOS) 。VxWorks系统可支持多种CPU, 其中包括: PowerPc、68K、CPU32、SPARC等,同时还支持R ISC、 DSP技术。VxWorks的微内核Wind是一个具有较高性能的、标 准的嵌入式系统内核,其主要特点包括:快速多任务切换、抢占 式任务调度、任务间通信手段多样化等。该内核具有任务间切 换时间短、中断延迟小、网络流量大等特点,与其他嵌入式实时 操作系统相比具有一定的优势,因此在世界各地都受到了广泛 的应用[ 4 ]。 2 SDL SDL把整个系统看成两部分,即外部环境和SDL 内部系 统。SDL内部系统的结构是层次式结构,最外层是系统模块,系 统模块又是由多个块结构组成,块结构又可以包含子块和进程, 而进程中又可以包含多个程序,完成一定的功能[ 1 ]。SDL的分 层结构如图1所示。 SDL进程是SDL中的一个重要的概念, SDL在设计软件时 几乎都是围绕着进程来开展的。为了方便SDL 进程的设计和 管理, SDL采用了结构化设计;为了SDL进程间的信息传递, 各通信进程间有信道相连; SDL的行为定义了SDL进程所处理的 任务。由于SDL的进程概念具有这些特点,使之与VxWorks中 的多任务的描述有很多的相似之处,从而使SDL与VxWorks的 结合成为可能[ 1 ]。 412 与VxWorks集成的问题 SDL的进程任务在RTOS系统中的处理情况可以分成两 种:松集成和紧集成。 采用松集成的方式,就是将由SDL编程生成的整个应用程 序映射为VxWorks系统的一个进程或任务来进行处理。在系统 运行时,如果系统调用SDL应用程序,则每次都执行一次完整 的程序调用,进行消息的交互,因此松集成调度的最大延时是 SDL设计中状态之间传输的最长时间,所以此方式最大的缺点 就是延时。如果采用紧集成的话,则把程序中的每一个进程映 射为VxWorks系统的任务或进程,此时SDL程序中的进程的调 度是由VxWorks系统中的调度算法决定的,比如可以设置进程 的优先级,使用抢占式的任务调度等算法,因而在时间性能方面 要比松集成方式强。在实际应用中,一般使用松集成,这便于 SDL和RTOS的集成,只需要修改很少的SDL的源代码即可,因 此本文中采用的也是松集成方式。但是无论使用何种方法,在 硬件系统上运行时,都需要对环境文件进行修正,以满足不同的 硬件需要。 对采用松集成和紧集成的方式, SDL程序在VxWorks系统 中的映射方式如图5所示。 5 结束语 SDL作为一种新兴的高级编程语言,使人们脱离了传统的 编程模式,把原来采用文本模式的编程方法变为采用流程图的 编程模式,提高了编程效率。而实时操作系统VxWorks由于具 有稳定、多任务模式等特点,也得到了广泛的使用。本文对在两 者结合过程中所出现的一些基本问题和重要问题作出了解答, 这些方法或技巧可以在编程中起到重要的作用,也对SDL与其 它RTOS结合具有一般性的指导意义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值