首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

WINCE下网卡驱动的开发有关问题,进者有分,结贴做总结,欢迎畅所欲言

2012-02-10 
WINCE下网卡驱动的开发问题,进者有分,结贴做总结,欢迎畅所欲言【推荐】最近在做网卡驱动,但是无论是google还

WINCE下网卡驱动的开发问题,进者有分,结贴做总结,欢迎畅所欲言【推荐】
最近在做网卡驱动,但是无论是google还是baidu发现这方面的资料不多,尤其是wince下网卡驱动的开发,就更少了!以前由于BSP包里面都带,要么CS8900,要么DM9000,当然也有其他的网卡。其中在模拟器里面提供了CS8900网卡的源码,现在抛出问题,希望能和大家一起探讨!
问题:
1.CS8900芯片内置的PacketPage存储单元支持两种地址访问模式:一种是内存访问模式,一种是I/O端口访问模式。CS8900芯片复位后的默认工作模式是I/O模式,I/O端口地址默认为300H。
那么内存访问模式又是什么?什么情况下使用?
2.无论是DM9000或者CS8900还是其他的网卡驱动,现在从厂商大部分都能获得源码,大部分只需要知道中断号和入口地址,然后进行相应配置和修改就可以了。
那么中断号和入口地址从什么地方看出来呢?是不是下面给出的这样呢?如果是,DM9000是什么样的呢?如果不是,又是什么样呢?
在模拟器下CS8900在初始化的过程中给出了4个步骤:
(1)配置允许CS8900以太网控制器芯片接收以太网数据类型:
WritePacketPage(RX_CTL,RX_CTL_RX_OK|RX_CTL_INDIVIDUAL|RX_CTL_BROADCAST);
(2)配置CS8900以太网控制器芯片以中断的方式接收数据帧
WritePacketPage(RX_CFG,RX_CFGRX_OK_IE);
(3)配置CS8900以太网控制器芯片选择使用第0号中断引脚
WritePacketPage(INTERRUPT_NUMBER,0);
(4)配置CS8900以太网控制器芯片使之允许收发数据帧:
WritePacketPage(LINE_CTL,LINE_CTL_RX_ON|LINE_CTL_TX_ON);
3.如果要验证一个驱动移植是否成功,如何去做呢?是通过Ping通与否嘛?还是收发数据包成功呢?如果,发送数据包,是什么样的数据包?需要自己定义还是简单的数据进行打包?
4.如果要开发自定义的网卡驱动应该如何开发呢?微软又提供了哪些层的代码?我们又需要做哪些工作呢?
因为在PUBLIC\COMMON\OAK\DERIVERS\NETCARD目录下面只提供了ar6k,e100bex,ne2000,ne2000isr,netmui,smsc100fd,如果是自己的网卡,需要完全自己开发吗?
5.在一些源代码流程分析中,包括从网上一些老牛的博客中也可以看出,NDIS.dll提供了网络驱动的接口参数,“简单”的说,只需要调用就好了,可是怎么调用呢?前段时间看了下PUBLIC\COMMON\OAKK目录下的NDISUIO的的示例代码可是编译总是出问题,我是直接编译的,是不是应该添加什么函数库呢?
6.假如网卡驱动成功了,我要实现数据包的收发,应该怎么做呢?是自定义IOCTL自定义还是调用几个API接口参数呢?如果是API又是哪些API呢?如果数据流很大,比如视频流,那么个人应该认为采用DMA方式来完成数据的收发,可是又该怎么实现呢?
以上问题,最近需要解决,我有什么进度也会及时跟进!
希望大家多多交流!有点思路就说,或者这个方向也好!
如果解决了,我会进行网卡驱动的总结,再追加100分!

[解决办法]
顶贴
[解决办法]
关注!
[解决办法]
学习了
[解决办法]
好,明天我来搞,6410的网卡,奶奶的,今天一点激情都没有!
我 正好就是网卡没有做过了!
[解决办法]
学习
[解决办法]
顶下
[解决办法]
学习啊, 好东西。值得认真拜读。
[解决办法]
自己写个『推荐』是没用的,我帮你推荐一下吧,贴子不错。
[解决办法]
你这问题回答起来还比较麻烦,首先,对自己驱动的调试你可以用第三方工具最简单,安装收发数据成功,即成功。如果再退一步,你就要自己编写上层服务函数了,其实结果是一样的。第三方工具大多也是如此,当然,象一些微软提供的工具,可能有些区别。其次,你说的中断号儿什么的,和具体的硬件的应用有关系。比如一个中断可以做这个用,也可以做那个用,看厂家怎么安排了。这个基本都不是死的,当然可能为了统一,大家对某一方面的中断都规定使用哪些。再次,自定义IOCTL自定义还是调用几个API接口参数呢?如果是API又是哪些API呢?如果数据流很大,比如视频流,那么个人应该认为采用DMA方式来完成数据的收发,可是又该怎么实现呢? 这两种都可以,微软都提供有例程,到于你说视频流,与你底层的通信没有关系。那是上层需要处理的。API就是READFILE之类的呗。至于自己的网卡要不要从头开发,我觉得现在在中国实际应用的可能性比较小,个人经验,反正本人经历的公司大多都是从已有的基础上改,包括从网上,从硬件厂商,开源代码,等等。
[解决办法]
NDIS是微软为了统一开发而弄出来的一个东西,也就是小驱动。说白了就是封包常用的东西,然后分层,你只要把你的数据处理和调用,按规定接到上面即可。这么说吧,原来是你的上层直接调用你的下层,现在呢,你的上层要调用你的下层时,必须通过NDIS,你的下层向上层通信,也必须传给NDIS,就这么个意思,可能有的表达不准确,希望不要误导别人。
[解决办法]
jf
[解决办法]
顶起!哈哈!俺不懂!
[解决办法]

探讨
NDIS是微软为了统一开发而弄出来的一个东西,也就是小驱动。说白了就是封包常用的东西,然后分层,你只要把你的数据处理和调用,按规定接到上面即可。这么说吧,原来是你的上层直接调用你的下层,现在呢,你的上层要调用你的下层时,必须通过NDIS,你的下层向上层通信,也必须传给NDIS,就这么个意思,可能有的表达不准确,希望不要误导别人。

[解决办法]
学习 关注--
------解决方案--------------------


up
[解决办法]
还是顶起~关于winCE的东西我有同学很需要这个~
[解决办法]
虽然不懂,进来混点分吧!谢谢楼主!
[解决办法]
学习!
[解决办法]
接分来啦~~
[解决办法]
mark
我是从网上找的DM9000的源码直接用,没细看,也没搞清内存模式和I/O模式的概念。

[解决办法]
工作中项目是有这块的,之前都是写好的,没有认真研究研究。等研究明白在来回帖。不过先顶下
[解决办法]
楼主好强
[解决办法]
驱动是有模型的。

网卡驱动 有 网卡驱动的模型.
[解决办法]
不会,帮顶~~
[解决办法]
不错不错
[解决办法]
关注!
[解决办法]
看看就好。
[解决办法]
不错!
[解决办法]
学习了,感谢各位
[解决办法]
淡淡的留个言
[解决办法]
不错 牛
[解决办法]
学习
[解决办法]
学习!
[解决办法]
虽然调试过wince下的dm9000网卡驱动,但对整体架构还真不是很了解。学习ing
[解决办法]
路过。。学习中。。。。
[解决办法]
关注!
[解决办法]
ding xia
[解决办法]
我帮顶。友情支持
[解决办法]

[解决办法]
关注!
[解决办法]


[解决办法]
关注
[解决办法]
我是帮顶的
[解决办法]
我接分的,帮顶一个
[解决办法]
关注!
[解决办法]
学习
[解决办法]
交流
[解决办法]
学习
[解决办法]
学习中
------解决方案--------------------


顶一下
[解决办法]
用过,可是没有仔细研究过。
[解决办法]
不懂,帮顶~~
[解决办法]
xuexi
[解决办法]
学习
[解决办法]
大部分只需要知道中断号和入口地址,然后进行相应配置和修改就可以了。 

我当年配置DM9000就是这样做的,虽然遇到很多波折
[解决办法]
z怎么现在下载回复都没分了
[解决办法]
网卡驱动的大概步骤,因为它是分三层的: 
NDIS驱动程序是使网络协议生效的驱动程序模型,例如TCP/IP和PPP等数据通信协议,NDIS驱动程序采用了windows NT操作系统的驱动程序标准,与网卡驱动程序的具体细节无关。NDIS网络驱动程序分为三类: 
(1)NDIS Miniport NIC Driver: 底层的微端口NIC驱动,这就是网络设备的物理的驱动程序 
(2)NDIS Protocol Driver: 高层的协议驱动,用来实现某个具体的协议栈, 并向上导出TDI接口。 
(3)NDIS Intermediate Driver: 中间层驱动,位于Miniport Driver和Protocol Driver之间。 
在WinCE中,开发网卡驱动就是写一个Miniport Driver,导出相应的Miniport接口函数,调用NDIS的接口访问底层硬件。 
Miniport driver直接管理硬件网卡,它使用NDIS Library中的接口函数读写硬件网卡,同时对上层导出Miniport接口函数,这样上层通过该接口可以配置网卡,发送和接收网络数据包。
[解决办法]
跟贴,赚分
[解决办法]
up
[解决办法]
呵呵,学习
[解决办法]
不是很懂,学习学习O(∩_∩)O哈!
[解决办法]
learning.
[解决办法]
学习了
[解决办法]
挺厉害的啊
[解决办法]
thank you
[解决办法]
虽然不懂 但是还是顶起
[解决办法]
学习了
[解决办法]
cs8900搞了很久
还没有搞定,很郁闷....
顶起
[解决办法]
wince驱动技术问题可以到海同嵌入式培训中心网站上提问,有技术老师帮你回答的。
[解决办法]
看不懂啊 ~~
[解决办法]
study
[解决办法]
学习下
[解决办法]
jf
[解决办法]
正在学习……
[解决办法]
学习!
[解决办法]
学习!
[解决办法]
学习!
[解决办法]
没研究过
[解决办法]
求分来了,!
------解决方案--------------------


看在系统信息里能否找到网卡中断资源?
[解决办法]
关注
[解决办法]
楼主,给点分吧

热点排行