stblade
驱动牛犊
驱动牛犊
  • 注册日期2009-08-15
  • 最后登录2009-11-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望101点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2354回复:4

如要使用dm9000a网络芯片,在pb5.0-Catalog里要添加什么驱动项

楼主#
更多 发布于:2009-11-08 12:43
如要使用dm9000a网络芯片,在pb5.0-Catalog里要添加什么驱动项
我现在加的是:httpd、soap、nf2.0。
现在板子能启动起来,但是dm9000a的‘int’脚一直没有输出,故而导致占用cup过久,以使LCD触摸屏在dm9000a有片选时出现黑线,并且不能输入,像是卡住了。
现在在超级终端DNW里的显示如下:
....................
I2C Init
IIC IRQ mapping: [IRQ:27->sysIRQ:21].
OEMIoControl: Unsupported Code 0x10100d0 - device 0x0101 func 52
OEMIoControl: Unsupported Code 0x10100f8 - device 0x0101 func 62
EINT7 Enable
CamClockOn = 1  
Camera::Block TX Ended...
CAMERA.DLL::InterruptThread Initialized.
CAMERA: CIS_Open
CIS: IOCTL_POWER_CAPABILITIES
CAMERA: CIS_Open
CAMERA: CIS_Close
DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\AFD). Driver cannot be unloaded.
DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\PPP). Driver cannot be unloaded.
HW_USBClocks::D0
HW_USBClocks::D4
OEMIoControl: Unsupported Code 0x10100fc - device 0x0101 func 63
Lyg.p: Layout Manager successfully initialized to  2
Maximum Allowed Error 1280:
CamClockOn = 0
MSIM: IM_ReadRegistry read KB 5
HW_USBClocks::D0
Explorer(V2.0) taskbar thread started.

请注意红色部分,‘ Driver cannot be unloaded ’这是何意?是啥的驱动?
麻烦大家能指点我一下。
多谢了。
high
论坛版主
论坛版主
  • 注册日期2002-08-10
  • 最后登录2010-07-26
  • 粉丝4
  • 关注0
  • 积分60分
  • 威望655点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分60分
沙发#
发布于:2009-11-10 02:50
你思考的几个点
httpd、soap、nf2.0 和 Driver cannot be unloaded
无关dm9000.
输出信息也不包含任何dm9000的内容。

网卡是ndis的miniport驱动,在注册表的comm下设置。

我觉得思路是
1 研究注册表,先让网卡驱动被加载
2 读dm9000的ID
3 根据硬件,分析网卡所在总线地址
4.让中断工作起来
high
论坛版主
论坛版主
  • 注册日期2002-08-10
  • 最后登录2010-07-26
  • 粉丝4
  • 关注0
  • 积分60分
  • 威望655点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分60分
板凳#
发布于:2009-11-10 02:51
1 研究注册表,先让网卡驱动被加载
2 根据硬件,分析网卡所在总线地址
3 读dm9000的ID
4.让中断工作起来
stblade
驱动牛犊
驱动牛犊
  • 注册日期2009-08-15
  • 最后登录2009-11-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望101点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-11-10 09:10
回 2楼(high) 的帖子
多谢
我的板子是s3c2440,wince5.0,从nand flash启动。
dm9000a的片选是cs3,外部中断是eint7,cmd是addr2。
stblade
驱动牛犊
驱动牛犊
  • 注册日期2009-08-15
  • 最后登录2009-11-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望101点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-11-10 10:06
回 2楼(high) 的帖子
这是dm9000a的注册表信息:(语句后面注释是我对其值的理解)
[HKEY_LOCAL_MACHINE\Comm\DM9CE]
    "DisplayName"="DM9000A 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 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:0
    "XmitBuffer"=dword:20
    "RecvBuffer"=dword:20
    "IrqNumber"=dword:23     //在s3c2440a_intr.h里有:#define EINT7  35 ;
    "SysIntr"=dword:12      //sysintr_ether  (sysintr_firmware+2),即是16+2 ;在intr.c里也有:if (irq==irq_eint7)   {sysintr=0x12;}
    "IoAddress"=dword:18000000    //cs3起始地址,有的说要偏移0x300,即为:18000300 .为啥? 如果改了也不成功。
    "NetworkAddress"="e0aac8de6351"
    
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms\TcpIp]
    "EnableDHCP"=dword:0
    "UseZeroBroadcast"=dword:0
    "DefaultGateway"="192.168.1.1"
    "IpAddress"="192.168.1.8"
    "Subnetmask"="255.255.255.0"
    "DNS"="202.96.128.166"
    ;"WINS"="x.x.x.x"    
但是在dm9isa.cpp里却是:
{ CID_RXBUFFER_NUMBER, 0x10, NDIS_STRING_CONST("RecvBuffer")},  //?上为0x20
{ CID_IO_BASE_ADDRESS, 0x10000000, NDIS_STRING_CONST("IoAddress")},
{ CID_IRQ_NUMBER, 0x03, NDIS_STRING_CONST("IrqNumber")},  //?上为0x23
{ -1,-1,NULL}
注册表信息与驱动信息不同。但好像是说wince注册表和驱动没啥关系,可现在驱动里的片选地址都是错的。
麻烦指点一下。
游客

返回顶部