END驱动中ipAttach函数出错

22211213   2010-6-5 13:33 楼主
最近我的工作处在BOOT以太网END驱动程序调试阶段,希望BOOT程序能支持网口下载vxWorks镜像功能。但是遇到了一个棘手的问题,我的程序老是在bootLoad()函数里面的ipAttach()程序里出错。即:
            if (ipAttach (params.unitNum, bootDev) != OK)
                {
                        printf ("Failed to attach TCP/IP to device %s", muxDevName);
                        return (ERROR);
                }
执行后,老是返回“Failed to attach TCP/IP to device”。muxDevName所代表的字符串打印不出来。
        查网络资料,了解ipAttach()函数内部调用了函数:
int motFecIoctl (DRV_CTRL *pDrvCtrl, int cmd, caddr_t data);
于是在motFecIoctl()里面添加调试信息,了解到ipAttach()至少调用了8次motFecIoctl(),分别用命令:EIOCGNPT、EIOCQUERY、EIOCGMIB2、EIOCGFLAGS、EIOCGMIB2、EIOCQUERY、EIOCGMIB2、EIOCGHDRLEN。
对于ipAttach()的了解就这么多了。ipAttach()是在调用motFecIoctl()出的问题还是在调用motFecIoctl()之外的程序行出的问题,就不知道了。感觉无从下手了。
哪位XDJM有相关经验,可否指导下。不胜感激。

回复评论 (4)

你需要逐步添加打印来定位问题所在。
boot原本不就支持网络下载vxworks镜像文件么?
点赞  2010-6-7 13:48
重点关注你的网卡驱动,跟ipAttach()这些系统函数没有关系的。
只要确保你的网卡驱动程序没有问题,配置正确,就一定可以起来。
点赞  2010-6-9 21:34
是powerpc的处理器吧,见你的网卡名是motfec

用环境自带的网卡驱动,吧资源重新配置正确了,一般不会有问题的
点赞  2010-6-18 11:11
你的muxDevName打印不出来,感觉像是该设备没有初始化。请确认该设备的驱动已经正确初始化。
点赞  2010-6-18 15:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复