VxWorks下网卡驱动程序的开发.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VxWorks下网卡驱动程序的开发 摘要:本文首先从整体上分析VxWorks 网卡驱动程序的原理和结构,然后深入地分析Rtl8139C网卡驱动程序的结构以及实现,本文对于VxWorks下的同类开发也有一定参考作用。 关键词:网卡驱动程序;VxWorks;嵌入式系统;Tornado 1引言 ??? VxWorks是当前应用十分广泛的嵌入式实时操作系统,而网卡在基于VxWorks的开发中有着极其重要的作用。Tornado 是VxWorks的开发工具,它本身支持的网卡不多。本文涉及到的网卡是Realtek 公司的8139C? PCI网卡,相关的硬件资料有:RTL8139C(L) data sheet 和 Rtl8139 Programming Guide 。需要实现的是RTL8139C END driver 。 2 VxWorks简介 ??? VxWorks是由WRS(Wind River System Inc.)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求进行组合。其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。 ??? VxWorks是一种功能强大而且比较复杂的操作系统,VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。所以仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。TornadoII是为开发VxWorks应用系统提供的集成开发环境。 ??? VxWorks的优秀特性为编写应用程序和设备驱动程序提供了极大的便利。在VxWorks下,设备驱动程序既可以嵌入到内核中随系统一起启动,也可以作为可加载模块在系统启动之后运行。网卡驱动程序一般采用前一种方式。 3 VxWorks的网络模型 ??? 网卡在VxWorks开发中是极其重要的。在开发机-目标机模式中,通过网线进行下载调试是Tornado调试器最常用最方便的方式。VxWorks的优秀的实时性能使其在网络通信当中具有极广泛的应用,如网络交换机、路由器的软件系统等。 ??? 网卡驱动程序在整个VxWorks网络接口中的角色可以从下图中看出。 ? ??? 整个网络接口呈层次结构,用户网络应用程序通过socket接口调用TCP/IP协议层系列软件,网卡驱动程序则为协议软件提供对网卡的访问。VxWorks也为网卡驱动程序进行了分层,其中老式的BSD4.3驱动程序的功能,现在可以由协议层驱动、MUX层和END驱动实现。而且,工作于BSD的以太网网卡不支持系统级调试,而工作于END的网卡同时支持任务级调试和系统级调试。很显然,网卡驱动程序的层次结构使网卡驱动程序的实现和移植更加方便。而且,VxWorks 为编写网卡增强型驱动程序(Enhanced Network Drivers)提供了很好的接口和规范。 4 Rtl8139C END驱动程序 4.1 PCI局部总线 ??? 本文涉及到的网卡是Realtek 公司的8139C? PCI网卡,作为一个PCI设备,在设备的初始化阶段,它和一般的PCI设备没有什么不同。 ??? 每一个PCI局部总线目标设备都由一个配置寄存器空间,它使目标设备的配置十分简便。配置空间是一个容量为256字节并具有特定记录结构或模型的地址空间。该空间有分为头标区和设备有关区两部分。设备在每个区中只实现必要的和与之相配的寄存器。一个设备的配置空间不仅在系统自举时可以访问,而且在其他时间内也是可以访问的。 4.2数据包结构 ??? VxWorks MUX层的数据包采用的是mBlk-clBlk-cluster 结构,如图。发送时,网卡发送模块处理的是这样的结构;接收数据时,网卡还得将数据通过这样的结构传递给上层协议。不过,这一切Vxworks 都有相应的规范和函数。另外,mBlk和clBlk可以由netpool 结构管理,VxWorks 提供一系列接口函数。 ? 图2 网络数据包结构 4.3驱动程序的结构以及流程 1、网卡的探测以及入口 ??? VxWorks BSP在syslib.c中探测并初始化系统中的PCI设备,检测设备的I/O映射地址,内存映射地址以及中断向量和级别,这些硬件参数对于主芯片的读写和连接中断起到至关重要的作用。因此,在这里加入8139C 网卡的探测模块。然后将探测到的参数传递给驱动程序入口函数。 网卡的探测模块为sysRtl8139PciInit模块,利用的是RTL8139C的厂商标识和设备标识,在所有的PCI设备中判断有几块这样的网卡,得到它们的功能号,总线号和设备号,然后配置它的PCI配置空间,将网卡寄存器映射。最后得到网卡I/O映射基地址和Mem基地址以及中断向量

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档