基于UML的可视化图形程序的设计方法介绍.doc
《基于UML的可视化图形程序的设计方法介绍.doc》由会员分享,可在线阅读,更多相关《基于UML的可视化图形程序的设计方法介绍.doc(6页珍藏版)》请在三一文库上搜索。
1、基于UML的可视化图形程序的设计方法介绍引言随着高级编程语言和操作系统在越来越多种类的CPU构架上的应用,系统应用程序变得越来越大,越来越复杂。并且实际应用大多对于程序的设计周期、可靠性都具有很高的要求。基于传统的嵌入式实时操作系统的软件设计,虽然可使程序的实时性能得到提高,但是并行程序设计过程中存在着更多的竞争状态,而且这些竞争状态极难被发现。如何能够找到一种符合软件工程学的程序设计方法成为每个嵌入式软件工程师所面临的问题。传统的实时操作系统虽然可以完成任务管理,但是往往代码量较大,任务切换要求复杂,完全摒弃编译器提供的程序调用机制,采用任务堆栈机制,接口程序设计要求高,实现任务切换时占用资
2、源较大,不适合应用于8位和16位总线构架的CPU上。另一方面,基于UML 的实时框架程序设计方法对于当今的高复杂性、短开发周期的商业环境来说变得越来越重要。主要是因为UML 语言是可执行的,所以根据UML 建立的系统行为模型可以生成可执行代码,从而节约了从抽象模型到手工编写可执行代码的费时、费力的工作量。但是所有的UML 代码生成工具是为类似PC上应用而设计的,不适合应用于中小型的CPU,且售价昂贵。如果将RTOS的实时性与UML模型设计的直观性、安全性和便捷性相结合,应用于中小规模的CPU 芯片无疑会给深度嵌入式系统开发带来更多的手段。1 实时UML 框架程序设计平台(QP)简介QP是使用实
3、时抢占式任务管理内核、基于UML状态图的软件设计方法的轻量级软件平台,是一种新式操作系统。QP软件平台结构如图1所示由以下4个部件组成。1.1 任务管理内核(QK)QK也采用了类似其他商业内核的优先级的抢占机制以保证关键任务得到实时执行。但是QK 实现抢占的原理有别于任何一种操作系统。QK采用的是Moore状态机的“运行到结束”的机制,因此当系统还在忙于处理前较低优先级事件时,当较高优先级的事件到来时,系统将新事件存储在消息队列中,直到低优先级事件完成后,再执行新事件。QK 的实现原理不同于传统RTOS的堆栈操作,仅使用C 语言编译器的中断服务程序(ISR)机制就可完成。也就是QK的移植完全不
4、需要插入额外的汇编语句。所以,任务切换时没有额外的开销,执行速度快,相当于子程序调用。当然如果使用其他RTOS 的任务管理功能也能代替QK,稍候在QP 到TMS320LF2407的接口程序设计部分介绍。1.2 基础框架平台该框架平台完成了驱动事件管理功能、状态机架构管理和实时任务管理功能。实时UML框架序设计平台(QF)中任务是由能实现轻量级UML状态机和用来接收触发事件的消息队列组成。因此基于实时UML框架的任务具有UML状态机的特点。QF 将任务分为激活状态和休眠状态,QF 根据触发事件和任务优先级对其进行管理。实际工作时任务间采用异步的事件发送和接收机制进行通信。任务使用消息队列接收其他
5、活动对象的事件消息;同时,不同任务产生的事件也会利QF投送给其他订阅该消息的任务。对于触发事件的交换,排队,收集,销毁等工作则由QF统一完成。可见,任务间通过QF框架进行间接通信,实现了事件松耦合。因此,基于QF的程序设计可以采用模块化的设计方法,给设计过程中方案的修改和设计后期的软件维护提供了极大的方便。正像使用UML 的自动设计工具软件进行程序设计的过程一样,使用QF的程序设计也遵循以下过程:使用UML语义进行模型设计,根据QP平台代码转换方法将UML模型转化为源代码。总之,基于QF的程序设计实现了可视化程序设计和“自动”代码生成的目的;另外,在嵌入式系统中也可以将QF当作为一个软件总线,
6、将QF的接口移植到其他OS之上,以隐藏下层硬件和软件的差异。1.3 状态机部件(QEP)上节提到的QF任务的状态机的特性是由状态机部件(QEP)完成的。QEP是一个简化的轻量级的UML状态机部件,实现了状态机的状态转换触发事件响应等功能。QEP提供了两种状态机类型:层次化状态机(HSM)和平面状态机(FSM)。1.4 跟踪调试器(QSPY)QSPY 使用缓存机制采集系统内运行状态,事后在空闲任务时再编码输出,再有在整个QP 平台中QSPY调试插件有机的与系统关键运行环节有机的结合在一起,因此基于QSPY的调试可以获得更多的系统的信息的同时又不会过多地干扰程序的正常运行。在这一点上比传统RTOS
7、中的跟踪调试器更领先一步。2 QP 到TMS320LF2407 的接口移植QP存在C+和C+版本。基于C语言版本的精简版QP平台的代码量可以在4 KB左右,可以轻易的放入到大多数的小规模CPU的片上存储器中。并且该平台的实现原理如上节所述可以使用C编译器实现4,因此移植工作量极少,仅需几十行的C语言程序就可完成。显然在诸如TMS320LF2407 的中小型的CPU 上更适合使用基于C 的版本。QP 移植主要的工作集中在改写qep_port.h,qf_port.h,qf_port.c,qk_port.h 和qs_port.h 这4 个文件。2.1 QEP的接口移植QEP 完成了状态机的实现机制。
8、配置和移植QEP需修改qep_port.h头文件中关于各种数据类型和主要参数的定义。其中主要的有Q_ROM,Q_ROM_VAR 和QEP_SIGNAL_SIZE 三个宏定义。Q_ROM 宏是用来定义常变量到程序存储区域的,比如使用较大的表或数组等常数时不希望占用RAM资源时,将其定义在程序区,可以使用Q_ROM宏。定义方法根据不同的编译器而不同,比如在Keil C51 中Q_ROM 被定义为code 关键字。Q_ROM_VAR 宏用来定义如何采用指针类型取程序存储器变量。QEP_SIGNAL_SIZE 宏用来定义信号宽度,通常为1,2或4.针对TMS320LF2407的硬件结构特点定义了8位、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 UML 可视化 图形 程序 设计 方法 介绍
链接地址:https://www.31doc.com/p-3416503.html