Tornado 及VxWorks介绍
目录
TORNADO 及VXWORKS介绍 ................................................................................... 1
第一章 TORNADOII嵌入式开发系统概述 ............................................................... 1
1.1TORNADO开发环境及VXWORKS嵌入式实时操作系统 ............................................. 1
1.1.1 VxWorks 嵌入式实时操作系统 ............................................................................... 1
1.2.2 TornadoII嵌入式开发系统 ..................................................................................... 1
1.2 TORNADOII嵌入式开发系统的主要应用领域 ........................................................... 2
第二章 嵌入式实时操作系统VXWORKS ....................................................................... 3
2.1 VXWORKS实时操作系统 ..................................................................................... 3
2.2
2.3 VXWORKS基本结构 ............................................................................................. 3 VXWORKS 的主要特点 ......................................................................................... 4
高性能的微内核设计 ............................................................................................ 4
良好的可移植性 ................................................................................................... 4 2.2.1 VxWorks操作系统的基本结构: .............................................................................. 3 2.3.1 2.3.2
2.3.3 良好的可裁剪性 ..................................................................................................... 5
2.3.4 网络系统 ............................................................................................................... 5
2.3.5 兼容POSIX1003.1b标准 ........................................................................................ 5
2.3.6 灵活而且快速的I/O文件特性 ................................................................................. 6
2.4 VXWORKS可用的主机/目标机和主要用户 ............................................................. 6
2.4.1 支持的主机 ............................................................................................................ 6
2.4.2 支持的目标机 ....................................................................................................... 6
第三章 TORNADOII嵌入式开发系统软件工具包 ............................................................ 8
3.1 TORNADOII特性简介 ............................................................................................ 8
3.2 TORNADOII核心工具 ............................................................................................ 8
3.2.1
3.2.2 VXSIM集成仿真器 ................................................................................................ 8 WindView ......................................................................................................... 10
3.2.3 强有力的命令行执行方式WindShell .................................................................... 10
3.2.4 系统对象检查工具Brower ..................................................................................... 10
3.2.5 集成调试器CrossWind ....................................................................................... 11
3.2.6 C/C++交叉编 译工具 .......................................................................................... 11
3.2.7
3.2.9 工程管理和配置工具(Project facility/Configuration) ............................... 11 动态上载/卸载器(Incremental Loader) ......................................................... 12 3.2.8 源代码分析仪(WindNavigator) ...................................................................... 12
3.3 WINDPOWER工具 .................................................................................................. 12
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5 软件“示波器”(ScopePak) ............................................................................ 12 性能检测包PerformancePak .............................................................................. 13 代码测试器CodeTest/Coverage ........................................................................ 14 CodeTest/Memory ............................................................................................. 15 WFC基础类库(Wind Foundationg Classes) ................................................... 16
3.3.5 Look! For Tornado ......................................................................................... 16
第四章 TORNADOII嵌入式开发系统可选组件 ............................................................. 17
4.1 概述 ................................................................................................................ 17
4.1.1 板级支持包开发工具BSP Developer’s Kit ....................................................... 17
4.1.2 虚拟内存接口VxVMI ........................................................................................... 17
4.1.3 支持紧密耦合共享内存多处理器结构的VxMP ......................................................... 17
4.1.4 支持紧密耦合共享内存多处理器结构的VxDCOM ...................................................... 17
4.1.5 支持松散耦合分布式多处理器结构的VxFUSION ..................................................... 17
4.1.6 闪存文件系统TrueFFS for Tornado................................................................... 18
4.2 板级支持包BSP DEVELOPER’S KIT .................................................................... 19
4.2.1 BSP Developer’s Kit Base Option ............................................................ 19
4.2.2 板级支持包开发工具高级包BSP Developer’s Kit Value Option ....................... 20
4.3 虚拟内存接口VXVMI ....................................................................................... 20
4.3.1 产品背景及概述 ............................................................................................... 20
4.3.2 产品特性 ......................................................................................................... 21
4.4 支持紧耦合共享内存多处理器结构的VXMP ....................................................... 22
4.4.1 VxMP产品概述 ............................................................................................... 22
4.4.2 VxMP产品特性 ............................................................................................... 22
4.5 支持紧耦合分布式多处理器结构的VXDCOM ....................................................... 23
4.5.1 VxDCOM产品概述 ............................................................................................. 23
4.5.1 VxDCOM产品特性 ............................................................................................ 23
4.6 支持松耦合分布式多处理器结构的VXFUSION ................................................... 24
4.6.1 VxFUSION产品概述 ........................................................................................ 24
4.6.2 VxFUSION特性及应用背景 .............................................................................. 24
4.7 闪存文件系统TRUEFFS FOR TORNADO .................................................................. 25
TrueFFS产品特性 .......................................................................................... 25 4.7.1 TrueFFS产品概述 .......................................................................................... 25 4.7.2
第一章 TornadoII嵌入式开发系统概述
1.1Tornado开发环境及VxWorks嵌入式实时操作系统
1.1.1 VxWorks 嵌入式实时操作系统
VxWorks是为实时嵌入式系统设计开发的操作系统软件,为程序员提供了实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。在嵌入式领域VxWorks占有大部分的市场份额。VxWorks可以在各种CPU硬件平台上提供统一的接口和一致的运行特征,为程序员提供了一致的开发、运行环境,避免了重复劳动。
VxWorks是一种功能强大而且比较复杂的操作系统,仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须有与之相适应的开发工具。Tornado就是为开发基于VxWorks应用系统而提供的集成开发环境,Tornado中包含的工具管理软件,可以将用户自己的代码与VxWorks的核心系统有效的组合起来,从而轻松而且可靠地完成嵌入式应用开发。
1.2.2 TornadoII嵌入式开发系统
TornadoII是Windriver公司开发的嵌入式软件开发环境。TornadoII开发环境在延续了TornadoI开发环境中优秀技术的基础上,增加并集成了很多易于使用,性能优异的工具。
TornadoII开发环境提供编写嵌入式实时应用程序的完整的软件开发平台。TornadoII给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。它包含三个高度集成的部分:
运行在宿主机和目标机上的强有力的交叉开发工具和实用程序
运行在目标机上的高性能、可裁剪的实时操作系统VxWorks
连接宿主机和目标机的多种通讯方式,如:以太网、串口线、ICE或ROM仿真器 1995年,TornadoII开发环境一经推出就获得了权威杂志EDN颁发的年度产品创新奖。
TornadoII嵌入式集成开发系统结构图
1.2 TornadoII嵌入式开发系统的主要应用领域
TornadoII嵌入式开发系统的主要应用领域主要包括数据网络、远程通信、医疗、消费电子、交通运输、计算机外围设备、数字图象、工业、航空、多媒体。
第二章 嵌入式实时操作系统VxWorks
2.1 VxWorks实时操作系统
用户在开发具有日益复杂的32位嵌入式处理器的产品时,需要一个用来连接产品应用程序和底层硬件的操作系统。这种操作系统应该具有可靠性、高实效性、可裁剪性、可协同工作等重要特点。
VxWorks操作系统是美国WindRiver公司于1983年设计开发出的一种嵌入式实时操作系统(RTOS),是TornadoII嵌入式开发环境的关键组成部分。VxWorks十分灵活,具有多达1800个功能的应用程序接口(API);而且适用范围广,可以用于从最简单到最复杂的产品设计;它可靠性高,而且具有高度的适用性,可以用于所有的流行的32位CPU平台。
2.2 VxWorks基本结构
2.2.1 VxWorks操作系统的基本结构:
图2-1 VxWorks基本体系结构
2.3 VxWorks 的主要特点
VxWorks实时操作系统包括微内核WIND、高级网络支持、强有力的文件系统和I/O管理、C++和其他标准等核心功能。这些核心功能还可以与WindRiver公司的其他产品以及320个WindRiver公司合作伙伴的产品联合使用。
2.3.1 高性能的微内核设计
微内核的主要特点(Wind Microkenel)有:
◆ 高效的任务管理
● 无限数目多任务,具有256个优先级。
● 具有优先级抢占和时间片轮转调度。
● 快速的、准确性的上下文切换
◆ 快速灵活的任务间通讯
● 三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。
● POSIX管道、记数信号量、消息队列、信号和调度。
◆
◆
◆
◆
◆
◆ 高度可裁剪性 动态连接和模块加载 高效的中断和异常事件处理 优化浮点支持 动态内存管理 时钟和记时工具
2.3.2 良好的可移植性
嵌入式应用通常需要将操作系统和应用程序方便地移植到目标硬件中,如果能够将依赖于硬件的低级代码和高级的应用程序和操作系统区分开来,移植工作将变得非常简单。VxWorks将依赖于硬件的低级代码设计成板级支持包(BSP)。任何一个要运行VxWorks的硬件板都需要相应的板级支持包,有了板级支持包的支持,移植高级代码时,只要改变相应的依赖于硬件的板级支持包即可,无须修改操作系统和应用程序。
2.3.3 良好的可裁剪性
VxWorks的可裁剪性,可以使开发者根据自己的应用程序需要,而不是根据操作系统的需要来分配系统资源。从需要几个KB字节内存的深层嵌入式设计到需要更多的操作系统的功能的复杂的高端系统,开发者可以从300多个独立的模块中选择。而且,这些模块本身也是可裁剪的,所以VxWorks可以为用户提供粒度极小的运行环境配置。
所有这些配置选项可以通过TornadoII的项目工具图形接口轻易地选择,或者使用TornadoII的自动裁剪特性,自动地分析应用程序代码并选择相应的选项。
2.3.4 网络系统
VxWorks是第一个支持工业标准TCP/IP的实时操作系统。包括:
IP,IGMP,CIDR,TCP,UDP,ARP,RARP,RIPV1/V2
Standard Berkeley Sockets
Z-bufs,NFS,RPC
PPP,BOOTP,DNS,DHCP,TFTP,FTP
RLOGIN,TELNET,RSH
WindRiver还支持可选的WindNet产品:SNMP,OSPF,STREAMS等。WindRiver还通过提供工业级最广泛的网络开发环境来加强这些核心技术,这主要是通过 WindLink for Tornado伙伴计划来实现的。高级的网络解决方案包括:
ATM,SMDS,FRAME RELAY,ISDN,SS7,X.25,V5等广域网协议
IPX/SPX,APPLETALK,SNA局域网协议
分布式网络管理RMON,CMIP/GDMO,基于Web 的解决方案
CORBA分布式计算机环境
2.3.5 兼容POSIX1003.1b标准
VxWorks支持POSIX 1003.1b的规定和1003.1中有关基本系统调用的规定,其中包括进程初始化、文件和目录、I/O初始化、语言服务、目录管理。而且VxWorks还支
持POSIX1003.1b的实时扩展,包括异步I/O、记数型信号灯、消息队列、信号、内存管理和调度控制等。
2.3.6 灵活而且快速的I/O文件特性
VxWorks提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设备驱动程序上移植。
VxWorks也支持SCSI,还支持在单独的VxWorks系统上同时并存几个不同的文件系统。这些文件系统包括:
POSIX异步I/O和目录管理
SCSI支持
兼容MS-DOS文件系统
RAW Disk文件系统
TrueFFS闪存文件系统
ISO9660 CD-ROM文件系统
PCMCIA支持
2.4 VxWorks可用的主机/目标机和主要用户
2.4.1 支持的主机
Sun-4:Sun OS 4.1.x;Solaris 2.4/2.5;Solaris 2.5.1/2.6;Solaris 2.7 HP 9000/700:HP-UX 9.0.7;HP-UX 10.10;HP-UX 10.20
PC:Win95,Win98,WinNT 3.51,WinNT 4.0
2.4.2 支持的目标机
Motorola 68K
68000;68010;68020;68030;68040;68060;CPU32
Motorola ColdFire
MCF51xx;MCF52xx;MCF53xx
Motorola/IBM PowerPC
PPC4xx;PPC6xx;PPC7xx;MPC5xx;MPC8xx;MPC82x
Motorola M-Core
Intel X86
i386;i486;Pentium;Pentium-Pro
Intel ARM,StrongARM
SA-110;SA-1100;SA-1110
NEC
V86x;V83x
i960
KA/KB/CA/JX/PR;RP/RD
NEC/LSI MIPS
R3K;R4K;Vr41xx;R4700;CW400x;CW4011;R5K
HITACHI SH
SH-1;SH-2; SH-3; SH-4; SH-DSP; SH3-DSP;
SUN SPARC
UltraSPARC;SPARC
ST-20
TriCore
2.4.3 支持多种BSP
集成多种单板的BSP,缩短开发周期。
第三章 TornadoII嵌入式开发系统软件工具包
3.1 TornadoII特性简介
嵌入式产品的复杂度越来越高,而同时生产周期也越来越紧张,这种情况给嵌入式开发人员带来了巨大的压力。用户们则希望以更低的价格获得更多的性能。现在市场上最热门的产品应该是快速而且更加智能化,可以运行更多代码的产品。所以开发人员必须能够快速启动并且快速开发。
TORNADOII是一个开放的,而且独立于硬件的软件解决方案,它可以运行在90%的32位嵌入式处理机体系结构上,有效地加速设计和开发的进程。TORNADOII的开放特性使得它非常易于与第三方产品集成,而且在WindLink合作计划的推动下,TORNADOII的工具愈加丰富和成熟,并且可以专注于互连网络和JAVA上。
TORNADOII是一个用于实时嵌入式应用的完整的软件开发平台,可以用于UNIX和Window 95/98/NT,它包括三个高度继承的部件:
TORNADOII工具,一整套完整的交互式开发工具和实体
VxWorks嵌入式实时操作系统
主机和目标机之间全方位的通信选择
TORNADOII的开放的体系结构以及符合企业标准的特性使得开发人员可以轻松地开发不同厂家的系统并且以最小地代价移植到不同地处理器上。
3.2 TornadoII核心工具
TornadoII核心工具包(CORE TOOLS)主要包括以下几项:
3.2.1 Tornado编辑器
3.2.2 工程管理和配置工具(Project facility/Configuration)
VxWorks中的工程管理工具是一个非常方便而且有用的图形化管理工具。它可以对Vxworks操作系统及其组件进行配置,组织、配置和建立Vxworks应用程序,根据应
用程序进行依赖性分析后,自动裁剪和配置VxWorks。Project中的检查功能还可以对开发人员定义的配置选项进行检查,并以醒目的方式标明冲突的配置。
更为有用的是Project工具还提供了生成不同VxWorks影象的功能。开发人员可以在Project中指定生成VxWorks的影象并且加入应用程序模块,从而为产品阶段的开发提供了非常便利的手段。
3.2.3 编译器
Tornado可以为用户提供支持C语言和C++语言的交叉编译器和类库。
编译器包括:GNU的C/C++编译器和Diab C/C++编译器。类库包括VxWorks类库和tool.h类库,为提供一套完整的开发工具系列而支持的工具集合:
cpp,c的预处理器
gcc,c和c++的编译器
make,程序自动编译连接工具
ld,可编程的静态连接器
as,可移植的汇编器
二进制工具
3.2.4 VXSIM集成仿真器
许多嵌入式的开发人员发现为满足应用的要求,商用的硬件并不能够满足要求,所以需要开发自己的定制的硬件。在硬件正在开发和调试的过程中,如果能够同时开始软件的开发和调试,那么就可以有效地缩短缩短产品的开发周期。VxSim就是这样的产品。VxSim可以在主机的环境上模拟一个VxWorks环境,用户可以在这个模拟的环境下开发软件程序,使用Tornado2 IDE,从而实现软硬件的同步开发。
VxSim是一个完整的Tornado2和VxWorks应用的原型模拟工具。它可以允许硬件开发完成之前先行开发软件,在开发早期实现软件的测试。VxSim还具有一定的模拟通用I/O设备的功能,如串口,而且可以模拟文件系统和网络
3.2.5 WindView
嵌入式的开发已经变的越来越复杂,实时任务也越来越多,如果没有复杂的系统级可视工具支持,最终的系统几乎是不可读的。由于系统内部的运行不可知,许多开发者可能会非常困惑:“为什么要用200ms才能接受一个键盘中断?”
WindView正是解决这类困惑的工具,它是一个软件逻辑分析仪,可以深入地了解任务的工作状态,同时跟踪系统的有用信息,如中断,上下文切换和任务阻塞等。所以,WindView可以向开发者提供目标机硬件上实际应用程序的运行情况并且可以过滤掉无关的信息。
WindView在1994年一经推出,立即获得了计算机界的一致好评。这是世界上第一个可以让开发人员看到正在目标机上运行的任务,中断,对象的运行情况的工具。开发人员可以在WindView的屏幕上看到系统中各种对象,如信号灯,消息队列,信号,任务,计时器和用户事件的发生序列及时间。WindView有以下三个重要的特性:
快速集中:可以帮助用户快速地分离应用中的关键区域;
深入分析:分析事件内部的特性;
随处可用:无须考虑目标机的类型就可以使用WindView。
3.2.3 强有力的命令行执行方式WindShell
Tornado的命令执行工具WindSh是Tornado所独有的功能强大的命令解释器,可以直接解释执行C语句表达式,调用目标机上C的函数、查看符号表中的变量、还可以直接执行TCL语言。
3.2.4 系统对象检查工具Brower
Tornado的目标机系统浏览器Browser是Tornado的一个图形化组件,它可以提供目标机中系统对象,如任务、信号灯、消息队列、内存分区、定时器、模块、变量、堆栈等的系统信息,也可以显示内存的使用信息。
3.2.5 集成调试器CrossWind
CrossWind是一个源代码集成调试器,支持任务级和系统级调试,支持混合代码和汇编代码显示,支持多目标机同时调试。
CrossWind沿用了GNU Debuger 4.17版本,并且进行了VxWorks定制。在CrossWind中,开发者可以成组地观察表达式的观察窗口;可以在调试器的图形用户界面中迅速改变变量、寄存器和局部变量的值;可以为不同组的元素设定根值数;并且可以用分类的方法提供信息,使得调试工作效率更高。在提供GUI调试方法的同时,也有命令行方式,开发者可以根据自己的使用背景予以选择。
CrossWind中有两种调试方式:任务级和系统级。在任务级调试中,程序员可以在单个任务中设置断点,这种断点只对该任务有效,其他任务和系统仍然持续运行。系统级断点可以在整个系统的运行时间轴上设置断点,一个断点可以将整个系统,包括任务和操作系统全部停下来,可用于调试多任务或者是中断处理程序。
3.2.6 C/C++交叉编 译工具
Tornado可以为用户提供支持C语言和C++语言的交叉编译器和类库。
编译器包括:GNU的C/C++编译器和Diab C/C++编译器。类库包括VxWorks类库和tool.h类库。
3.2.7 工程管理和配置工具(Project facility/Configuration)
VxWorks中的工程管理工具是一个非常方便而且有用的图形化管理工具。它可以对Vxworks操作系统及其组件进行配置,组织、配置和建立Vxworks应用程序,根据应用程序进行依赖性分析后,自动裁剪和配置VxWorks。Project中的检查功能还可以对开发人员定义的配置选项进行检查,并以醒目的方式标明冲突的配置。
更为有用的是Project工具还提供了生成不同VxWorks影象的功能。开发人员可以在Project中指定生成VxWorks的影象并且加入应用程序模块,从而为产品阶段的开发提供了非常便利的手段。
3.2.8 源代码分析仪(WindNavigator)
如果想透彻地了解大型C或C++程序的结构是一件非常困难的工作,如果该程序来自第三方,难度就更大了。一般而言,这类程序会包含上千个文件,函数和类。但是,开发人员又不得不对这样的程序进行升级,维护和调试的工作。所以在Tornado中包含一个源代码分析仪(WindNavigator),它可以浏览源代码,提取出有用的信息后生成一个高效率的数据库,并且用图形来显示函数调用关系,快速进行代码定位。在几分钟之内,可以扫描数千行的程序。
3.2.9 动态上载/卸载器(Incremental Loader)
Tornado的动态上载工具(Incremental Loader)可以动态的上载或卸载新增模块并且与目标机上的内核实现动态链接,所以开发人员可以不必重新下载内核以及未改动的模块。
3.3 WindPower工具
TornadoII中的 WINDPOWER工具包括:
ScopePak
PerformancePak
CodeTest/Coverage
CodeTest/Memory
VisualSlickEdit
Wind Foundation Classes
Look! For Tornado
3.3.1 软件“示波器”(ScopePak)
在开发实时多任务系统程序时,开发人员非常希望可以跟踪任务的运行以便更好地掌握系统的运行,但是传统的调试工具不能实时地显示任务的运行轨迹,所以开发者只好不停地在程序中增加诸如:printf一类的语句来跟踪任务的运行。但是这种方法给
任务的运行增加了巨大的开销而且跟踪的效果并不理想。Wind Power工具——ScopePak就可以在几乎不增加系统开销的情况下,提供系统实时的运行轨迹。
ScopePak中包含两个工具:StethoScope——图形化显示系统内变量的监视工具和TraceScope——跟踪程序运行序列的工具。
StethoScope
StethoScope是一个实时数据收集,图形显示,归档和调试工具,主要功能是以最小的干扰跟踪并发现程序中的性能问题,失灵或错误等。它可以利用多窗口环境图形化显示变量,就好象用数字示波器显示电路信号一样;可以在最小干扰的情况下捕捉问题,调整参数,观察系统运行轨迹;可以允许开发者动态地检查和分析正在目标机上运行的实时应用程序,并且可以提供历史数据图形和直角坐标图形;可以允许开发者在程序运行的过程中改变系统的变量;可以支持多种数据类型,以高采样速率收集事后分析的数据并在产生数据的同时显示数据,也可以根据特定的时间收集数据;可以发现噪音,失灵和系统中任何信号的问题;可以为图形和数据进行归档并打印。
TraceScope
TraceScope对于多任务环境是一个非常有用的调试工具,它可以为开发者提供函数级的运行顺序,函数在什么时候被调用,顺序和调用参数如何等。如果与WindView结合使用,任何一个函数的入口和出口都可以成为WindView的事件予以显示。TraceScope对系统的运行几乎没有影响。
3.3.2 性能检测包PerformancePak
实时系统的开发者总是希望获得最高的系统性能,但是又很难发现系统运行的薄弱环节。开发者经常会遇到系统被挂起的情况,可是又不能确定是程序代码的原因还是操作系统或第三方工具的原因。在实际应用中,实时系统需要长事件稳定的工作,此时对内存使用的要求就非常高,然而内存有时最难以控制的环节,大量的内存被浪费,内存使用过程中发现的问题有很隐蔽,经常是系统运行很长时间后,才能发现重大而且致命的内存问题。PerformencePak就是解决这个问题的工具,它包括一个CPU的分析工具ProfileScope和内存的分析工具MemScope。