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