wince下DM9000A网卡驱动移植及学习总结---1
2013-07-13 23:19
239 查看
wince下DM9000A网卡驱动移植及学习总结
函数层次调用关系:
首先,对src\Dm9000a文件夹下的文件做一个说明:Driver.cpp文件中主要是驱动入口DriverEntry,设置一些对NDIS库的接口函数,形如MiniportXXXX,然后在MiniportXXXX的函数实现中调用:类:
NIC_DRIVER_OBJECT的函数来实现功能,所以MiniportXXXX层函数相当于调用类:
NIC_DRIVER_OBJECT的DriverXXXX函数,再继续查看DriverXXXX函数,会发现它们是调用NIC_DEVICE_OBJECT类的相应函数的。
Device.cpp主要实现的类:NIC_DEVICE_OBJECT的函数,但是这个类有很多虚函数,在Device.h中,而在Dm9isa.h中会发现下面语句:
Class C_DM9000 : public NIC_DEVICE_OBJECT
这样就会知道Device.h中的虚函数都是在Dm9isa.cpp文件中的类C_DM9000的函数实现真正功能的。
函数的层次调用基本就是这样,下面先大致介绍一些wince网络驱动,然后详细分析整个网卡驱动。
Wince网络驱动简介
1. WinCE网络介绍:
在WinCE中,网络架构和windows系统差不多。通过NDIS,WinCE系统和网卡及网络协议进行交互。NDIS提供了一个完全的网络驱动的抽象层,目前WinCE支持NDIS5.1,其中包括对RNDIS,NDISWAN,TokenRing等的支持。在WinCE中,整个网络架构体系如图:
WinSock是提供给应用层的接口,一般开发网络应用都会用Winsock接口来开发。往下就是协议层,IrDA和TCP/IP都基于NDIS层以上,通过NDIS封装层和底层的驱动进行交互。NDIS包含了网卡的驱动,就是图中的Miniport
Driver。实际的网卡驱动就是指Miniport Driver,它向上为NDIS提供了Miniport相关的接口函数,向下则通过NDIS的接口来访问硬件网卡。
2 WinCE网络驱动架构
在WinCE中,开发网卡驱动就是写一个Miniport Driver,导出相应的Miniport接口函数,调用NDIS的接口访问底层硬件。驱动架构如图:从图中清楚地看到Miniport driver所处的位置。在WinCE中支持三种类型的网络驱动:Miniport
driver,Intermediate driver和Protocol driver。这里,只介绍针对硬件网卡的驱动,也就是Miniport driver。Miniport
driver直接管理硬件网卡,它使用NDIS Library中的接口函数读写硬件网卡,同时对上层导出Miniport接口函数,这样上层通过该接口可以配置网卡,发送和接收网络数据包。(以上是从网上下载的文章:《WinCE
Network驱动开发简介》
中摘抄的,下面有些是摘自这篇文章)。
相关文章推荐
- wince下DM9000A网卡驱动移植及学习总结---3
- wince下DM9000A网卡驱动移植及学习总结---2
- wince下DM9000A网卡驱动移植及学习总结---4
- AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
- AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
- 2440下vxWorks DM9000A网卡驱动移植
- tiny4412学习(三)之移植linux-4.x驱动(1)支持网卡驱动
- 今天移植了2.6.25的网卡驱动 总结一下
- 友坚U-boot-1.1.6学习及移植dm9000a驱动
- AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
- AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
- Linux内核学习笔记之网卡驱动的详细分析:RTL8139
- Linux内核与驱动开发学习总结:中断和中断处理(八)
- uboot1.3.4(带DM9000A网卡)移植到扬创2440-F的移植详细步骤 .
- bf561---uClinux下RT73无线网卡驱动移植
- 网卡DM9000的驱动移植
- s5pc100开发板网卡驱动的移植
- RT-Thread 学习笔记(十三)--- 开启基于RTGUI的LCD显示功能(3)<触屏屏驱动移植和测试>
- 3G USB modem 驱动移植总结
- 基于mini6410的linux驱动学习总结(五 字符设备驱动程序实例分析(虚拟设备驱动))