一种嵌入式实时操作系统的静态配置方法

文档序号:6573508阅读:336来源:国知局
专利名称:一种嵌入式实时操作系统的静态配置方法
技术领域
本发明涉及嵌入式实时操作系统静态配置领域,更具体的说,是涉及一种嵌入式实时操作系统的静态配置方法。
背景技术
嵌入式实时操作系统为了满足嵌入式实时系统的特定需求一般都需要根据不同应用的需求采用不同的配置方案。比如,同一种嵌入式实时操作系统在不同的应用中可能提供不同数量的系统服务,而且操作系统的内部参数(如任务数量、任务属性、资源数量、定时器数量等)也会有所不同。由于实时系统性能上的要求,大多数嵌入式实时操作系统都采用静态配置的方法,也就是说对于系统的裁剪和配置是在系统编译时进行的。
目前大多数使用静态配置的嵌入式实时操作系统(如μC/OS、OSEK Turbo等是利用宏和条件编译技术实现静态配置的,也就是说在进行系统配置时用户需要手工修改操作系统特定部分的源代码,然后再对系统进行重新编译。这种方法的缺点是,不同的操作系统必须采用不同配置方法,系统配置者不但要熟悉具体的应用需求还要熟悉操作系统的实现细节。当一种操作系统的实现细节随着版本更新发生变化或者当应用程序从一种操作系统移植到另一种操作系统时就必须对系统源代码的不同部分采用不同方法进行手工修改。这种配置方式自动化程度低、易出错,降低了系统的开发效率和系统的可移植性,因此嵌入式实时操作系统需要一种更自动化、更高效的静态配置方法。

发明内容
本发明的主要目的在于克服现有技术中的不足,提供了一种嵌入式实时操作系统的静态配置方法。
为了解决上述技术问题,本发明是通过以下技术方案实现的。
一种嵌入式实时操作系统的静态配置方法,包括以下步骤
(1)定义系统描述语言该系统描述语言用于在CPU上配置应用程序;系统描述语言通过定义和描述对象来配置实际应用程序;一个对象对应于嵌入式实时操作系统中的一种实体;(2)使用系统描述语言编写系统描述文件用户通过使用系统描述语言编写系统描述文件来描述应用程序;系统描述文件分为实现描述文件和应用描述文件实现描述文件描述操作系统的特性,它定义了一个对象集合,并为每一个对象定义一个属性集,而对每一个属性又定义了属性的特征;应用描述文件描述特定的应用,它根据实际应用情况定义对象,并为对象设置属性;(3)操作系统提供者提供配置软件,配置软件通过解析系统描述文件来获取系统的配置信息,然后自动生成特定操作系统的配置文件对系统进行配置。
作为一种改进,所述的实体是操作系统、任务、中断服务程序、资源、计数器、定时器、事件、消息。
作为一种改进,所述的对象使用一个属性集来描述其特点。
作为一种改进,所述的应用描述文件中定义的对象必须是实现描述文件中定义过的对象,不能定义实现描述文件中没有的对象,对对象属性的设置符合实现描述文件定义中的描述。
作为一种改进,所述对象中包括一种特别对象CPU,该对象CPU表示实际运行程序的CPU,没有属性,不在实现描述文件中定义。
作为一种改进,对于特定的操作系统,其系统对象集合是固定的,不同应用和系统实现的差异通过对象属性集合的不同体现出来在实现描述文件中,一个对象的定义由数据类型、自动计算属性、取值范围和默认值四部分组成。
作为一种改进,所述的数据类型包括32位无符号整数、32位有符号整数、64位无符号整数、64位有符号整数、浮点数、枚举类型、逻辑类型、字符串和引用类型。
作为一种改进,每一个属性都有一个默认值,当该属性没有被人工指定值时配置工具将为其设定默认值。
与现有技术相比,本发明的有益效果是(1)实时操作系统实现者通过实现描述文件描述系统实现的细节并对系统属性的配置进行约束,用户对该实时操作系统的配置必须符合该约束,因此本发明减少了由于不当配置引入系统错误的概率。
(2)符合同一标准的不同实时操作系统可以使用同一系统实现文件,因此对应的应用描述文件有相同的格式,同一个应用的应用描述文件可以适用于符合相同标准的不同实时操作系统的实现版本,提高了应用的移植性。
(3)用户只需要学习如何编写应用描述文件而不需要学习实时操作系统实现细节,缩小了学习使用实时操作系统的周期,利于实时操作系统的推广。
(4)本发明便于通过计算机软件实现自动配置,提高了工作效率。


图1本发明配置框图。
图2本发明配置流程图。
图3实现描述文件示例图。
图4应用描述文件示例图一。
图5应用描述文件示例图二。
具体实施例方式
结合附图,下面对本发明进行详细说明。
本发明提供了一种嵌入式实时操作系统的静态配置方法。该方法提供一种特定的系统描述语言对嵌入式应用程序进行配置。在该方法中,操作系统提供者使用系统描述语言描述操作系统的实现细节,而应用开发者使用系统描述语言描述具体的应用,然后使用系统配置软件根据上述两种描述自动生成不同操作系统所需的配置文件。使用该方法的好处是,当操作系统的实现或具体应用发生变化时,只需要修改特定的系统描述文件就能快速地进行系统的重新配置,从而提高了用户使用嵌入式实时操作系统开发应用的便利性,增强了系统的可移植性。
用户通过使用系统描述语言编写系统描述文件来描述应用程序。系统描述文件分为实现描述文件和应用描述文件两部分。实现描述文件描述特定操作系统的特性,它定义了一个对象集合,并为每一个对象定义一个属性集,而对每一个属性又定义了属性的特征。应用描述文件描述特定的应用,它根据实际应用的情况定义对象,并为对象设置属性。应用描述中定义的对象必须是实现描述中定义过的对象,不能定义实现描述中没有的对象,对于对象属性的设置也必须符合实现定义中的描述。所有对象中有一种对象比较特别,就是CPU,它表示实际运行程序的CPU,它作为所有对象的容器,没有属性,不需要在实现描述文件中定义。
操作系统提供者需要提供配置软件,配置软件通过解析系统描述文件来获取系统的配置信息,然后自动生成特定操作系统的配置文件对系统进行配置。
对于特定的操作系统,其系统对象集合是固定的,不同应用和系统实现的差异通过对象属性集合的不同体现出来。在实现描述中,一个对象的定义由数据类型、自动计算属性、取值范围和默认值四部分组成。
属性的数据类型包括如下几种32位无符号整数UINT32取值范围0到232-132位有符号整数INT32取值范围-231到231-164位无符号整数UINT64取值范围0到264-164位有符号整数INT64取值范围-263到263-1浮点数FLOAT符合IEEE-754标准的浮点类型枚举类型ENUM表示对应属性只能取枚举集中的某个值。比如ENUM[NON,FULL]SCHEDULE;表明SCHEDULE属性只能取NON或FULL两个值。每个枚举值还可以指定一个或多个参数。比如ENUM[ACTIVATETASK{TASK_TYPE TASK;},SETEVENT]ACTION;表明ACTION属性可以取ACTIVATETASK和SETEVENT两个值,其中ACTIVATETASK包括类型为TASK_TYPE的属性TASK,而SETEVENT不包括参数。
逻辑类型BOOLEAN其取值为TRUE(逻辑真)和FALSE(逻辑假)字符串STRING任意包括在双引号中的8比特字符(不包括双引号本身)序列为一个字符串。
引用类型
引用类型用来引用一个系统对象。引用可以被用来在对象间建立连接关系。一个名为A的对象对应的数据类型为A_TYPE。比如,任务对象(TASK)中的资源属性定义了该任务占用的资源,它是另一种系统对象(RESOURCE),于是可以如下定义属性USERESRESOURCE_TYPE USERRES;此外当一个属性可以取同一类型的多个值时可定义该属性为取多值的属性。比如一个任务可以占用多个资源,则上述的USERES属性就是一个取多值的属性,定义如下RESOURCE_TYPE USERRES[];某些属性值可能是系统配置工具自动计算的,这样的属性在实现描述中用WITH_AUTO关键字说明,相应的属性在应用描述中不是由用户设定特定值,而是设置成AUTO,由配置工具可以设置属性。
此外,每一个属性都必须指定一个默认值,当该属性没有被人工指定值时配置工具将为其设定默认值。没有默认值的属性必须把默认值设为NO_DEFAULT,这样的属性必须在应用描述中指定属性值。比如INT32 param=5,表示param值无法自动计算,默认值为5。
INT32 WITH_AUTO param=NO_DEFAULT,表示param值是自动计算的,没有默认值。
属性如果有取值范围,也要定义。取值范围通过两种方式定义INT32
param=5表示param的取值范围为0~10的整数。
INT32[1,3,5]param=5表示param的取值范围为1,3,5三个值中的一个。
按照本发明配置嵌入式实时操作系统的过程分如下几步编写实现描述文件;编写应用描述文件;用配置软件生成操作系统的配置文件和继续系统开发。
这里详细说明如何使用本发明提出的方法对一种符合OSEK/VDX的操作系统SmartOSEK OS进行静态配置。
首先编写实现描述文件定义系统对象,SmartOSEK OS有如下对象OS一个OS对象表示运行在CPU上的操作系统,一个应用只能定义一个OS对象。
TASK一个TASK对象表示一个受OS控制的任务。
COUNTER一个COUNTER对象表示一个计数器,计数器对外部事件发生次数进行计数。
ALARM一个ALARM对象表示一个定时器,定时器根据计数器的值进行特定的周期性操作。
RESOURCE一个RESOURCE对象表示一个可以被任务占用的资源。
EVENT一个EVENT对象表示一个特定的事件,任务可以等待和响应事件。
ISR一个ISR对象表示一个中断服务程序,当中断发生时它将进行特定的操作。
对于每一种对象定义了属性集合。
OS具有如下属性调试状态、钩子点、是否使用调度器资源、调度方式。
TASK具有如下属性是否可抢占、是否自启动、优先级、可激活次数、响应事件、占用资源。
ISR具有如下属性中断类型、占用资源。
COUNTER具有如下属性最小周期、最大值、计数密度。
ALARM具有如下属性对应计数器、动作(激活任务、设置事件或回调函数)、是否自启动。
EVENT具有如下属性掩码值。
RESOURCE具有如下属性资源类型。
该系统的应用描述文件如图所示用户使用操作系统时,根据不同的应用特征编写应用描述文件。应用描述文件可以通过手写,也可以通过相应配置软件生成。图为本例子中使用的配置软件。
在一个应用中,根据实际情况,设计者需要两个任务、一个中断服务程序。用户首先定义OS对象,设置操作系统的整体的属性。然后定义两个TASK对象,分别设置相关属性。最后定义一个ISR对象设置相关属性。最后生成的应用描述文件如下。
最后使用配置工具解析描述文件,生成系统配置文件。在此配置文件为os_cfg.h,app_cfg.h,app_cfg.c。
当应用需求发生改变,需要增加一个由定时器激发的任务。这是需要在原有得应用描述文件中多定义一个TASK对象,一个COUNTER对象和一个ALARM对象并设置相应属性,然后再使用配置工具重新生成描述文件。
当操作系统更新,配置方式发生变化时,系统提供者只需要更新配置软件,用户使用同样的描述文件便能对系统进行配置。
最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
权利要求
1.一种嵌入式实时操作系统的静态配置方法,其特征在于,包括以下步骤(1)定义系统描述语言该系统描述语言用于在CPU上配置应用程序;系统描述语言通过定义和描述对象来配置实际应用程序;一个对象对应于嵌入式实时操作系统中的一种实体;(2)使用系统描述语言编写系统描述文件用户通过使用系统描述语言编写系统描述文件来描述应用程序;系统描述文件分为实现描述文件和应用描述文件实现描述文件描述操作系统的特性,它定义了一个对象集合,并为每一个对象定义一个属性集,而对每一个属性又定义了属性的特征;应用描述文件描述特定的应用,它根据实际应用情况定义对象,并为对象设置属性;(3)操作系统提供者提供配置软件,配置软件通过解析系统描述文件来获取系统的配置信息,然后自动生成特定操作系统的配置文件对系统进行配置。
2.根据权利要求1所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,所述的实体是操作系统、任务、中断服务程序、资源、计数器、定时器、事件、消息。
3.根据权利要求1所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,所述的对象使用一个属性集来描述其特点。
4.根据权利要求1所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,所述的应用描述文件中定义的对象必须是实现描述文件中定义过的对象,不能定义实现描述文件中没有的对象,对对象属性的设置符合实现描述文件定义中的描述。
5.根据权利要求1所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,所述对象中包括一种特别对象CPU,该对象CPU表示实际运行程序的CPU,没有属性,不在实现描述文件中定义。
6.根据权利要求1所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,对于特定的操作系统,其系统对象集合是固定的,不同应用和系统实现的差异通过对象属性集合的不同体现出来在实现描述文件中,一个对象的定义由数据类型、自动计算属性、取值范围和默认值四部分组成。
7.根据权利要求6所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,所述的数据类型包括32位无符号整数、32位有符号整数、64位无符号整数、64位有符号整数、浮点数、枚举类型、逻辑类型、字符串和引用类型。
8.根据权利要求6所述的一种嵌入式实时操作系统的静态配置方法,其特征在于,每一个属性都有一个默认值,当该属性没有被人工指定值时配置工具将为其设定默认值。
全文摘要
本发明涉及嵌入式实时操作系统静态配置领域,旨在提供一种嵌入式实时操作系统的静态配置方法。该方法包括以下步骤(1)定义系统描述语言;(2)使用系统描述语言编写系统描述文件;(3)操作系统提供者提供配置软件,配置软件通过解析系统描述文件来获取系统的配置信息,然后自动生成特定操作系统的配置文件对系统进行配置。本发明减少了由于不当配置引入系统错误的概率;提高了应用的移植性;用户只需要学习如何编写应用描述文件而不需要学习实时操作系统实现细节,缩小了学习使用实时操作系统的周期,利于推广;本发明便于通过计算机软件实现自动配置,提高了工作效率。
文档编号G06F9/44GK101013370SQ20071006722
公开日2007年8月8日 申请日期2007年2月8日 优先权日2007年2月8日
发明者赵民德, 杨国青, 李红, 郁利吉, 刘凯, 吴朝晖 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1