VxWorks组件技术的研究 VxWorks组件技术的研究

VxWorks组件技术的研究

  • 期刊名字:计算机与数字工程
  • 文件大小:308kb
  • 论文作者:冯永龙,艾明晶
  • 作者单位:北京航空航天大学计算机学院
  • 更新时间:2020-10-26
  • 下载次数:
论文简介

计算机与数字工程第35卷VxWorks组件技术的研究'冯永龙"艾明晶’(北京航空航天大学计算机学院北京10083)摘要VxWorks 是-种高性能的嵌入式实时操作系统,其最重要的特点之一是可 裁剪性。组件技术的应用使得构建VxWorks更加高效。本文针VxWorks的组件技术进行了分析,详细地论述了组件的管理、创建和发布,同时也结合--些实例进行了说明。关键词VxWorks;组件 描述语言( CDL) ;组件中图分类号TP316.2这些参数可以通过组件管理器来改变增加或删除。1引言集成信息:控制- -个组件是如何集成到-一个可构建VxWorks的传统方法是基于构造头文件执行日标映像中去的;集成特征参数也定义了组件的,组件是Tornado 2. x使用的- -种新的配置方法,间的依赖关系。以便更好地适用于越来越复杂的VxWorks环境。用户介绍:对组件的说明。这种方法使用Tornado 2. x的图形配置工具和工程组件描述语言支持很多目标类型。随着组件管理工具,为用户提供了一种可视化的配置手段,的增加,需要-一种有效的方法来管理这些组件,因目前约有300个可选择的组件,组件技术已成为此就引人了文件夹、选集、组件、参数和初始化群组VxWorks进行工程配置的标准方法。的概念,下面分别说明:2.1文件夹 .2组件及组件描述语言组件是一一个可配置模块的基本单元,也是系统Work space: Workspace3Build Sprfdofeult中最小的、可升级的单元。通过工程管理工具,用户能很方便地添加或删除-个组件,也可以修改一子. Vifuson shownoulines卢adapter rtelace thowtou些组件的参数,通常用组件描述文件( CDF)来描述系统中的一些组件,CDF文件的约定后缀为.cdf。i group met1age queue thor每个文件可定义不只一个组件。在Tormado 2. x开application nitialization发工具中,代码产生器能够根据用户所选择的组件白申development tool componentCaxtoTEST rntim np配置,自动输出系统配置文件。过去用户一般都通过修改配置文件( confg. h或configALL. h) ,来修Compiler support 1outines改系统所包含的一些特征。现在,用户可以使用WDB ogent componentsWoBagent services.CDF文件非常方便地定义系统的特征参数,描述一个组件,并将其配置到不同的系统中。组件描述Wndhiew component田中loader corponerlt:语言大致有以下4部分:国a show routines代码:构造-一个工程使用的代码。该代码可以图ymbol table componentI tarpet shel componerts是二进制形式的目标文件或库文件,也可以是源代码的合集或子集。配置信息:提供丰富的特征参数用于描述组件,中国煤化工理器MHCNMHG收到本文时间:2006年2月20日作者简介;冯水龙,男,硕士研究生。研究方向:嵌入式系统。艾明晶,女,副教授。研究方向:计算机测控技术、电子系统设计和嵌人式系统。第35卷(2007)第9期计算机与数字工程53文件夹提供组件分组等级,通常文件夹里组件化人口程序。是逻辑相关的。在工程组件管理器中,文件夹对应.●. REQUIRES:如果该组件被包含, 则必须包于工程管理窗口-个可扩展树节点,如图1所示。含一系列相关的组件。- 个文件夹可以包含很多相关的组件。文件●EXCLUDES:不能被该组件同时被包含的组件。夹里面的组件可被添加或单个地删除,同时文件夹●INIT. BEFORE:指定在某个组件前初始化,还可以包含一个或更多的组件、选集和其他文件调用INIT. _RTN。夹。一个文件夹包含以下元累:●INIT_ AFTER:指定在某个组件后初始化,调..NAME:-一个易读的名称,在工程组件管理用INIT_ RTN。器中出现在文件夹图标氟旁边。●LINK. _SYMS:连接符号,用于将相应的组件●SYNOPSIS:对一个文件夹的简洁的描述。编译人映像,即使应用未使用该组件。.●CHLDREN:属于这个文件夹的组件,文件INCLUDE WHEN:当一个组件被包含时设夹和选集称为子文件夹。定一个依赖关系能自动地包含特定的组件。●DEFAULTS:如果没有使用任何选择,就把●. CHILDREN:作为某个文件夹的子组件。文件夹加进去,它将包含组件的默认值。文件夹中●_INIT_ ORDER:指定将INIT. _RTN调用加入组件的包含情况是可以动态修改的。某个初始化群组( InitCroup)。2.2选集●HELP:与组件相关的参考专栏。选集类似于文件夹,它们是一个共同接口的组●DEFAULTS:作为某个文件夹的默认组件。件。例如:串口驱动器,WindView时标机制以及CONFIGLETTES:指定与配置有关的源文件。WDB通信接口等都是以选集的形式出现的。这些●BSP. STUBS(只用于tomado2.2):在第一次选集为相同的服务提供了多种选择,选集中的成员使用时,拷贝到BSP目录中的通用配置源文件。可以是单选也可是多选,分别为工程提供-一个或多●ARCHIVE;如果用户的模块不放在标准位个选择。选集包含以下元素:置,使用ARCHIVE来指定存档文件的名称。●NAME:-一个可读的名字,在工程组件管理2.4 参数器中出现在选集图标&旁边。参数是用户配置系统的方式之一。对于组件,. SYNOPSIS:对选集的简洁的描述。通常都会有一一个或多个参数来控制其行为,参数包.COUNT:为该选集可用的选项设定一个最含以下元素:小值和-个最大值。●NAME:一个可读的名称。CHILDREN;可选择的组件,类似于文件夹●TYPE:参数的数据类型,即uint、bool、string、中的子文件夹。它实际就是描述该选集向下的引或untyped等。●DEFAULT:出现在工程管理器组件特性窗用关系。. DEFAULTS:依赖COUNT的组件默认值。口的参数表中,如图2所示。2.3组件组件实际上是-一个功能部件具体实现部分的描述信息,它定义了与组件相关的源代码或目标代码、集成信息以及与组件相关的参数。组件包含以下元素:. NAME:-一个可读的名称,在工程组件管理圈2组件参数的修改器中出现在组件图标力旁边。2.5初始化群组●SYNOPSIS;对组件的简洁的描述。初始化群组定义组件的先后关系。初始化群●MODULES:与组件关联的目标文件。●HDR._FILES:使用该组件时需要用到的相组中的代码地T租工目△成到文件prjConfig. C中中国煤化工。初始化群组包关头文件。●CFG_ PARAMS: 与组件相关的- -些配置参含鸽HCNMHG数,通常为一系列的宏。●NAME:初始化群组名称。●INIT_ RTN:包含该组件后需要执行的初始. SYNOPSIS:对初始化群组的说明。)4冯水龙等:基于FPCA的字符显示及其在实时图像处理系统中的应用第35卷●INIT RITN:初始化程序初始化一个相关的为创建一一个新的组件, 首先要给它命名,并为组件。其准备一个简单的描述信息。●INIT. _ORDER:按照它们初始化顺序所陈列Component INCLUDE F00|的属于这个初始化群组的组件和初始化群组。NAME foo componentSYNOPSIS this is an example component3创建组件当用户使用组件描述语言创建组件时必须遵循一些约定。在一个组件描述文件中组件描述之在声明的组件INCLUDE_ F00中,名称和描述后,用户必须把相应的文件以及包含等级中的组件仅是用户对组件的说明,而初始化顺序和依赖性并放在合适的路径下才能保证工程管理工具读出所无影响。需的信息。当使用组件描述文件时,必须遵循以下②描述与代码相关的部分用户要通过定义模块来描述用户组件的代码规则: .部分。如果用户组件INCLUDE_ F00有与其相关组件以INCLUDE F00的形式命名;的目标模块或源代码,则可采用多种方式来指定这●文件夹以FOLDER. _F00的形式命名;一信息。选集以SELECT. F00的形式命名;MODULES fooLib. o fooShow. o●参数名称不能与任何其他目标类的名称相HDR_ FILES fo. h同,除此以外没有任何限制;ARCHIVE foLlib.a●初始化群组必须以initFoo形式命名。CONFIGLETTES fcConfig. c●.组件描述文件必须有. cdf后缀;使用HDR FILES属性来指定任何与组件相关●所有的CDF文件名称以两个十进制数字的头文件,如foo. h。使用CONFIGLETTES属性指开始(即0xxx cdf) ,开始的这两个数字控制一定与配置有关的文件名称(如foConfig. c),配置个目录中CDF文件读取顺序。或初始化程序中应涉及组件中的参数,否则该组件组件描述文件通常在工程创建时被读取,如果没有任何作用。两个文件描述同一个组件的同样特征,则它将读取③设定初始值后一个而不考虑以前的。优先权通常以两种约定如果用户的组件存在初始化代码,则可使用组方式建立:件目标类的INT_ RTN来指定初始化程序,例如:(1)CDF文件存放在确定目录下。这些目录INIT RTN foInit( arg1 ,arg2);以如下顺序读取:如果用户使用组件目标以外的模块,则可通过①$( WIND_ BASE) \target \confg \comps \Vx-LINK_ SYMS获取-一个外部连接:Works:包含一些通用组件;LINK_ SYMS fooRtnl②$( WIND_ BASE) \target \config \comps \Vx-④建立初始化顺序Works\arch larch:包含特定体系结构的组件;一个被声明为某个初始化群组中的组件,默认③$( WIND_ BASE) \target \config\bsp:包含特情况下会在该群组的最后被初始化;用户也可以通定BSP的组件;过使用INIT_BEFORE来改变这种默认情况。④工程日录:包含该工程的一些特定组件。例如:(2)在同一-个目录中,文件头部的2个数字决_INIT_ ORDER verRoot定读取顺序。INT_ BEFORE INCLUDE USER_ APPL在一个目录中,系统会根据每个CDF文件名在上例中, INCLUDE_ F00被声明为usrRoot的前2个数字来决定读取的顺序,风河公司保留开初始化群组的成员之一,并在INCLUDE . . USER_始的50个数字,0xxx. cdf ~ 49xxxx. cdf,剩下的APPL之前被初始化。用户还可以有另- -种选择,数字(50~99)预留为第三方。这些编号的优先级即创声明INCLUDE_中国煤化工是数值大的优先读取。用户创建一个新的组件要F00根据内容的特性和优先级别将其放在适当的路径YHCNMHG下。创建组件的过程如下:如果该组件有相关帮助文档,则可使用HELP①命名指定相关参考条目(HTML格式)。例如;第35卷(2007)第9期计算机与数字工程65HELP fooMan. html文件的读取顺序相关内容)。在下面这个例子中。⑥定义从属物标准Wind River组件INCLUDE_ I0 -使用REQUIRES、EXCLUDES和INCLUDE__SYSTEM中的打开文件描述符(NUM_WHEN来声明组件之间的依赖关系。FILES)的数量被更改了。默认值是50。⑦列出相关参数Parameter NUM_ FILES {在组件目标中,使用CFG _PARAMS来声明所DEFAULT 75有相关的参数。例如:通过把例子中的那- -系列代码加到第三部分CFG_ PARAMS F00_ MAX. COUNTCDF文件中。如果组件已经存在于配置文件中通⑧定义参数对于每个CFG _PARAMS中声明的参数,还必过去除或是增加组件,以及通过重建工程,NUM_FILES的值被改变到75。须进一步说明其类型以及默认值。Parameter F00_ MAX_ COUNT{4测试新组件NAME Foo maximumTYPE uint用户可以进行几个测试来校验组件的正确性:DEFAULT 50(1)核对语法和语义这是最简单的校验测试,首先编辑文件⑨定义群组成员$ ( WIND - BASE )/hosU/ resource/c/app - config/-一个组件必须与-一个文件夹或-个选集联系,Project/cmpTestLib. tcl,设置一个有效的BSP目录否则它在工程管理工具中将是不可见的。例如:名(mv162) ,然后运行cmplet:_CHILDREN F0LDER_ ROOT> cd $( WIND - BASE)/host/ reoure/tcl/ app - .config/_CHILDREN 声明INCLUDE_ F00是文件夹Project> wtxtclFOLDER_ ROOT的子组件。wtutel > source ecmTestLib. tel①创建虚拟组件wtxtel > cmpTest只有当工程I具与包含的组件联系起来时,它句法和语义的错误可以通过empTest测试来才会分析相关的目标文件(库文件或OBJ文件)。排除;根据测试输 出做出相应改变,直至运行该测这就产生了-一个问题:为了了解一个特殊的目标文试没有错误。件,工程工具需在组件真正被包含进去之前分析它(2)核对组件从属物们。也就是说,如果用户把ARCHIVE声明的组件用户可以通过运行cmpInfo来测试用户组件加进去,则配置分析会在不知道ARCHIVE值的情中的依赖关系。例如:况下完成。所以,如果用户的组件包含一个库文件wtxtcl > cmpinfo < component name >以及几个目标模块,则用户应创建一个虚拟组件。(3)核对工程工具组件等级这个虚拟组件是始终要被包含的,它使工程工具知通过核对工程工具组件等级来确认用户所添道一个新的文件应被读取;这个组件可以称为IN-加的选集、文件和新组件是否被正确包含。打开STALL F00,它应包含NAME、SYNOPSIS和AR-“工程工具"进人VxWorks,查看新组件是如何出现CHIVE。在INSTALL_ F00被添加进去之前,用户在文件树中的。调用Properties来核对与一个组件不能增加来自相同组件的其他组件。相关的参数及其默认值。①产生工程文件工程工具会自动根据组件的描述信息和配置5发布组件来为每个工程创建一个配置文件( prjConfig.c)。发布一个Tomado组件的过程排除对-一个现(3)修改组件存的配置文件修改的可能性。新的组件描述文件在更高优先级别的CDF文件中通过重新指定应该与现在的文件无关有以!下两种例外:已存在的组件来修改它们。传统的第三部分的中国煤化工文件夹或选集相CDF文件是被最后读取的,因此有最高优先权。关联MHCNMHG使用赋名可创建一一个更高优先级的CDF文件,它, 新的组件初始化程序与-一个现存的初始化超越Wind River 的任何默认组件(参考前面CDF群组 相关联。66冯永龙等:基于FPCA的字符显示及其在实时图像处理系统中的应用第35卷可以通过组件参数“. CHILDREN"把-一个新的若它是一个BSP特定组件,则应该放在BSP目录组件连接到一个现存的文件夹或选集或一个现存下。若其特别服务-一个单一工程,则它应放在工程的初始化群组中,并且它不修改现存的元素。。目录( target/ proj (project .name)下。用户可以一次发布不止一个组件,因为一个第三方组件不允许覆盖Wind River 支持的文CDF可定义不止-一个组件。还可以同时发布任何件,但可在其自身组件描述文件中忽略Wind River数量的CDFs。的组件描述。6组件封装7结论WindRiver公司将部分组件安装在其传统位使用组件技术,使得用户在开发过程中能够高置上。效地构建VxWorks系统,避免传统构造头文件带源码模块可在target/sre或target/con - fig来的低效复杂易出错等缺点。而且,Tomado 2. x目录下找到。.的图形配置工具和工程管理工具增强了组件相互●标题头置于target/h 中;目标模块在target/依赖的可视性。笔者根据实际需求,选取了部分系lib/objARCH中。统组件和第三方提供的组件,快速构建了一个Vx-●组件描述描述文件在target/config/Works系统,充分体会到了组件技术的优点。comps/VxWorks中。参考文献●组件配置文件(源码片断)位于target/[1]李忠民,杨刚,顾亦然,刘尚军等. ARM嵌人式VxWorks实践教程[ M].北京:北京航空航天学出版社,2006config/ comps/ srC。第三方受限于这些规定,组件元素在组件描述[2]Wind River著王金刚,苏琪,杨锡励等译. VxWorks BSP文件中完全给出。建议第三方把组件源和目标元开发人员指南[M].北京:清华大学出版社,2003[3 ]陈智育,温彦军,陈琪等. VxWorks程序开发实践[ M].素置于一个特定目录下,如target/ config/ve -北京:人民邮电出版社,2004ndor_ .name。 组件描述文件( CDF)的位置取决[4]孔祥营,柏佳枝.嵌人式实时操作系统VxWorks及其开于组件集成在系统中的位置。发环境Torado. M].北京:中国电力出版社,2002若要在一个完整系统中集成新的组件,CDF[5] Wind River Systems Ine. VxWorks5. 5 BSP Developer's应该置于target/ config/ comps/VxWorks目录下。guide. U. S. A, 2002(上接第8页)ine - conmerce[A]. In ACM Conference on Electronic此外,本系统产生的客户/产品/时间匹配矩阵Commeree (EC - 99)[C]. New York: ACM Press,一方面可以帮助客户推荐合适的产品,有效进行客1999. 158 ~ 166.户关系管理,另一方面也可以为银行产品迅速定位[2] Konavir, Provost F. Applications of data mining to elec-tronic commerce[J]. Data Mining and Knowledge Discov-目标市场,有效支持银行市场营销活动。ery, 2001, 5(1~2):5 ~10.银行产品推荐有别于一般电子商务网站所销[3]Schafer J B, KosntanJ A, Riedl J. E - commence Recom-售产品的推荐过程,它是建立于银行内部的系统,mendation Applieation [ Z]. Data Mining and Knowledge并不直接与客户对话,而是通过CRM部门或市场Discovery, 2001.营销部门间接体现其推荐的结果和效用。随着呼[4]Sarwar, B. M,Karypis, C., Konstan, J. A, and叫中心的不断成熟,网上银行的更高点击以及无线Riedl, J Application of Dimensionality Reduction in Rec-网络服务的更多需求,银行产品推荐也将越来越多ommender System- A Case Study. In ACM Web KDD的直接与客户面对面,其实现模式和系统效率要求2000 Workshop, 2000.将对推荐系统提出更高的要求。[5]D中国煤化I_lybrid Approaches t0_istomer Lifetime Val-MYHCNMHGumaldfSystemandSoftware 77(2005) : 181~ 191.[1]Schafer J B, Kosnlan J A, Riedl J. Reconmender systems

论文截图
下一条:数字导航技术
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。