VxWorks组件简介与映像定制方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VxWorks组件简介与映像定制方法
徐利锋、王莹、老大中
一、创建映像工程 Create a bootable VxWorks image
工程创建完毕后,工程管理工具为用户工程产生、拷贝了一系
列文件,这些文件显示在工程作业空间的Files选项卡中(如图1.1
所示)。这些文件都是创建工程时,系统自动创建的文件(有些文件
不可修改)。下面对这些文件进行详细的描述和说明。
linkSyms.c :
动态产生的配置文件。该文件包含的代码来自于VxWorks文档,而
VxWorks文档是参考适当的符号集而创建的。文件包行的是没有被
初始化的程序模块符号信息。该文件在工程任何时候发生变化时重
新产生,用户不需要对其编写和修改。
prjConfig.c :
一个动态产生的配置文件。该文件在工程任何时候发生变化时重新产生,用户不需要对其编写和修改。该文件包含的是当前VxWorks映像所包含组件的初始化代码。romInit.s :
包含引导Rom和基于Rom的VxWorks映像的初始化入口汇编代码。
romStart.c :
包含把VxWorks映像下载到RAM中的程序代码。
sysALib.s :
包含系统启动代码。这是VxWorks映像下载到RAM中启动启动以后执行的第一段代码。
sysLib.c :
包含与目标机或系统相关的C语言函数。该文件提供板级接口,通过该接口,VxWorks和应用程序的实现将与目标系统无关。
usrAppInit.c :
包含自启动型VxWorks映像用户应用程序入口函数usrAppInit(),类似与C语言的main()函数。用户可以把应用初始化程序增加到该函数里,如图1.2所示的usrAppInit.c文件窗口。usrAppInit ()函数是应用程序入口函数,当目标机系统加电后,首先初始化CPU,接着初始化目标机上的设备、安装设备驱动程序、创建设备等,然后进行系统的配置和系统引导所需要的资源申请等,最后执行
usrAppInit()函数。
(图1.2)
二、配置VxWorks模块
在生成用户自定义VxWorks映像前,应根据自己应用和目标机的需求,对VxWorks模块进行配置。这些配置包括C++模块、多媒体模块、图形模块、网络模块、开发工具模块、目标机硬件、操作系统模块等。所有的这些配置可以在用户工程作业空间上进行,其中当某个模块被选择后,它的名称以粗体字型显示;当未被选择时,他的名称以普通字型显示;未安装的模块,以斜体字型显示。如下图1.3所示。关于组件的添加与删除等具体应用方法,请参考《Tornado用户指南》第四章。
(图1.3)
2.1、C++ 支持组件的配置
VxWorks在默认情况下只支持C语言对其进行开发,如果想应用C++语言,必须在生成Vxworks 映像时加入(include)C++components组件(如图1.4)。可根据具体情况进行组件的选择与添加,各组件的简介可通过相应组件右键下的Propoties页获得(如图1.5)。
(图1.4)
(图1.5 “run static initializers”属性页)
2.2、VxCOM组件与VxDCOM组件的配置
DCOM(分布式组件对象模型,分布式组件对象模式)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在
Windows95或者其后的版本上)。
VxWorks提供了支持COM与DCOM开发的组件,如图1.6。
(图1.6)
2.3、VxFusion 组件的配置
VxFusion是一个Run-Time库,用来为那些松散结合的分布式系统提供VxWorks的消息队列接口。VxFusion可使基于VxWorks的应用超越微处理器进行无缝扩展,且不受地点或所用物质介质/逻辑传输器的影响。VxFusion用在全球通信、防御系统/航空系统和工业控制等常用多CPU的应用领域中特别合适(如图1.7)。
(图1.7)
2.4、application components组件的配置
若想让VxWorks映像中用户应用程序入口函数usrAppInit()起作用,即如果想在系统启动时自动执行用户添加在usuAppInit()中的代码,则必须包含这个组件(如图1.8)。
(图1.8)
2.5、development tool components组件的配置
本组件包括有程序运行时间函数库、事件响应函数库、动态下载C代码的编译器支持、WDB通信、WindView组件、loader组件、各种响应显示函数库、符号表组件、目标机shell组件等(如图1.9)。
(图1.9)
2.5.1、通信方式及目标机的配置
在VxWorks选项卡中,通过选择development tool components –> WDB agent components –> select WDB connection, 在VxWorks配置窗口里显示了目标机代理通信方式的选项,如下图1.10所示。这些选项中包括END连接、NetROM连接、网络连接、串口连接等。
(图1.10)
WDB agent services组件,除非刻意减小映像大小,采用系统默认就好。
在配置宿主机与目标机连接接口时,不可以同时配置两个或两个以上的连接接口模块,否则系统会出现配置错误的情况。组件各选项介绍如下:
(1)END连接方式的配置
当配置VxWorks为带有标准网络堆栈的映像时,目标机代理可以使用END连接。在VxWorks配置窗口上增加WDB END driver connection模块。
这种连接具有网络连接的特性,同时它带有一个轮询网络接口,所以这种连接支持系统级和任务