1.1嵌入式操作系统及其开发环境的应用背景
1.1.1 应用挑战 应用范围方面: 在嵌入式系统应用中,由于使用16位以下的CPU的资源量较少,任务比较简单,程序员可以 在应用程序中自己管理CPU资源,不一定需要一个专用的系统软件,管理CPU。当嵌入式系 统比较复杂而采用32位CPU时情况就不同了,32位CPU的资源量非常大,寻址可以达到4GB空 间,处理能力也非常强大,可以实现实时多任务并发处理,因此如果仍然沿用手工编制CP U管理程序,面对复杂的应用,就很难发挥出32位CPU的处理能力,开发出高效可靠的应用 系统。 管理CPU的系统软件是每一个系统所必需的,不同的CPU平台,差异很大。如果都要应用系 统的开发者自己完成,那么每次都要重复开发,造成不必要的资源浪费,延长了开发周期 ,增加了开发成本。而且CPU管理是整个系统的基础,任何缺陷都可能引起严重的问题,这 样,就使开发者耗费大量的精力放在与应用无关的系统管理上。 1.1.2 VxWorks 简介 VxWorks是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多 任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种CPU平台上提供了统 一的编程接口和一致的运行特性,尽可能的屏蔽了不同CPU 之间的底层差异。应用程序员 可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWork s操作系统的应用程序可以在不同CPU平台上轻松移植。 VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的 一个实时操作系统。WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的 软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的 可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要 求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA- 18 战斗机、B-2 隐形轰炸机和爱国者导弹上,1997年4月在火星表面登陆的火星探路者上 也使用了VxWorks。 VxWorks是一种功能强大而且比较复杂的操作系统,包括了进程管理、存储管理、设备管理 、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占用了很小的存储空间,并 可高度裁减,保证了系统能以较高的效率运行。所以,仅仅依靠人工编程调试,很难发挥 它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。TornadoI I就是为开发VxWorks应用系统提供的集成开发环境,TornadoII中包含的工程管理软件,可 以将用户自己的代码与VxWorks的核心有效的组合起来,可以按用户的需要裁剪配置VxWor ks内核;vxSim原型仿真器可以让程序员不用目标机的情况下,直接开发系统原型,作出系 统评估;功能强大的CrossWind调试器可以提供任务级和系统级的调试模式,可以进行多目 标机的联调;优化分析工具可以帮助程序员从多种方式真正地观察、跟踪系统的运行,排 除错误,优化性能。 1.2 TornadoII 嵌入式开发系统概述 1.2.1 TornadoII 嵌入式开发系统简介 TornadoII开发环境是嵌入式实时领域里最新一代的开发调试环境,是实现嵌入式实时应用 程序的完整的软件开发平台,是交叉开发环境运行在主机上的部分,是开发和调试VxWork s系统不可缺少的组成部分。TornadoII给嵌入式系统开发人员提供了一个不受目标机资源 限制的超级开发和调试环境。 TornadoII 开发系统包含三个高度集成的部分: 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序; 运行在目标机上的高性能、可裁剪的实时操作系统VxWorks; 连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM仿真器等 。 Torando II嵌入式集成开发系统结构图 1.2.2 VxWorks主要的应用领域 消费电子 掌上电脑 机顶盒 可视电话 汽车导航系统 航空航天 飞行模拟器 航班管理系统 卫星跟踪系统 航空电子设备 数字图象设备 打印机、传真机 数字复印机 数字相机 数据通讯网络 交换机 路由器 远程访问服务器 ATM及帧中继交换机 电信设备 PBXs,ACDs CD交换系统 移动通讯基站 蜂窝式电话 Cable Modem 交通运输 汽车发动机控制 交通信号控制 高速列车控制 工业控制 机器人 测试与测量设备 过程控制系统 计算机外设 网络计算机 X终端 RAID存储系统 I/O控制设备 1.2.3 TornadoII支持的主机 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-X 10.20; PC: Win95; Win98; WinNT 1.2.4 VxWorks支持的目标机CPU Motorola 68k: 68000; 68010; 68020; 68030; 68040; 68060; CPU32; Motorola ColdFire: MCF51xx; MCF52xx; MF53xx Motorola/IBM Power PC: PPC4xx; PPC6xx; PPC7xx; MPC5xx; MPC8xx; MPC82x; Motorola M-CORE Intel: i386; i486; Pentium; Pentium-Pro; Intel Strong ARM: SA-110; SA-1100; SA-1110; ARM: ARM7; ARM7T; ARM8,ARM9; i960:KA/KB/CA/JX/RP; RP/RD; NEC:V85x; V83x; 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 今天就先第一章吧,大家有兴趣的话有空再继续贴 -- ^_^ ※ 来源:·饮水思源 bbs.·[FROM: 211.80.52.19] 发信人: googol (Eternal Technology), 信区: Robot 标 题: 第2章 VxWorks嵌入式实时操作系统 发信站: 饮水思源 (2004年06月26日02:52:13 星期六) 第二天了,继续继续 第2章 VxWorks嵌入式实时操作系统 2.1 VxWorks嵌入式实时操作系统概述 2.1.1 VxWorks嵌入式实时操作系统背景简介 我们知道,用户在开发具有日益复杂的32位嵌入式处理器的产品时,需要一个用来连接产 品应用程序和底层硬件的操作系统。用户所寻求的操作系统应该具有的最重要的特点包括 : 可靠性高的实时性能 可下载到最终产品的板上内存的丰富和灵活的功能模块集 与综合全面的主机开发环境的可协同工作。 VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RT OS),是TornadoII嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核 以及友好的用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地。首先,它十分 灵活,具有多达1800个功能强大的应用程序接口(API);其次,它适用方面广,可以适用 于从最简单到最复杂的产品设计;再次,它可靠性高,可以用于从防抱死刹车系统到星际 探索的关键任务;最后,适用性强,可以用于所有的流行的CPU平台。 2.2.2 VxWorks嵌入式实时操作系统的简介 VxWorks嵌入式实时操作系统包括微内核wind、高级的网络支持、强有力的文件系统和I/O 管理、C++和其他标准支持等核心功能。这些核心功能还可以与WindRiver公司的其他产品 以及320个WindRiver公司的合作伙伴的产品联合使用。 1. 高性能的微内核设计 处于VxWorks嵌入式实时操作系统核心的是高性能的微内核wind。这个微内核支持所有的实 时特征:快速任务切换、中断支持、抢占式和时间片轮转调度等。微内核设计减少了系统 开销,从而保证了对外部事件的快速、确定的反应。 运行环境也提供了有效的任务间通信机制,允许独立的任务在实时系统中与其行动相协调 。开发者在开发应用程序时可以使用多种方法:用于简单数据共享的共享内存、用于单CP U的多任务间信息交换的消息队列和管道、套接口、用于网络通信的远程过程调用、用于处 理异常事件的信号等。为了控制关键的系统资源,提供了三种信号灯:二进制、计数、有 优先级继承特性的互斥信号灯。 2. 可裁剪的运行软件 VxWorks之所以设计为具有可裁剪性,是为了使开发者能够根据自己的应用程序需要,而不 是根据操作系统的需要,来分配稀少的内存资源。从需要几个KB字节内存的深层嵌入式设 计到需要更多的操作系统的功能的复杂的高端的实时系统,开发者也许需要从100多个不同 的选项中进行选择以产生上百种的配置方式。许多独立的模块都是在开发时要使用而在产 品中却不再使用。 而且,这些子系统本身也是可裁剪的,这样就允许开发者为最广泛的应用程序进行更为优 化的VxWorks运行环境配置。例如,如果应用程序不需要某些功能模块,就可以将它移出A NSI C运行库;如果应用程序不需要某些特定的内核同步对象,这些对象也可以忽略。还有 ,TCP、UDP、套接口和标准Berkeley服务也可以根据需要将之移出或移入网络协议栈。 这些配置选项可以通过TornadoII的项目工具图形接口轻易地选择。开发者也可以使用Tor nadoII的自动裁剪特性,自动地分析应用程序代码并合并合适的选项。 3. 综合的网络工具 VxWorks是第一个支持工业标准TCP/IP的实时操作系统。创新的传统伴随着VxWorks TCP/I P协议栈,它支持最新的Berkeley网络特性,包括: IP, IGMP, CIDR, TCP, UDP, ARP RIP v.1/v.2 Standard Berkeley sockets and zbufs NFS client and server, ONC, RPC Point-to-Point Protocol BOOTP, DNS, DHCP, TFTP FTP, rlogin, telnet, rsh WindRiver也支持可选的WindNet产品:SNMP v.1/v.2c, OSPF v.2, STREAMS. WindRiver还通过提供工业级最广泛的网络开发环境来加强这些核心技术,这主要是通过W indLink for TornadoII伙伴计划来实现的。高级的网络解决方案还包括: ATM, SMDS, frame relay, ISDN, SS7, X.25, V5广域网网络协议 IPX/SPX,AppleTalk,SNA局域网网络协议 分布式网络管理的RMON,CMIP/GDMO,基于Web网的解决方案 CORBA分布式计算机环境 4. 兼容POSIX 1003.1b标准 VxWorks支持POSIX 1003.1b的规定和1003.1中有关基本系统调用的规定,包括:过程初始 化、文件与目录、I/O初始化、语言服务、目录处理;而且VxWorks还支持POSIX 1003.1b的 实时扩展,主要包括:异步I/O、记数信号量、消息队列、信号、内存管理和调度控制。 5. 平台的选择 WindRiver还提供现成的一整套的商业和评估板。VxWorks开放的设计具有高度的可移植性 并且支持几乎所有的处理器,这样,应用程序就可以在不同的体系结构之间毫不费力的移 植。 6. 方便地移植到用户硬件上 能否将操作系统和应用程序以一种合适的方式进行移植是嵌入式软件开发方面的关键。如 果事先就考虑了操作系统和应用程序代码的可移植性,那么这个过程就会变得非常容易。 这需要明确划分低级的依赖于硬件的代码和高级的应用程序和操作系统代码,这样,移植 时只需要改变整个依赖于硬件的低级代码,而不需要改变操作系统和应用程序。 依赖于硬件的这一层称为板极支持包(BSP, Board Support Package)。板极支持包是运行 VxWorks的任何目标板都需要的。BSP Developer’s Kit使开发者很容易地在用户硬件上使 用VxWorks;如果使用商业硬件,WindRiver提供了2000个板极支持包。当为用户板开发板 极支持包时,开发者可以获得大量的标准设备驱动程序,这些程序对应于所有的目标体系 。 7. 操作系统选件 操作系统选件产品为开发者提供了意想不到的特性和操作系统扩展。这些选件主要包括: 板极支持包开发工具(BSP Developer’s Kit) 支持闪存文件系统的TrueFFS for TornadoII 支持图形应用程序 支持虚拟内存管理VxVMI 支持多处理的VxMP、VxDCOM和VxFusion 2.2 VxWorks嵌入式实时操作系统主要特点 1.微内核(wind microkernel)的主要特点 高效的任务管理: 无限数目多任务,具有256个优先级 具有优先级排队和时间片轮转调度 快速的、确定性的上下文切换 快速灵活的任务间通讯: 三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯 POSIX管道、记数信号量、消息队列、信号和调度 控制套接口 共享内存(shared memory) 高度的可裁剪性 增量连接和部件加载 快速有效的中断和异常事件处理 优化的浮点支持 动态内存管理 系统时钟和计时工具 2.网络支持方面 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(可选) 3.快速灵活的I/O和本地文件系统 POSIX 异步I/O和目录管理 SCSI 支持 兼容MS-DOC文件系统 Raw disk文件系统 TrueFFS闪存文件系统 ISO 9660 CD-ROM文件系统 PCMCIA支持 4.目标机开发特性 完全兼容ANSI C和C++的异常处理和模板支持 兼容POSIX 1003.1, .1b实时扩展 目标机shell上的交互式C解释器 符号调试和反汇编 强大的性能监视功能 扩展的内核、任务、系统信息工具 动态连接装载 超过1800个实用例程库 灵活的启动方式,可以从ROM、本地磁盘或通过网络启动 高度可裁剪设计可以适用于广泛的应用 通过以太网、串行线、ICE或ROM仿真器的系统级调试 2.3 VxWorks嵌入式实时操作系统主要功能和结构 2.3.1 VxWorks操作系统的主要功能 目前VxWorks操作系统的版本为VxWorks 5.4,其核心功能主要有: 微内核wind 任务间通信机制 先进的网络支持 功能强大的文件系统和I/O管理 POSIX标准实时扩展 C++以及其他标准支持 这些核心功能可以与WindRiver系统的其他附件和超过400个TornadoII合作伙伴的产品很好 的结合在一起。 2.3.2 VxWorks操作系统的基本结构 VxWorks操作系统的基本构成部件主要有以下五个部分: 板级支持包BSP(Board Support Package) 微内核wind 网络系统 文件系统 I/O系统 VxWorks 操作系统包括了板级支持包BSP(Board Support Package)、进程管理、存储管理 、设备管理、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占用了很小的存 储空间,并可高度裁减,保证了系统能以较高的效率运行。 1.板级支持包 BSP(Board Support Package) 板级支持包对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产 生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级 支持包括一个 ROM 启动(Boot ROM)或其它启动机制。 2.高性能的实时操作系统核心 wind [1].VxWorks 的核心,被称作 wind,包括多任务调度(采用优先级抢占方式),任务间的 同步和进程间通信机制以及中断处理,看门狗和内存管理机制。一个多任务环境允许实时 应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和它自己的一套系统 资源。进程间通信机制使得这些任务的行为同步、协调。 [2].wind使用中断驱动和优先级的方式。它缩短了上下文转换的时间开销和中断的时延。 在 VxWorks 中,任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和堆栈。 还有一些其它的任务机制可以使任务挂起、继续、删除、延时或改变优先级。 [3].wind 核提供信号量作为任务间同步和互斥的机制。在 wind 核中有几种类型的信号量 ,它们分别针对不同的应用需求:二进制信号量、计数信号量、互斥信号量和 POSIX 信号 量。所有的这些信号量是快速和高效的,它们除了被应用在开发设计过程中外,还被广泛 地应用在 VxWorks 高层应用系统中。对于进程间通信,wind 核也提供了诸如消息队列、 管道、套接字和信号等机制。 3.网络设施 VxWorks的网络结构如图所示,它提供了对其它网络和 TCP/IP 网络系统的"透明"访问,包 括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问 (包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和 ARP 代理。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背 板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。 4.文件系统 VxWorks 提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘 )的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设 备驱动程序上移植。 VxWorks 也支持 SCSI 磁带设备的本地文件系统。VxWorks I/O 体系结构甚至还支持在一 个单独的 VxWorks 系统上同时并存几个不同的文件系统。 VxWorks 支持四种文件系统: dosFs rt11Fs rawFs tapeFs。 另一方面,普通数据文件,外部设备都统一作为文件处理。它们在用户面前有相同的语法 定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。 5.I/O 系统 VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓冲 I/O POSIX 标准的异步 I/O VxWorks 包括以下驱动程序: 网络驱动 管道驱动 RAM盘驱动 SCSI驱动 键盘驱动 显示驱动 磁盘驱动 并口驱动 |
|