VxWorks提供的目标机防真器VxSim,使开发者可独立于硬件环境而先行开发应用程序,从而节省了新产品的研发时间和硬件方面的开销。
VxWorks具有可视化图形界面的调试工具,很大程度地方便了开发者的调试工作[17]。
(3)VxWorks具有较好的兼容性。VxWorks是最早兼容POSIX1003.1b标准的嵌入式实时操作系统之一,同时是POSIX组织的主要成员。
VxWorks的TCP/IP协议栈部分与BSD4.4版本的TCP/IP除了在实时性方面有较大差别外,其他方面基本兼容。这使得基于BSD4.4Unix Socket的应用程序可以很方便地移植到VxWorks中,移植的主要工作也在于保证系统的实时性方面。
VxWorks良好的兼容性,使其在不同运行环境间可以方便的移植,从而使用户在开发和培训方面所做的工作得到保护,减少了开发周期和经费[18]。
(4)VxWorks支持多种开发和运行环境。VxWorks的应用范围和领域比较广泛。系统运行环境支持PowerPC、68K、CPU32、SPARC、i960、x86、MIPS等众多CPU及支持RISC、DSP等技术。支持多种硬件环境也是VxWorks得以流行的一个重要原因,同时,从中可以看出,它同世界诸多硬件厂商有着紧密的关系。
在具备上述一些优点的同时,VxWorks自身也有不少的缺陷。
(1)VxWorks目前版本的PPP协议有一定局限性。VxWorks自带的PPP协议包目前只能支持最多16路链路。这使得用户在开发基于PPP协议的应用程序时有一定的局限性。
(2)VxWorks的任务间通信机制有一定的缺陷。VxWorks支持多种任务间通信的机制,如管道互斥信号量、共享数据结构、消息队列、信号量、套接字及信号。但不支持两种基本的手段即邮箱和事件无事件机制使得在实现多个任务在多个事件间同步时必须由应用程序开发者开发某种同步这些任务的机制来代替事件同步手段。而无邮箱机制则使两个任务在交换最新信息时不得不使用消息队列,从而影响交换信息的速率[19]。文献综述
(3)开发环境Tornado中项目管理能力不足。VxWorks的开发环境Tornado在其新版本中引入了项目的概念。使得软件项目的开发和管理更加便利。但新的项目的缺陷在于缺乏有效的项目管理工具来产生编译用的,同时也不能方便地浏览函数内部的实现细节。这对应用程序开发和调试有一定影响。
(4)VxWorks技术支持的不足。VxWorks的帮助文档缺乏必要的细节。例如,如何应用系统提供的API进行应用程序开发、各组件功能的具体描述和实现过程等。如何在不同硬件环境上移植VxWorks的BSP文档也讲得较为肤浅。增加了学习和掌握VxWorks的难度,也延长了掌握它的时间[20]。
综上所述,可以看出,尽管存在着一定的缺陷和不足,VxWorks仍不失为一个在性能和网络处理能力上具一定优点的嵌入式实时操作系统。尤其在涉及嵌入式网络产品的应用上具一定的优势。
2.1.2 VxWorks的适用环境
VxWorks是交叉开发环境的一个组成部分,运行在目标机上,而程序的开发则在主机上进行,主机上需安装开发环境—Tornado。在Host和Target间提供TCP/IP,In-Circurt Emuator等联系方式。
可以运行Tornado的主机有:Unix Workstation、PC(WindowsNT、Windows95等)。
可运行VxWorks的目标机有:PowerPC、68K、CPU32等。
VxWorks采用模块化设计方法,把依赖于硬件环境的函数和信息分离出来,放入称为BSP的组件中。而BSP Libraries向上层软件提供一致的接口。VxWorks在Target上运行需要相应的BSP的支持[21]。源.自/751·论\文'网·www.751com.cn/
2.1.3 开发环境的基本结构
VxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU, VxWorks支持32位的CPU。用户自己设计开发的板子通常没有软件的自开发能力,所以需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target),宿主机和目标机之间的关系图如图1表示。宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境可以运行在WindowsNT、Windows95或Unix下,包括交叉编译器和交叉调试器。所谓交叉编译器就是在宿主机一上编译生成可以在目标机代码Image,交叉调试器就是通过宿主机和目标机之间的某种祸合方式实现前后台调试[22]。我们称主机上这套集成开发环境为Tornado。编译生成目标机上的可执行代码为VxWorks。