l 支持C++开发
除了支持通常的C++ 开发库外(包括I/O流开发库和C++模板类库),作为可选组件的WIND基础类库提供了VxWorks包装类库和来自Rogue Wave的Tools.h++类库。
l 共享内存对象
VxMP选项提供的内存共享机制包括共享信号量,消息队列,在不同处理器上的任务间共享的内存区域。
l 虚拟内存(包含VxVMI选项)
VxWorks既提供了捆扎的虚拟内存支持,对自带内存管理单元的板也可提供非捆扎的虚拟内存支持。具有使部分内存不可缓冲和只读的功能,以及虚拟内存管理的函数集。
l 运行在目标机上的工具
在Tornado开发系统中,开发工具运行在主机上,参见Tornado用户指导。然而,运行在目标机上的工具,模块上载,模块下载,符号表等都可以配置到VxWorks的核中。
l 帮助函数库
VxWorks提供了功能丰富的帮助函数集,包含中断处理,定时器,消息纪录,内存分配,格式化字符串,输入字符串,线性和环形缓冲区的操作,链表和ANSI-C函数库。
l 性能统计工具
VxWorks性能统计工具包括定时执行一些函数来统计任务的CPU利用率。
l 目标机代理
目标机代理使得Tornado开发工具远程调试VxWorks应用成为可能。
l 板支持包
VxWorks包含很多种板的板支持包。板支持包提供硬件初始化,中断安装,定时器,内存映射等函数
l VxWorks模拟器和逻辑分析仪
Tornado附带了所有主机平台上的VxWorks模拟器和逻辑分析软件,VxSim模拟VxWorks目标机,用来做原型开发和搭建测试环境。WindView为模拟环境提供了先进的调试工具。
VxSim提供了网络支持和运行多个模拟器的能力。WindView为所有WRS的板支持包提供了软件逻辑分析仪
l 网络工具
VxWorks提供了对另外一个VxWorks的透明的存取机制和TCP/IP网络系统,MUX接口(包括多点传送,polled-mode以太网,zero-copy传输),BSD兼容的socket编程接口,远程过程调用(RPC),SNMP(可选),网络文件存取(包括NFS的客户端和NFC服务器,以及其它的网络文件存取工具例如RSH, FTP, 或且TFTP),BOOTP,ARP代理,DHCP, DNS, OSPF (可选),和RIP。不管是松耦合的串行线连接或以太网连接还是利用共享内存的紧耦合的底板总线连接,所有的VxWorks网络支持都遵照INTERNET协议。
参见VxWorks网络编程指导。
1.1. 多任务和任务间通信
现代实时系统都是基于相互补充的多任务概念和任务间通信概念。多任务环境可以允许将一个实时应用划分为多个独立的任务,每个任务有自己独立的执行线索和系统资源集。任务间通信允许这些任务同步和协调动作。
VxWorks多任务核WIND使用了中断驱动的,基于优先级的任务调度。它具有任务切换快速和中断开销低的特色。在VxWorks下,任何一个函数都可以作为一个任务来执行,有自己的运行场景和堆栈。控制任务的功能包括挂起,继续,删除,延时,改变优先级等。
WIND核提供了信号量作为基本的任务同步和互斥机制。WIND有多种信号量,每种信号量适合于不同的应用需求:二进制信号量,计数信号量,互斥信号量,和POSIX信号量。所有这些类型的信号量都是快速和高效的。这些信号量除了被应用开发者使用,也被广泛应用于VxWorks的高层功能开发中。
除了利用信号量进行任务间通信外,VxWorks还提供了消息队列,管道,套接字,和信号。可选组件VxMP提供了共享内存对象作为运行在不同处理器上的任务间的通信机制。