如何在vxworks下调试82573千兆网卡详细资料分析

资料大小: 0.13 MB

所需积分: 1

下载次数:

用户评论: 0条评论,查看

上传日期: 2019-08-16

上 传 者: tuotuotuo他上传的所有资料

资料介绍

标签:VxWorks(329)网卡(80)控制器(5233)

本文档的主要内容详细介绍的是如何在vxworks下调试82573千兆网卡详细资料分析。

  在写82573网卡驱动之前还是先了解几个概念,便于后面的调试:

  网卡的MAC和PHY:

  网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡的这两个部分是做到一起的。他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置)。

  另外对于千兆网卡还要一个重要的概念就是它能够自适应为100M或者是1000M.我们只要用一根千兆网线和另一台PC(千兆网卡)相连,可以很明显在看到我们的82573网卡就会自适应成1000M。如果我们的PC机是100M的话我们的82573网卡就会自适应成100M。这个就是通过读82573网卡的设备状态寄予器而得来的。

  除此之外我们还要知道END设备驱动程序的装载过程:

  Vxworks 支持两种类形的网络驱动程序,BSD与END形,这里只讲END形的。

  在初始化之前,在BSP的configNet.h文件中end_tbl_entry数组的初始化组要作必要的修改,使之能够识别我们目标板上的网卡类形。在上面我们已经完成了这项工作

  网卡驱动程序主要完成以下任务:

  装载和启动驱动程序;为驱动程序注册中断处理程序;数用驱动程序处理数据包

  主要用到了两个函数。Muxdevload()-àmuxdevstart();Muxdevload()又是调用了endload()来为每个网卡设备装载驱动程序。这样之后网络设备还是不可用的。还要把协议绑定到指定end设备,所以又要调用muxBind()函数。而这个函数是由系统函数ipAttach()来调用的。经过以上之后就可以数据包任务了。

  下面的程序是bootconfig.c中usrRoot()的代码。 只是为每个网络设备装载了驱动程序并没用开启设备和绑定协议。开启设备和绑定协议是在bootCmdLoop的loadDebugNet函数中实现了。

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料