1 综述
WRS(Wind River System) 公司是国际贺搏著正李名的嵌入式实时 *** 作系统的供应商。其产品 VxWroks 早期运行在 VRTX 、 pSOS 及自身运行较慢的 WIND 内核等实时内核之上,从 5.0 发行起,不再支持别的内核,只运行自己的 WIND 内核(重写的 WIND 内核)。这个系统的基本设计思想是要充分利用 VxWORKS 和 Unix/Windows 的优点,使之与嵌入式软件相互补充达到最优。
Unix 和 Windows 虽然用户界面友好、开发工具丰富,但是由于嵌入式实时系统的时间、空间的局限性,他们不适用于实时应用开发。传统的实时 *** 作系统提供的用于开发的环境资源(非实时组件)又非常贫乏。 VxWORKS 使嵌入式系统开发人员能在嵌入开发环境下更好的使用 Unix/Windows 。
VxWORKS 能够一方面处理紧急的实时事务,另一方面,让主机用于程序开发和非实时的事举拍迟务。开发者可以根据应用需要恰当地裁减 VxWORKS 。开发时可以包含附加的网络功能加速开发过程,在产品最终版本中,再去掉附加功能,节省系统资源。
WRS 公司还提供最新一代的 IDE---- 主机上的集成开发环境 Tornado, 开发者通过 Tornado 来编辑、编译、连接和存储实时代码,但是实时代码的运行和调试都在 VxWORKS 上进行。最终生成的目标映像可以脱离主机系统和网络,单独运行在 ROM 、磁盘(软 / 硬)或 FLASH 上。主机系统和 VxWORKS 可以在一个混合应用中共同工作:通过网络联接,主机使用 VxWORKS 系统作为实时服务器。
1995 年开发出的 Tornado ,赢得电子设计新闻该年度的“嵌入式开发软件创新奖“( Electronic Design News' “Embedded Development Software Innovation of the Year” award ) [9] 。
2 特点
• 支持多种硬件环境
VxWORKS *** 作系统支持的 CPU 包括: Power PC 、 68K 、 CPU32 、 Space 、 i960 、 x86 、 Mips 等等;同时支持 RISC 、 DSP 技术。
• 微内核结构,任务间切换时间短,中断延迟小,网络流量大。
• 较好的可剪裁能力,可裁减组件超过 80 个,用户通过交叉开发环境方便地进行配置。
• 支持应用程序的动态连接和动态下载,使开发者省去了每次调试都将应用程序与 *** 作系统内核进行连接和下载的步骤,缩短了编辑 / 调试的周期。
• 较好的兼容性:兼容 POSIX1003.1b 标准( Portable Operating System Interface for computer Environments,= Portable Operating System UNIX , IEEE 1003.1 ) 。
• 高可靠性、高可用性、高安全性。
3 组成
VxWORKS 包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等部分,占用很小的存储空间,支持高度裁减,保证系统能以较高的效率运行。 VxWORKS 体系结构如图 1.5 所示 [9][10][59] 。
VxWORKS 包括以下部分:
• Wind 内核
Wind 内核包括基于优先级的抢占式多任务调度机制、任务间的同步和进程间的通讯机制以及中断处理、看门狗和内存管理机制。不仅提供多种信号量支持任务间同步和互斥的机制,而且提供消息队列、管道、套接字和信号等机制支持进程间通信。
• I/O 系统
VxWORKS 提供了快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓冲 I/O 和 POSIX 标准的异步 I/O 。还包括多个驱动程序(包括网络驱动、管道驱动、 RAM 盘驱动、 SCSI 驱动、磁盘驱动、显示驱动、键盘驱动、并口驱动等)。
• 文件系统
VxWORKS 提供了快速文件系统适合于实时系统应用。它拥有多种支持使用块设备的本地文件系统。这些设备都使用一个标准接口,从而使得文件系统能够灵活地在设备驱动程序上移植。
• 板级支持包 BSP(Board Support Package)
板级支持包对各种板的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包括一个 ROM 启动( Root ROM )或其他启动机制。
• 网络设施与产品
• 虚拟内存与共享内存
VxWORKS 的 VxWMI 为带有 MMU ( Memory Mapping Unit )的目标板提供了虚拟内存机制。 VxMP 提供了共享信号量、消息队列和不同处理器之间的共享内存区域。
• 目标代理( Target Agent )
目标代码遵循 WDB(Wind Debug) 协议,允许目标机与主机上的 Tornado 开发工具相连。如图 1.6 所示,目标代理是以 VxWORKS 的一个任务的形式运行。
Tornado 目标服务器向目标代理发送调试请求。调试请求通常决定目标代理对系统中其他任务的控制和处理。默认状态下,目标服务器与目标代理通过网络进行通信,用户也可以改变通信方式。
VxWORKS *** 作系统自 1996 年进入中国,广泛应用于通信、国防、工业控制、医疗设备等嵌入式实时应用领域。它是研究嵌入式实时 *** 作系统的一个极好对象。
VxWorks系统支持静态分配和动态分配相合的内存分 配。 低端内存区和VxWorks区采用静态分配,而保证 VxWorks的实时性和稳定性。 VxWorks的内存 *** 作都是基于内存分区的,而不是 段页分区。 动态分配VxWorks中主要涉及的内存单元的概念有 ? 内存分区 :包含分区自身的描述信息(一个结构体 malloc分配)和一个或多个内存池,描述信息保存在系 统的内存分区中,而内存池就是该分区实际拥有的内 存空间。 内存池:内存池是一块连续的内存区域,包含一个或 多个内存块,通过memPartAlloc、memPartFree来申 请和释放。 内存块:每个内存块都有一个内存块头来描述自己 动态分配 内存分区在刚创建完毕时,只有一个内存池,用户程 序可在稍后往该分区中添加别的内存池,在一个内存 分区中,内存池之间的地址不一定是连续的。 VxWorks在启动过程中会创建一个包含系统内存池的 系统分区。 *** 作系统和通常的大部分用户应用程序对 内存的 *** 作,都发冲兄猜生在系统内存池中。 内存管理方式 要对空闲内存块进行合适的管理---自由链 ? 自由链是利用每个空尘毕闲内存块的开始几个单元存放本 空闲块的大小及下个空闲块散型的开始地址。 可以通过链首指针可以检索到所有的空闲块。 自由链没有大小的限制,容易添加和删除节 内存分配算法 VxWorks采用最先适应法来动态分配内存? ? 最先适应法要求可用表或自由链按起始地址递增的次 序排列。该算法最大特点是一旦找到大于或等于所要 求内存长度的内存块,则结束搜寻。然后,该算法从 所找到的内存块中划分出所要求大小的内存空间分配 给用户,并把余下的部分进行合并(如果相邻两块是空 闲的),合并后的内存块留在可用表或自由链中,并修 改其相应的表现。vxworksVxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时 *** 作系统。Tornado 是WRS 公司推出的一套实时 *** 作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、防真环境和工具。
VxWorks *** 作系统有以下部件组成:
内核(wind):
多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度)
任务间的同步
进程间通信机肆卜制
中断处理
定时器和内岁咐存管理机制
I/O 系统
VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的Basic I/O(creat(), remove(), open(),close(), read(), write(), and ioctl().),Buffer I/O (fopen(), fclose(), fread(), fwrite(), getc(), putc()) 以及POSIX 标准的裂雀穗异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等
文件系统
支持四种文件系统: dosFs,rt11Fs,rawFs 和 tapeFs
支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。
板级支持包 BSP(Board Support Package)
板级支持包向VxWorks *** 作系统提供了对各种板子的硬件功能 *** 作的统一的软件接口,它是保证VxWorks *** 作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。 每个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。
网络支持:
它提供了对其它VxWorks系统和TCP/IP 网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。
系列网络产品:
WindNet SNMP
WindNet STREAMS
WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、
CMIP/GDMO、分布式网络管理等。
这些产品扩展了VxWorks的网络特性,并增强了嵌入式处理器的网络特性
虚拟内存( VxVMI)与共享内存(VxMP)
VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。
VxMP 提供了共享信号量,消息队列和在不同处理器之间的共享内存区域。
目标代理(Target Agent)
目标代理遵循 WBD(Wind Debug)协议,允许目标机与主机上的 Tornado 开发工具相连。在目标代理的缺省设置中,目标代理是以 VxWorks 的一个任务tWdbTask 的形式运行的。
Tornado 目标服务器(Target Server)向目标代理发送调试请求。调试请求通常决定目标代理对系统中其它任务的控制和处理。缺省状态下,目标服务器与目标代理通过网络进行通信,但是用户也可以改变通信方式。
实用库
VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、消息登录、 内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和 ANSI C 标准。
基于目标机的工具
在 Tornado 开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载模块加入 VxWorks。
总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)