dm9000在wince6.0上的移植过程
发 布 时 间 : 2009-11-04
来 源 : 来自网络
作 者 : 佚名
浏 览 :
1、将dm9000a文件夹放到\WINCE600\PLATFORM\zylonite_mhlv\SRC\DRIVERS下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
并做以下修改MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
A、g_szDm9ConfigParams[]修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
{ CID_IO_BASE_ADDRESS, 0x14000300, NDIS_STRING_CONST("IoAddress")},MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这项又硬件而定,ZW310的dm9000地址为0x14000300MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
B、dm9isa.h中修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#defineMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
DM9000_DATA_OFFSETMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
0x02MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这个参数取决于CMD接在A几上,A1为2,A2为4MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
2、打开在driver目录下的dirs文件,在该文件里将dm9000加入到dirs中MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
如:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
….MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
dm9000a\MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
3、添加dm9000注册项到系统中,在platform.reg添加如下,MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
注: MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
l"IrqNumber"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
感觉这个地方没有什么用,我就随便写了个,我试过写成别的值,也是可以的MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
l"SysIntr"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这个要写成dm9000的int端的中断产生的逻辑中断值,ZW310用的是GPIO102,逻辑中断值要用静态的。添加方法如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
bsp_cfg.h中添加 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#define SYSINTR_DM9000 (SYSINTR_FIRMWARE+7) // 23MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
BSPIntrInit()函数中添加 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
OALIntrStaticTranslate(SYSINTR_DM9000,IRQ_GPIO_SHARE(PXA_GPIO_DEBUG_ETH_INT_ID));MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
lOEMInterruptDisable()、OEMInterruptDone()、OEMInterruptEnable()、OEMInterruptHandler()中部需要添加对GPIO102的处理,对GPIO的所有pin,BSP都已经统一实现,以后会对怎么实现,单独写一篇总结进行介绍。MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
4、将dm9isa.dll编译进系统,修改platform.bib如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
5、在zylonite_mhlv.bat中添加并设置环境变量如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
set BSP_NODM9000=MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
6、验证有没有成功移植 可以ping 192.168.0.11
并做以下修改MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
A、g_szDm9ConfigParams[]修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
{ CID_IO_BASE_ADDRESS, 0x14000300, NDIS_STRING_CONST("IoAddress")},MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这项又硬件而定,ZW310的dm9000地址为0x14000300MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
B、dm9isa.h中修改如下MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#defineMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
DM9000_DATA_OFFSETMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
0x02MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这个参数取决于CMD接在A几上,A1为2,A2为4MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
2、打开在driver目录下的dirs文件,在该文件里将dm9000加入到dirs中MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
如:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
….MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
dm9000a\MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
3、添加dm9000注册项到系统中,在platform.reg添加如下,MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
CODE:
IF BSP_NODM9000 !MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Group"="NDIS"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"ImagePath"="dm9isa.dll"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Route"=multi_sz:"dm9ce1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Group"="NDIS"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"ImagePath"="dm9isa.dll"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Bind"="dm9ce1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"BusNumber"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"BusType"=dword:1MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"XmitBuffer"=dword:20MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"RecvBuffer"=dword:20MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"IrqNumber"=dword:17 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"SysIntr"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"EnableDHCP"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"UseZeroBroadcast"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DefaultGateway"="192.168.0.1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"IpAddress"="192.168.0.11"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Subnetmask"="255.255.255.0"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DNS"="192.168.0.1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
ENDIF BSP_NODM9000 !
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä[HKEY_LOCAL_MACHINE\Comm\DM9CE]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Group"="NDIS"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"ImagePath"="dm9isa.dll"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE\Linkage]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Route"=multi_sz:"dm9ce1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DisplayName"="DM9000A/9010 ISA Fast Ethernet Adapter"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Group"="NDIS"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"ImagePath"="dm9isa.dll"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Bind"="dm9ce1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"BusNumber"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"BusType"=dword:1MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"XmitBuffer"=dword:20MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"RecvBuffer"=dword:20MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"IrqNumber"=dword:17 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"SysIntr"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"EnableDHCP"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"UseZeroBroadcast"=dword:0MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DefaultGateway"="192.168.0.1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"IpAddress"="192.168.0.11"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"Subnetmask"="255.255.255.0"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
"DNS"="192.168.0.1"MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
ENDIF BSP_NODM9000 !
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
注: MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
l"IrqNumber"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
感觉这个地方没有什么用,我就随便写了个,我试过写成别的值,也是可以的MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
l"SysIntr"=dword:17MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
这个要写成dm9000的int端的中断产生的逻辑中断值,ZW310用的是GPIO102,逻辑中断值要用静态的。添加方法如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
bsp_cfg.h中添加 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
#define SYSINTR_DM9000 (SYSINTR_FIRMWARE+7) // 23MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
BSPIntrInit()函数中添加 MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
OALIntrStaticTranslate(SYSINTR_DM9000,IRQ_GPIO_SHARE(PXA_GPIO_DEBUG_ETH_INT_ID));MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
lOEMInterruptDisable()、OEMInterruptDone()、OEMInterruptEnable()、OEMInterruptHandler()中部需要添加对GPIO102的处理,对GPIO的所有pin,BSP都已经统一实现,以后会对怎么实现,单独写一篇总结进行介绍。MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
4、将dm9isa.dll编译进系统,修改platform.bib如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
CODE:
IF BSP_NODM9000 !MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
dm9isa.dll $(_FLATRELEASEDIR)\dm9isa.dll NK SHKMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
ENDIF BSP_NODM9000 !
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ädm9isa.dll $(_FLATRELEASEDIR)\dm9isa.dll NK SHKMzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
ENDIF BSP_NODM9000 !
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
5、在zylonite_mhlv.bat中添加并设置环境变量如下:MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
set BSP_NODM9000=MzýnÇÃ2zhanwei.seaskyer.net¼Ò»²È2`Ä
6、验证有没有成功移植 可以ping 192.168.0.11