zhyxue
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2671回复:3

请熟悉以太网驱动的朋友帮忙分析

楼主#
更多 发布于:2003-01-10 16:59
    在vxWorks下的驱动中,endLoad(char* initString)函数中有以下代码:END_OBJ_INIT (&pDrvCtrl->end, (DEV_OBJ *)pDrvCtrl, \"axend\",pDrvCtrl->unit, &axEndFuncTable,                      \"END axEnd Driver.\")
 
   程序执行后用muxShow查看如下:Device: axend Unit: 0
Description: END axEnd Driver.这没有问题。
   当用ifShow()查看时,如下 (unit number 0),发现设备名称没有了。而且,在所有用到设备名称的地方,比如ipAttach(),用ipAttach(0,\"\"),可以搭接tcp/ip协议,用ipAttach(0,\"axend\")则报没有这个设备的错。好像系统不知道设备的名字叫\"axend\".这是怎么回事呢?
li_xc
驱动牛犊
驱动牛犊
  • 注册日期2001-10-21
  • 最后登录2008-09-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-17 17:57
在ifShow()中用到了:
IMPORT struct ifnet *ifnet; /* list of all network interfaces */

而muxShow()中用到LOCAL LIST endList;

两者不知道有无联系,可以跟踪一下。

提供一点信息,希望能有帮助。

lic
zhyxue
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-19 12:39
   多谢li_xc兄,不过我发现原来是在load函数中这句命令起作用,
if (initString[0] == \'\\0\')
        {
        bcopy((char *)AX_DEV_NAME, initString, AX_DEV_NAME_LEN);
        return (NULL);
        }
  当把宏的内容放到initString中后,再用命令
END_OBJ_INIT (&pDrvCtrl->end, (DEV_OBJ *)     DrvCtrl,              AX_DEV_NAME,
                      pDrvCtrl->unit, &axEndFuncTable,
                      \"END axEnd Driver.\").
 问题解决了。至于为什么,不太清除。

wonderfully
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2003-03-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-23 18:52
在muxload()中是需要initstring的,它用:分隔各个选项,其中第一项就是设备name。找设备就是根据这个设备名来的,没有这个名字当然就找不到。
游客

返回顶部