VWorks下网卡驱动程序的开发

VxWorks下网卡驱动程序的开发摘要:本文首先从整体上分析VxWorks网卡驱动程序的原理和结构,然后深入地分析Rtl8139C网卡驱动程序的结构以及实现,本文对于VxWorks下的同类开发也有一定参考作用。关键词:网卡驱动程序;VxWorks;嵌入式系统;Tornado1引言VxWorks是当前应用十分广泛的嵌入式实时操作系统,而网卡在基于VxWorks的开发中有着极其重要的作用。Tornado是VxWorks的开发工具,它本身支持的网卡不多。本文涉及到的网卡是Realtek公司的8139CPCI网卡,相关的硬件资料有:RTL8139C(L)datasheet和Rtl8139ProgrammingGuide。需要实现的是RTL8139CENDdriver。2VxWorks简介VxWorks是由WRS(WindRiverSystemInc.)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求进行组合。其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。VxWorks是一种功能强大而且比较复杂的操作系统,VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。所以仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。TornadoII是为开发VxWorks应用系统提供的集成开发环境。VxWorks的优秀特性为编写应用程序和设备驱动程序提供了极大的便利。在VxWorks下,设备驱动程序既可以嵌入到内核中随系统一起启动,也可以作为可加载模块在系统启动之后运行。网卡驱动程序一般采用前一种方式。3VxWorks的网络模型网卡在VxWorks开发中是极其重要的。在开发机-目标机模式中,通过网线进行下载调试是Tornado调试器最常用最方便的方式。VxWorks的优秀的实时性能使其在网络通信当中具有极广泛的应用,如网络交换机、路由器的软件系统等。网卡驱动程序在整个VxWorks网络接口中的角色可以从下图中看出。整个网络接口呈层次结构,用户网络应用程序通过socket接口调用TCP/IP协议层系列软件,网卡驱动程序则为协议软件提供对网卡的访问。VxWorks也为网卡驱动程序进行了分层,其中老式的BSD4.3驱动程序的功能,现在可以由协议层驱动、MUX层和END驱动实现。而且,工作于BSD的以太网网卡不支持系统级调试,而工作于END的网卡同时支持任务级调试和系统级调试。很显然,网卡驱动程序的层次结构使网卡驱动程序的实现和移植更加方便。而且,VxWorks为编写网卡增强型驱动程序(EnhancedNetworkDrivers)提供了很好的接口和规范。4Rtl8139CEND驱动程序4.1PCI局部总线本文涉及到的网卡是Realtek公司的8139CPCI网卡,作为一个PCI设备,在设备的初始化阶段,它和一般的PCI设备没有什么不同。每一个PCI局部总线目标设备都由一个配置寄存器空间,它使目标设备的配置十分简便。配置空间是一个容量为256字节并具有特定记录结构或模型的地址空间。该空间有分为头标区和设备有关区两部分。设备在每个区中只实现必要的和与之相配的寄存器。一个设备的配置空间不仅在系统自举时可以访问,而且在其他时间内也是可以访问的。4.2数据包结构VxWorksMUX层的数据包采用的是mBlk-clBlk-cluster结构,如图。发送时,网卡发送模块处理的是这样的结构;接收数据时,网卡还得将数据通过这样的结构传递给上层协议。不过,这一切Vxworks都有相应的规范和函数。另外,mBlk和clBlk可以由netpool结构管理,VxWorks提供一系列接口函数。图2网络数据包结构4.3驱动程序的结构以及流程1、网卡的探测以及入口VxWorksBSP在syslib.c中探测并初始化系统中的PCI设备,检测设备的I/O映射地址,内存映射地址以及中断向量和级别,这些硬件参数对于主芯片的读写和连接中断起到至关重要的作用。因此,在这里加入8139C网卡的探测模块。然后将探测到的参数传递给驱动程序入口函数。网卡的探测模块为sysRtl8139PciInit模块,利用的是RTL8139C的厂商标识和设备标识,在所有的PCI设备中判断有几块这样的网卡,得到它们的功能号,总线号和设备号,然后配置它的PCI配置空间,将网卡寄存器映射。最后得到网卡I/O映射基地址和Mem基地址以及中断向量和级别。2、入口函数ENDdriver与系统的接口是MUX层,BSP对...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?