一种嵌入式实时操作系统的建模和代码生成方法

文档序号:6536077阅读:169来源:国知局
专利名称:一种嵌入式实时操作系统的建模和代码生成方法
技术领域
本发明涉及图形建模和自动代码生成技术,主要是实现一种支持各类嵌入式芯片和实时操作系统的嵌入式实时操作系统的建模和代码生成方法。
背景技术
第一方面RTOS(Real Time Operating System)实时操作系统嵌入式实时操作系统,也叫实时内核,是在各类嵌入式芯片的应用程序上实现多任务的机制。它的核心功能,是实现多任务调度,以及任务间的通讯等。目前,市场上占有率比较高的商业实时操作系统有VxWorks、PSOS、QNX、LynxOS、VRTX,、Windows CE等。这些为数众多的实时操作系统绝大多数都是多任务实时微内核的结构,采用的是基于优先级的可抢占式调度策略。
含有嵌入时实时操作系统的程序执行的效率和可靠性都高于普通的前后台系统的程序,但是对实时操作系统进行开发却不是一般的工程师所能掌握的技术。解决这对矛盾的一般做法是将问题分成两个方面建模和编程,然后分别交给系统工程师和软件工程师。这样做会引起更多的人为错误,并且拖长了开发时间。
第二方面VPL(Visual Programming Languages)可视化编程语言一种可视化编程语言,就是一种具有图形化表示法的编程语言。这种表示法包括图形,图画,影像或者图标等。可视化编程语言是二维或者更高维的语言,因此它更容易被理解,也更加容易跟用户进行交互操作。可视化编程语言的使用往往分为两步建模和自动生成代码。
在嵌入式领域,系统工程师喜欢集中精力于建模,但是往往不善于写代码。那么是否我们能够找到一种方法,代码可以在模型的基础上自动生成出来呢?答案就是利用一种可视化编程语言。
事实上,嵌入式领域中已经有很多这样的可视化编程语言,比如MATLAB。它们中有些功能非常强大,以至于到了现在很多系统工程师已经离不开这些可视化编程工具的帮助。但是,目前所有的此类工具只能解决算法代码的建模和代码生成,不能解决嵌入式实时操作系统的问题。一旦程序需要实时操作系统的帮助,那么系统工程师将不得不回到从前的手工编写代码的方式。

发明内容
本发明要解决上述实时操作系统的强大功能和它的使用难度之间的矛盾,提供一种为实时操作系统开发的嵌入式实时操作系统的建模和代码生成方法,从而解决一切嵌入式芯片上的系统开发的难题。
本发明解决其技术问题所采用的技术方案。这种嵌入式实时操作系统的建模和代码生成方法,主要步骤如下1)、本发明先提取出嵌入式实时操作系统的共同特征,总结出它们的共同接口,并用一定的图形结构对这些操作系统核心特征进行表示。根据提取的结果,操作系统的最基本特征包含三个方面A)、任务;B)、任务之间的通讯;C)、定时器。
任务的核心特征可以概括成一个C++里面的对象,任务包含自己的一些属性,以及对这些属性进行的操作;因此任务可以利用图形表示为一个对象的结构。任务之间通讯可以利用任务提供的操作来完成,在图形方面表示为结构之间的连线。定时器也可以被定义为一个特殊的对象,它既可以作为任务中的一个属性,也可以脱离任务而成为一个单独的结构。嵌入式实时操作系统的特征图形表示示意图见图1和图2。
2)、本发明根据上面的特征提取,我们进一步建立了图形于嵌入式实时操作系统的这些特征之间的对应关系。这些关系进一步明确了可视化编程语言和嵌入式实时操作系统之间的联系,这些对应关系见图3——图6。
对应关系确定以后,本发明设计出图形和代码之间的映射关系如下图形 代码任务的图形模块 任务的函数体任务图形模块间的连线 操作系统的系统调用连线的末端模块 系统调用函数的参数事件的图形模块 事件的变量报警器的图形模块 报警器的声明函数中断的图形模块 中断的函数体驱动程序的模块 驱动程序库代码加载3)、这种映射关系的确立,使得可视化编程得以实现,只要在屏幕上绘制出一定的图形,系统就可以按照图形的关系按照上面的表格自动生成出所需的代码。
本发明具有如下优点1.节省开发时间。自动生成代码可以大大减少整个开发过程在编写代码的过程中所花费的时间,其效果相当于节省了软件工程师的单独的工作和他与系统工程师之间的交流所需的时间。对于大的系统和复杂的模型,可视化编程的效果非常明显。
2.保证代码的高可靠性。软件中的错误越晚发现,那么为此付出的代价就越高,而且这一增长速度是指数级的。软件产品中的“人的因素”是迄今为止导致错误和风险的最主要原因。与之对应的是,机器生成的代码是具有高可靠性的,很多种编程错误在机器生成的代码中从不出现。
3.高质量和高可读性的代码。自动生成的代码不仅可以非常快,而且生成代码的执行效率可以非常的高,因为它可以继承最优秀的程序员的设计风格。另外,机器生成的代码风格从头到尾都是一致的,还可以自动加入注释等,使得整体代码的可读性非常好。


图1本发明的实时操作系统任务间通讯机制;图2本发明的定时器作为任务属性表示法;图3本发明的VPL-RTOS的任务模型;图4本发明的VPL-RTOS的任务属性;图5本发明的VPL-RTOS的任务通讯示意图;图6本发明的VPL-RTOS的定时器跟任务之间的关系;图7本发明的VPL-RTOS面对用户的编程接口示意图;图8本发明的VPL-RTOS生成的C代码示意图;图9本发明的VPL-RTOS生成的代码执行情况示意图;
图10本发明的VPL-RTOS利用图形进行时间分析示意图;图11本发明的VPL-RTOS整体开发流程结构图;图12本发明的VPL-RTOS与测试工具结合流程图。
具体实施例方式
下面结合附图和实例对本发明作进一步介绍第一步,用户在可视化环境下进行模型的建立。(图7)利用VPL-RTOS进行建模的过程就是画一幅图画的过程。用户所需要做的就是根据应用的要求画一幅流程图出来,图7是建立好的一个模型的例子。
例子中描述的是一个汽车发动机控制模型,在模型中,有六个任务已经它们之间复杂的通讯,并且包含一个定时器。因此这个模型实际上包含了所有操作系统的核心特性。可以看出,通过这样的方式建立模型是简单而清楚的。
建立图形的方式就是利用鼠标进行“拖-放”的操作,其使用方法类似于Windows下的画图板。在画图的过程中只需要关心画图本身,不需要关心任何有关代码的内容。而当完成了画图操作以后,几乎所有的接下来的任务就会由系统自动帮助完成。
第二步,根据图形信息自动生成代码。(图8)一旦我们得到了上面的模型图,我们就可以以这幅图上的信息为基础,生成我们需要的程序代码,如图8。生成的代码可以是C代码,也可以是针对某个芯片的汇编代码。不管什么形式的代码,只要根据本专利中的模型概念和映射关系,就可以由系统自动生成出来。
任务内部的算法代码并不能VPL-RTOS中生成,只可以在生成出代码框架以后手动的添加进去。至于算法代码怎样得到,我们推荐用MATLAB-Simulink-RTW环境进行建模和自动代码生成,它的使用方法类似于本专利,所不同的是它只能生成算法代码,不能生成操作系统代码。
第三步,将自动生成的代码编译和运行。(图9)图9是我们生成的代码在MPC555芯片上运行时的状况示意图。这些信息是通过串行端口打印到PC屏幕上的。
在运行之前,我们生成的C代码进行了编译,本例中我们利用自己设计的编译器把标准C代码编译成在MPC555芯片上的可执行代码。用户也可以根据自己的需要,将生成的标准C代码编译成其他芯片上的可执行代码。
整个开发的流程在图11中详细的表示出来。这种流程对传统的嵌入式开发是一种革命性的变化,因为用户接触到的唯一的界面是图形的;而且不仅是图形而已,而是利用图形进行编程。用户甚至没有写一句代码,就可以让自己设计的系统在芯片中运行。回想一下,我们从面向机器的语言到面向对象的语言,在从面向代码的语言走到面向图形的语言;随着编程语言的越来越高级,人类已经不用再知道编程的确切概念,可以忘记什么是编程,而是简单的把自己的思路画出来就可以了。这就是本发明对嵌入式操作系统已经整个嵌入式系统开发领域所做出的贡献。
本发明实现了利用图形对嵌入式实时操作系统进行编程的过程,其步骤如下1)在屏幕上绘应用程序模型的图形;2)双击相应的图形,改变图形的参数;3)单击按钮开始自动生成代码;4)对自动生成的代码进行修改和编译;5)编译完成的代码下载到硬件芯片上运行。
在实现可视化语言的基础上,本发明增加了对嵌入式实时操作系统中的任务进行时间分析的功能。由于图形可以很好的反应出任务之间的关系,因此这就很好的构成了调度分析的基础,本论文采用一种普遍的调度分析方法在图形的基础上进行时间特性的分析,其开创性在于不需要用户手动的输入分析的参数,因为这些参数可以从图形模型上面取得,本发明的效果图为图10。
本发明在上述工作的基础上,进一步提出了关于利用可视化编程语言对含有嵌入式实时操作系统的应用进行开发的总体流程和相应的测试流程,它们将对传统开发流程的挑战并引起深刻变革。
权利要求
1.一种嵌入式实时操作系统的建模和代码生成方法,其特征是主要步骤如下1)、提取出嵌入式实时操作系统的共同特征,总结出它们的共同接口,并用一定的图形结构对这些操作系统最基本特征进行表示;根据提取的结果,操作系统的最基本特征包含三个方面A)、任务,利用图形表示为一个对象的结构;B)、任务之间的通讯,利用任务提供的操作来完成,在图形方面表示为结构之间的连线;C)、定时器,既可以作为任务中的一个属性,也可以脱离任务而成为一个单独的结构;2)、据上面的特征提取,进一步建立了图形与嵌入式实时操作系统的这些特征之间的对应关系;对应关系确定以后,设计出图形和代码之间的映射关系;3)、在屏幕上绘制出一定的图形,系统就可以按照图形的关系按照映射关系自动生成出所需的代码。
2.根据权利要求1所述的嵌入式实时操作系统的建模和代码生成方法,其特征在于所述的图形和代码之间的映射关系如下,按标号一一对应;图形1)、任务的图形模块,2)、任务图形模块间的连线,3)、连线的末端模块,4)、事件的图形模块,5)、报警器的图形模块,6)、中断的图形模块,7)、驱动程序的模块;代码1)、任务的函数体,2)、操作系统的系统调用,3)、系统调用函数的参数,4)、事件的变量,5)、报警器的声明函数,6)、中断的函数体,7)、驱动程序库代码加载。
3.根据权利要求1所述的嵌入式实时操作系统的建模和代码生成方法,其特征在于采用一种调度分析方法在图形的基础上进行时间特性的分析,从图形模型上面取得分析的参数。
全文摘要
本发明涉及一种嵌入式实时操作系统的建模和代码生成方法,主要步骤如下1)先提取出嵌入式实时操作系统的共同特征,总结出它们的共同接口,并用一定的图形结构对这些操作系统核心特征进行表示;2)根据上面的特征提取,建立了图形于嵌入式实时操作系统的这些特征之间的对应关系;3)这种映射关系的确立,使得可视化编程得以实现,只要在屏幕上绘制出一定的图形,系统就可以按照图形的关系按照上面的表格自动生成出所需的代码。本发明具有如下优点1.节省开发时间。自动生成代码可以大大减少整个开发过程在编写代码的过程中所花费的时间;2.保证代码的高可靠性。3.高质量和高可读性的代码。自动生成的代码不仅可以非常快,而且生成代码的执行效率可以非常的高。
文档编号G06F9/46GK1737755SQ20051005008
公开日2006年2月22日 申请日期2005年6月13日 优先权日2005年6月13日
发明者吴朝晖, 赵民德, 岳龙, 杨国清, 李红, 高志刚 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1