这篇文章主要为了临时抱佛脚,收到威盛的面试邀请,职位是wince的网卡驱动开发,对于wince的驱动开发可以说还是做过一些,说道网卡这真还是一个死角,因为车载上并不牵涉到网卡这个部分,所做的几个项目在网卡上基本上都是被省略了,硬件上都没有网卡这个部分,所以临时包下佛脚。补补课。
1.什么是NDIS,这个是一个比较知识性的问题。
http://baike.baidu.com/view/1033533.htm
WINCE上有关于这个部分的驱动,wince在2.0开始有这个部分的内容
http://msdn.microsoft.com/en-us/library/ms834435.aspx msdn的参考
2.wince下如何添加intel82559er的网卡驱动?来一个具体的例子学习
参考文章:
http://blog.ednchina.com/stephen100/231442/message.aspx
主要思路是先下载现有的cec也就是bsp加入第三方BSP中,然后进行注册表的修改。
3.如何将网卡添加到wince上呢
http://social.microsoft.com/Forums/zh-TW/windowsembeddedcezhchs/thread/7552cf2a-2d54-4537-9853-0a338145c863
虽然很简单的文章,也是一个基本驱动开发的流程,但是始终感觉网卡驱动并非和一般驱动开发那样简单修改一下bib和reg就了事了。其中于OS之间的配合是一个大问题。
http://topic.csdn.net/u/20091221/16/B100AD74-9A48-4596-826D-F5241429E7FC.html
这个文章做了一个问题的集中描述,其中比较经典的回复如下:
#13楼 得分:5回复于:2009-12-21 17:26:51
NDIS是微软为了统一开发而弄出来的一个东西,也就是小驱动。说白了就是封包常用的东西,然后分层,你只要把你的数据处理和调用,按规定接到上面即可。这么说吧,原来是你的上层直接调用你的下层,现在呢,你的上层要调用你的下层时,必须通过NDIS,你的下层向上层通信,也必须传给NDIS,就这么个意思,可能有的表达不准确,希望不要误导别人。
个人观点:
这样看来NDIS是一个中间的连接器,换一种思路,wince的驱动可以有分层的和不分层的,这里来说,网卡驱动是一个分层的,首先是有一个PDD,也就是对网卡的一个驱动,其次,就是MMD,也就是NDIS的一个驱动,而NDIS的驱动主要是为了方便上层和下层通讯做出来一个接口。
--------------------------------------------------------------------------------------
#37楼 得分:0回复于:2009-12-21 20:03:57
引用 35 楼 huabinsir 的回复:驱动是有模型的。 网卡驱动 有 网卡驱动的模型.
恩,那个分层我看了,在外部驱动里面专门罗列了两个驱动,一个是USB驱动,一个就是网卡驱动。其中我看了下网卡驱动的大概步骤,因为它是分三层的:
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接口函数,这样上层通过该接口可以配置网卡,发送和接收网络数据包。
个人观点:
分层开发的代表。很明显的看出来这个驱动开发需要注意的细节问题。
4.一些问题集锦
wince 下网卡驱动开发问题求救[问题点数:200分,结帖人:Seven_zhangxw]
http://topic.csdn.net/u/20081027/19/3F0A9112-A377-4F31-9184-3BDEA075A65C.html
WinCE 网卡驱动求助已解决
http://bbs.driverdevelop.com/read.php?tid-83689.html
wince平台加载网卡驱动后联机异常
http://simplaman.itpub.net/post/2120/269779
http://blog.csdn.net/Ricky_hu/archive/2010/02/21/5315320.aspx
S3C2440 WINCE 5.0上SD接口的WIFI驱动移植上去了,可以检测到网卡,但是搜不到网络[问题点数:100分,结帖人:thisway_diy]
http://topic.csdn.net/u/20090413/22/A1948C63-0D90-459F-9DEF-C826BCB24ECE.html
如何添加自己的网卡驱动 ?[问题点数:20分,结帖人:xxjoyjn]
http://topic.csdn.net/u/20080422/16/9076791C-F6FC-4196-9325-8094F8DB1012.html
目前收集到这些,搜索了下csdn上wince+网卡关键字,30页以后的都没有多大价值了。其他的就是msdn上的一些文档描述。还是需要回头去读下现有的bsp看看现成的代码是如何实现网卡驱动的。继续学习。