打印
[ZLG-ARM]

求助关于DM9000驱动问题

[复制链接]
2976|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xubin4858|  楼主 | 2009-8-17 13:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
不爱说话| | 2009-8-18 11:56 | 只看该作者
有硬件吗?如果有的话,先试着编程读写DM90000的寄存器,没问题后再编写发包收包函数,最后移植一个TCPIP协议栈。

使用特权

评论回复
板凳
synics| | 2009-8-23 15:59 | 只看该作者
dm9000.def文件中可以看到dm9000的驱动程序(dm9000.dll)exports的函数只有DriverEntry。从名字上也可以看出这是该dll文件入口。

     下面详细看下这个入口函数(在driver.cpp中实现):在这个函数中主要有一个NdisMInitializeWrapper(),这个函数的作用就是notifies NDIS that a new miniport is initializing。此函数在ndis.dll中提供,直接调用就可以。

接下来就是给NDIS40_MINIPORT_CHARACTERISTICS这个结构体变量初始化,主要是设置一些回调函数(MiniportInitialize,MiniportReset,MiniportInterruptHandler,MiniportISRHandler,MiniportQueryInformation,MiniportSetInformation,MiniportSend),很明显这些函数有些要自己实现的。

再下来就是NdisMRegisterMiniport()了,This function registers an NIC or intermediate driver's Miniport_* entry points and name with the NDIS library when the driver initializes。就是用刚才初始化的那个结构体注册。在publiccommonoakdrivers etsamppassthruminiport.c中微软提供了一系列Miniportxxxx函数的实现范例。help中对MiniportInitialize的解释是:This function is a required function that sets up a network adapter, or virtual network adapter, for network I/O operations, claims all hardware resources necessary to the network adapter in the registry, and allocates resources the driver needs to carry out network I/O operations.

      不用问,接下来就是MiniportInitialize了。在其中有NIC_DRIVER_OBJECT类的初始化,以及该类的EDriverInitialize函数调用,在此函数中全面展开了dm9000的所有初始化操作。主要是通过DeviceEntry()这个函数来实现(这个函数实现在dm9000.cpp文件中),在DeviceEntry这个函数中只做了一件事:new了一个C_DM9000类的实例并return。接下来就该C_DM9000的实例表演了(表演场地为上文提到的EDriverInitialize函数中):DeviceSetDefaultSettings();DeviceSetEepromFormat();DeviceRetriveConfigurations(hconfig);EDeviceValidateConfigurations()等等,一套非常漂亮的动作耍完之后又轮到NIC_DRIVER_OBJECT了,它只是个主持人,宣布下一个节目是DriverStart()(舞台在MiniportInitialize中),实际上表演人还是C_DM9000。其实C_DM9000的表演也很简单但是比较重要,它在此DeviceEnableInterrupt()启动了中断,接下来就是无休止的等待,接收,发送了。从此踏上了不归路.....

使用特权

评论回复
地板
贾君鹏子| | 2010-2-10 22:07 | 只看该作者
楼上的……

使用特权

评论回复
5
juventus9554| | 2010-2-14 17:44 | 只看该作者
呵呵,看的头晕

使用特权

评论回复
6
linhai1986| | 2010-2-20 23:04 | 只看该作者
是啊,看的有点头晕,不过回答的还是挺好的

使用特权

评论回复
7
易达口香糖| | 2010-2-28 17:06 | 只看该作者
招来代理了……

使用特权

评论回复
8
五谷道场| | 2010-3-5 19:18 | 只看该作者
有的代理还是很不错的

使用特权

评论回复
9
hulan1985| | 2010-5-15 20:49 | 只看该作者
代理和技术支持很多很不错的

使用特权

评论回复
10
没水的壶| | 2010-5-17 13:42 | 只看该作者
不懂,新手进来学习

使用特权

评论回复
11
寂寞男孩| | 2010-5-17 21:12 | 只看该作者
3楼的回答的不错嘛~~~

使用特权

评论回复
12
午夜粪车| | 2010-5-17 22:54 | 只看该作者
是啊,好详细啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

141

帖子

3

粉丝