CN101013370A - 一种嵌入式实时操作***的静态配置方法 - Google Patents
一种嵌入式实时操作***的静态配置方法 Download PDFInfo
- Publication number
- CN101013370A CN101013370A CN 200710067222 CN200710067222A CN101013370A CN 101013370 A CN101013370 A CN 101013370A CN 200710067222 CN200710067222 CN 200710067222 CN 200710067222 A CN200710067222 A CN 200710067222A CN 101013370 A CN101013370 A CN 101013370A
- Authority
- CN
- China
- Prior art keywords
- operating system
- description document
- description
- attribute
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000003068 static effect Effects 0.000 title claims abstract description 22
- 230000006872 improvement Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式实时操作***静态配置领域,旨在提供一种嵌入式实时操作***的静态配置方法。该方法包括以下步骤:(1)定义***描述语言;(2)使用***描述语言编写***描述文件;(3)操作***提供者提供配置软件,配置软件通过解析***描述文件来获取***的配置信息,然后自动生成特定操作***的配置文件对***进行配置。本发明减少了由于不当配置引入***错误的概率;提高了应用的移植性;用户只需要学习如何编写应用描述文件而不需要学习实时操作***实现细节,缩小了学习使用实时操作***的周期,利于推广;本发明便于通过计算机软件实现自动配置,提高了工作效率。
Description
技术领域
本发明涉及嵌入式实时操作***静态配置领域,更具体的说,是涉及一种嵌入式实时操作***的静态配置方法。
背景技术
嵌入式实时操作***为了满足嵌入式实时***的特定需求一般都需要根据不同应用的需求采用不同的配置方案。比如,同一种嵌入式实时操作***在不同的应用中可能提供不同数量的***服务,而且操作***的内部参数(如:任务数量、任务属性、资源数量、定时器数量等)也会有所不同。由于实时***性能上的要求,大多数嵌入式实时操作***都采用静态配置的方法,也就是说对于***的裁剪和配置是在***编译时进行的。
目前大多数使用静态配置的嵌入式实时操作***(如μ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-1
32位有符号整数INT32:取值范围-231到231-1
64位无符号整数UINT64:取值范围0到264-1
64位有符号整数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),于是可以如下定义属性USERES:
RESOURCE_TYPE USERRES;
此外当一个属性可以取同一类型的多个值时可定义该属性为取多值的属性。比如一个任务可以占用多个资源,则上述的USERES属性就是一个取多值的属性,定义如下:
RESOURCE_TYPE USERRES[];
某些属性值可能是***配置工具自动计算的,这样的属性在实现描述中用WITH_AUTO关键字说明,相应的属性在应用描述中不是由用户设定特定值,而是设置成AUTO,由配置工具可以设置属性。
此外,每一个属性都必须指定一个默认值,当该属性没有被人工指定值时配置工具将为其设定默认值。没有默认值的属性必须把默认值设为NO_DEFAULT,这样的属性必须在应用描述中指定属性值。比如:
INT32 param=5,表示param值无法自动计算,默认值为5。
INT32 WITH_AUTO param=NO_DEFAULT,表示param值是自动计算的,没有默认值。
属性如果有取值范围,也要定义。取值范围通过两种方式定义:
INT32[0..10]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对象并设置相应属性,然后再使用配置工具重新生成描述文件。
当操作***更新,配置方式发生变化时,***提供者只需要更新配置软件,用户使用同样的描述文件便能对***进行配置。
最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (8)
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所述的一种嵌入式实时操作***的静态配置方法,其特征在于,每一个属性都有一个默认值,当该属性没有被人工指定值时配置工具将为其设定默认值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710067222 CN101013370A (zh) | 2007-02-08 | 2007-02-08 | 一种嵌入式实时操作***的静态配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710067222 CN101013370A (zh) | 2007-02-08 | 2007-02-08 | 一种嵌入式实时操作***的静态配置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101013370A true CN101013370A (zh) | 2007-08-08 |
Family
ID=38700906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710067222 Pending CN101013370A (zh) | 2007-02-08 | 2007-02-08 | 一种嵌入式实时操作***的静态配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101013370A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150162A (zh) * | 2013-02-22 | 2013-06-12 | 烽火通信科技股份有限公司 | 提高嵌入式软件代码共享程度的方法 |
-
2007
- 2007-02-08 CN CN 200710067222 patent/CN101013370A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150162A (zh) * | 2013-02-22 | 2013-06-12 | 烽火通信科技股份有限公司 | 提高嵌入式软件代码共享程度的方法 |
CN103150162B (zh) * | 2013-02-22 | 2016-02-10 | 烽火通信科技股份有限公司 | 提高嵌入式软件代码共享程度的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534773B2 (en) | Intelligent query parameterization of database workloads | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
JP5710852B2 (ja) | 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク | |
US20240045850A1 (en) | Systems and methods for database orientation transformation | |
US9400700B2 (en) | Optimized system for analytics (graphs and sparse matrices) operations | |
US20110161391A1 (en) | Federated distributed workflow scheduler | |
US20110296391A1 (en) | Systems and Methods for Dynamically Replacing Code Objects Via Conditional Pattern Templates | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
CN103718155A (zh) | 运行时*** | |
CN102542382A (zh) | 业务规则的管理方法和装置 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN111880784B (zh) | 一种面向simscript语言的离散事件仿真图形化建模方法 | |
CN103593456A (zh) | 表单自定义设计方法及装置 | |
KR101747424B1 (ko) | 애플리케이션 설계와 구현을 통합하는 객체 지향 프로그래밍 장치, 및 방법 | |
CN112035230A (zh) | 一种任务调度文件生成方法、装置及存储介质 | |
EP1388034A2 (en) | System for configuration programming | |
US7209927B2 (en) | Adaptive resource management helper component for facilitating autonomic management of subject entities | |
CN108196910B (zh) | 一种软件版本的切换方法、设备以及*** | |
CN101013370A (zh) | 一种嵌入式实时操作***的静态配置方法 | |
US20070236369A1 (en) | Configurable importers and resource writers | |
CN114756221A (zh) | 基于ibm as400的程序自动生成方法及装置 | |
Flake | Towards the Completion of the Formal Semantics of OCL 2.0 | |
US10657476B2 (en) | Just in time compilation (JIT) for business process execution | |
CN109299004B (zh) | 关键元素差异性分析方法及*** | |
Damm et al. | A formal semantics for a UML kernel language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |