共1条
1/1 1 跳转至页
(一)VxWorks/Tornado(抛块砖头)
南大小百合
助理工程师
来自:
发表总数:9
查看 短消息 电子邮件
--------------------------------------------------------------------------------
发信人: mayun (wind), 信区: Embedded
标 题: (一)VxWorks/Tornado(抛块砖头)
发信站: 南京大学小百合站 (Wed Jan 9 16:01:42 2002)
(一)嵌入式实时操作系统VxWorks及开发环境Tornado(感谢该书作者孔翔营先生)
1.VxWorks发展
这是从VxWorks Faqs得到的。1981年,Jerry Fiddler 和David Wilner开始创建WRS。开始
主要作为一个面向实时、嵌入式系统和其他感兴趣的东西的服务咨询商。Francis Coppol
a是最早的顾客之一。
最初,他们写了大量的程序,其中的一大部分,为嵌入式系统增加了非常优秀的特征,包
括一些在那个时代前所未闻的一些东西,像TCP/IP网络协议和NFS,等等。
最初VxWorks是运行VRTX、pSOS以及早期的较慢的WIND核等实时核之上的软件集合的名子。
从5.0发行起,现在VxWorks不再运行于其他核之上,只运行于它自己的WIND核之上,这个
WIND核由John Fogelin重写。
随着对VxWorks系统感兴趣的人越来越多,WRS卖出了很多这个系统的拷贝,逐渐成长为一
个成功的公司。
1995年,开发出Tornado,赢得了电子设计新闻该年度的“嵌入式开发软件创新” 奖(El
ectronic Design News’ "Embedded Development Software Innovation of the Year”
award )。
2.VxWorks的特点
VxWorks操作系统是现在所有独立于处理器的实时系统中最具特色的操作系统。
VxWorks系统运行环境支持的CPU包括:Power PC、68K、CPU32、SPARC、i960、x86、Mips
等;同时支持RISC、DSP技术。支持多种硬件环境也是VxWorks 得以流行的重要原因,同时
,从中可以看出,VxWorks 同世界许多硬件厂商有着紧密的关系。
VxWorks的微内核Wind是一个具有较高性能的、标准的嵌入式实时操作系统内核,其主要特
点包括:快速多任务切换、抢占式任务调度、任务间通信手段多样化等。该内核具有任务
间切换时间短、中断延迟小、网络流量大等特点,与其他嵌入式实时操作系统相比具有一
定的优势。
VxWorks系统具有较好的可剪裁的能力,可剪裁的组件超过80个,用户可以根据自己系统的
功能目标通过交叉开发环境方便地进行配置。
VxWorks支持应用程序的动态连接和动态下载,使开发者省去了每次调试都将应用程序与操
作系统内核进行连接和下载的步骤,缩短了编辑—调试的周期。
VxWorks具有较好的兼容性。VxWorks良好的兼容性,使其在不同运行环境间可以方便的移
植,从而使用户在开发和培训方面所做的工作得到保护,减少了开发周期和经费。
VxWorks是最早兼容POSIX1003.1b标准的嵌入式实时操作系统之一,同时也是POSIX组织的
主要会员。
VxWorks的TCP/IP协议栈部分与BSD4.4版本的TCP/IP除了在实时性方面有较大差别外,其他
方面基本兼容。这使得基于BSD4.4 UNIX Socket的应用程序可以很方便地移植到VxWorks中
去。
VxWorks还是第一个通过Windows NT测试的可以在Window NT平台进行开发和仿真的嵌入式
实时操作系统。
同时支持ANSI C标准,并通过ISO9001的认证。
3.VxWorks 操作系统组成
VxWorks 操作系统包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系
统应用等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较
高的效率运行。VxWorks体系结构框图如图2.2。
VxWorks由以下几个主要部分组成:
1 高性能的实时操作系统核心 wind
VxWorks 的核心,被称作 wind,包括多任务调度(采用基于优先级的抢占方式),任务间
的同步和进程间通信机制以及中断处理,看门狗和内存管理机制。一个多任务环境允许实
时应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和它自己的一套系
统资源。进程间通信机制使得这些任务的行为同步、协调。
wind使用中断驱动和优先级的方式。它缩短了上下文转换的时间开销和中断的时延。在 V
xWorks 中,任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和堆栈。还有
一些其它的任务机制可以使任务挂起、继续、删除、延时或改变优先级。
wind 核提供信号量作为任务间同步和互斥的机制。在 wind 核中有几种类型的信号量,它
们分别针对不同的应用需求:二进制信号量、计数信号量、互斥信号量和POSIX 信号量。
所有的这些信号量是快速和高效的,它们除了被应用在开发设计过程中外,还被广泛地应
用在 VxWorks 高层应用系统中。对于进程间通信,wind 核也提供了诸如消息队列、管道
、套接字和信号等机制。
2 I/O 系统
VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓冲 I/
O 和POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:
网络驱动: 用于网络通讯(以太网、共享内存)
管道驱动: 用于任务间通讯
RAM盘驱动: 用于常驻内存的文件
SCSI驱动: 用于SCSI硬盘、软盘、磁带
键盘驱动: 用于x86键盘(仅仅存在于x86BSP)
显示驱动; 用于x86VGA文本显示(仅仅存在于x86BSP)
磁盘驱动: 用于IDE硬盘、软盘(仅仅存在于x86BSP)
并口驱动: 用于PC风格的目标机。
3 文件系统
VxWorks 提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘
)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设
备驱动程序上移植。另外,VxWorks 也支持 SCSI 磁带设备的本地文件系统。
VxWorks I/O 体系结构甚至还支持在一个单独的 VxWorks 系统上同时并存几个不同的文件
系统。
VxWorks 支持四种文件系统:
dosFs: 与MSDOS兼容的文件系统
rt11Fs:一种与RT11操作系统兼容的文件系统。
rawFs: raw disk file system。这种文件系统将整个盘作为一个文件,允许根据字节偏
移读写磁盘的一部分,其优点是仅仅需要底层I/O操作,因而读写速度快,并且大小没有限
制。
tapeFs: SCSI顺序文件系统。用于磁带设备,不使用标准的文件和目录结构,将整个磁带
作为一个大文件来处理。
TrueFFS: 闪存文件系统
cdRomFs: VxWorks提供的cdromFs 文件系统,应用可读取任何按照ISO 9660文件系统标
准格式化的CD-ROM。一旦cdRomFs已经初始化,并且已经登录到一个CD-ROM块设备,应用就
可调用标准POSIX I/O调用,访问CD-ROM设备上的数据。VxWorks目前只支持SCSI接口的CD
-ROM,我们已经开发了IDE接口的CD-ROM驱动程序,请参考附录。
另一方面,普通数据文件,外部设备都统一作为文件处理。它们在用户面前有相同的语法
定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。
4
板级支持包 BSP(Board Support Package)
板级支持包对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产
生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级
支持包括一个 ROM 启动(Boot ROM)或其它启动机制。
5 网络设施
VxWorks的网络结构如图2.3所示。它提供了对其它网络和 TCP/IP 网络系统的"透明"访问
,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件
访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOT
P 和 ARP 代理。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存
的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。
6 先进的系列网络产品
VxWorks内的WindNet 是先进的、系列的网络产品,这些产品扩展了VxWorks的网络特性并
增强了嵌入式处理器的网络特性。包括以下产品:
BSD 4.4 TCP/IP
IP, IGMP, CIDR, TCP, UDP, ARP
RIP v.1/v.2
标准Berkeley 套接口,zbufs(zero-copy socket)
SLIP, CSLIP, PPP
BOOTP, DNS, DHCP, TFTP
NFS, ONC, RPC
FTP, rlogin, rsh, telnet
SNTP
具有MIB编译器的WindNet SNMP v.1/v.2c (可选)
WindNet OSPF v.2 (可选)
WindNet STREAMS SVR4(可选)
WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、CMIP/G
DMO、分布式网络管理等。
7 虚拟内存(即 VxVMI 选项)与共享内存(即 VxMP 选项)
VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。VxMP 提供了共享信号量,消息队列和
在不同处理器之间的共享内存区域。
8 目标代理(Target Agent)
目标代理遵循 WBD(Wind Debug)协议,允许目标机与主机上的 Tornado 开发工具相连
。在目标代理的缺省设置中,如图2.4 所示,目标代理是以 VxWorks 的一个任务--tWdb
Task 的形式运行的。
Tornado 目标服务器(Target Server)向目标代理发送调试请求。调试请求通常决定目
标代理对系统中其它任务的控制和处理。缺省状态下,目标服务器与目标代理通过网络进
行通信,但是用户也可以改变通信方式。
9 实用库
VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗计时器、消息登录、内存
分配、字符扫描、线缓冲和环缓冲管理、链表管理和 ANSI C 标准。
10 基于目标机的工具
在 Tornado 开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标
机的Shell 和装载卸载模块加入 VxWorks。
关键词: VxWorks Tornado 抛块 砖头 实时
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |