DM9000双网卡不能同时用的问题,求指教!!
现在在2440上开发双网口,自己做的板子,用了两个DM9000A,操作系统是WinCE5.0。现在的问题是每个网口单独使用,比如只加载一个dm9000的驱动,这样的话,和PC机都能ping通,但是如果在wince中将两个网口的驱动同时编译进内核的话其中一个就不能用,但是连上网线的话指示灯还是会亮的,求指教~
我把注册表中的部分信息贴出来:
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
"BusNumber"=dword:0
"BusType"=dword:1
[HKEY_LOCAL_MACHINE\Comm\DM9CE2\Parms]
"BusNumber"=dword:1
"BusType"=dword:1
然后它们的IP我设置的不在同一网段,MAC地址设置的也不一样。
翻遍了各大论坛,最后我觉得问题可能跟"BusType"和"BusNumber"两个参数有关系,但是不知道操作系统是如何处理这两个参数的,在BSP中也没找到关于这两个参数的调用,请高手指教~
另外,据说一个DeviceID要对应一个WindowsID,不明白什么意思,求指教~
[解决办法]
两个网卡的 总线地址肯定不一样对吧, 为了能同时使用同一个网卡驱动,你需要在注册表添加 与总线地址有关的信息。(原来的DM9000的网卡驱动的注册表是没有总线地址这个关键字, 需要你手工修改实现;
变通的方法有:
分别对一个网卡生成独立的网卡驱动,每个的网卡的总线地址直接修改为相应的地址。
生成的驱动名称修改为不一样即可。 注册表做相应修改。
[解决办法]
看了你的注册表配置信息以及你的描述说明驱动无问题,
但是IP地址配置, 两个网卡都设置有网关地址, 一般情况不建议,会造成本地网络摇摆不稳定
你可以做下试验, 单独接一个网卡到PC机,PC机设置与对应的网卡同一个网段, 分别Ping他们的地址,都能Ping通吗?
[解决办法]
参考自己的一个项目注册表的修改内容如下,只用一个DLL, 对你的注册表内容,主要少了下面几行
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]"Bind"="DM9CE1"[HKEY_LOCAL_MACHINE\Comm\Tcpip1\Linkage]"Bind"="DM9EPCE1"
[解决办法]
注意是不是设网关了?两网卡同时用不能都设网关的。
[解决办法]
2440里的中断分大中断和小中断,在中断处理的时候,要先关大中断再关小中断