1/69目录第1章操作系统基本概念.........................................................................................41.1实时操作系统和分时操作系统的区别.........................................................41.2嵌入式操作系统VxWorks简介.....................................................................41.3VxWorks的特点...........................................................................................51.3.1可靠性..................................................................................................51.3.2实时性..................................................................................................51.3.3可裁减性.............................................................................................61.3.4对一个实时内核的要求......................................................................61.4VxWorks的整体构架...................................................................................7第2章vxWorks驱动开发预备...................................................................................72.1VxWorks映像..................................................................................................82.2BSP主要文件目录的组成及作用:..............................................................112.3系统启动顺序...............................................................................................142.4Vxworks驱动概要.........................................................................................17第3章vxWorks网络驱动开发..............................................................................213.1驱动类别.......................................................................................................223.2Vxworks下网络驱动开发............................................................................243.3VxWorks网络驱动配置及分析....................................................................60第4章VxWorks系统中常见问题............................................................................652/69前言在通信,电子领域,目前主流的嵌入式操作系统为linux和vxworks。Linux多用于消费电子产品,像大家熟悉的andriod,原始系统就是linux,也就是说andriod也是一种linux系统。还有大家熟悉的MP3,也是使用linux操作系统的。Linux因为价格便宜(开源的,不需要付licence),稳定性好占据了一定的市场份额。Vxworks是风河系统1983开发的一款嵌入式实时操作系统,多用于通信,导航,航天等领域。因为这些领域对实时性要求非常高,比如现在LTE系统就是使用vxworks系统,因为是采用TDD模式,而这种模式,显然对实时性要求非常高。也就注定了vxwroks在这些领域的特有优势。选择linux还是vxworks看自己的专业方向,还有自己的兴趣所有。每个领域只要研究透彻,都是很有前途的。既然两者都是主流的嵌入式操作系统,其还是有很多相似性。小编也初步接触过linux,发现具备一定的linux基础对日后深入学习vxworks很有好处,很多思想都是相似的。另外,本人系小硕,目前的研究领域是vxworks驱动开发,主攻网络驱动开发。在平常的日常学习中,结合各位网友提供的资料(自己在百度上收集的),还有workbench提供的document(自己翻译,特别是针对网络驱动部分),希望对广大嵌入式驱动开发者有所帮助。声明:此文档并不适合于vxworks初学者,因为这里,小编省去了很多vxworks下的基本知识,包括内核中常用的进程,信号量等等支持。也没有提及集成开发环境tornado/vworkbench.这里的探索重点是vxwroks底层的东西,包括启动过程,BSP开发等。附录:Vxworks的应用领域嵌入式Vxworks系统的主要应用领域主要有以下几方面:1.数据网络:如:以太网交换机、路由器、远程接入服务器等2.远程通讯:如:电信用的3/69专用分组交换机和自动呼叫分配器,蜂窝电话系统等3.医疗设备:如:放射理疗设备4.消费电子:如:个人数字助理等5.交通运输:如:导航系统、高速火车控制系统等6.工业:如:机器人7.航空航天:如:卫星跟踪系统8.多媒体:如:电视会议设备9.计算机外围设备:如:X终端、I/O系统等总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。4/69第1章操作系统基本概念1.1实时操作系统和分时操作系统的区别从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系统无法实时响应外部异步事件。实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。分时系统主要应用于科学计算和一般实时性要求不高的场合。实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。1.2嵌入式操作系统VxWorks简介VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。VxWorks操作系统是一个嵌入式实时操作系统(RTOS)。VxWorks与其它实时OS一样,基于以下两个重要机制:多任务环境及任务间通信。5/69硬件中断处理。VxWorks多任务内核完成的功能是:实时调度,任务间通信及互斥。其它功能则作为系统库围绕在内核周围,它们可根据需要进行剪裁。VxWorks与非实时系统的不同之处在于:VxWorks的优先抢占机制基于调度,VxWorks对外部事件的反应和处理快,VxWorks容量小并且可配置(微内核结构)1.3VxWorks的特点1.3.1可靠性操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。1.3.2实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks提供的多任务机制中对任务的控制采用了优先级抢占(PreemptivePriorityScheduling)和轮转调度(Round-RobinScheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。6/691.3.3可裁减性用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使用。VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks内核最小为8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。1.3.4对一个实时内核的要求一个实时操作系统内核需满足许多特定的实时环境所提出的基本要求,这些包括:多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。任务间的通讯与同步:在一个实时系统中,可能有许多任务作为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作。所以需要杂任务级和中断级之间存在通信。7/691.4VxWorks的整体构架VxWorks支持多种处理器,对硬件不做假设,可支持ARM.PPC,MPIS架构处理器。第2章vxWorks驱动开发预备BSP定义:Boardsupportpacket,为各种目标板的硬件功能提供了统一的软件接口它们包括:硬件初始化中断处理和产生硬件时钟和定时器管理内存映射和分配8/69BSP还包括bootRom和其它启动机制,sysLib和sysALi