标题 | 阅读 | 评论 | 转发 | 发布日期 | |
---|---|---|---|---|---|
udev的应用 | 846 | 0 | 0 | 2008-05-24 | |
关于linux的framebuffer和s3c2410的硬件接口与时序问题 | 782 | 0 | 0 | 2008-05-24 | |
linux2.6.24下lcd驱动移植的小结 | 1528 | 0 | 0 | 2008-05-24 | |
关于在博创2410开发板上dm9000a的移植总结 | 2501 | 2 | 0 | 2008-05-23 |
stblade2009-11-15 10:04
你好,谢谢你能分享你的经验。 我有个关于dm9000a的问题,麻烦请指点一下。 我的s3c2440-wince5.0板子,由DEMO板访制,多加了个CPLD,但dm9000a没用它。现在调试dm9000a,片选是CS3,中断EINT7,CMD为ADDR2。 症状是:一旦dm9000a有片选,则LCD触摸屏出现黑线,并逐渐发白,触摸、鼠标不能输入,感觉像是卡住了,同时整个板子的电流有较大起伏,约200mA。片选一变高,则一切恢复正常;再一会又有片选时,症状如此反复。全程‘INT’脚没动静。 我想是:dm9000a没有产生中断而占用CPU过长,导致LCD不能刷新。但同样的NK.bin下载到DEMO板就能正常用。 然后我修改platform.reg。(这是本身的没改) [HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms] ... "RecvBuffer"=dword:20 "IrqNumber"=dword:23 "SysIntr"=dword:12 "IoAddress"=dword:18000000 //cs3的起始地址 其中"IrqNumber"应该怎么计算呢?在s3c2440a_intr.h里有:#define EINT7 35,就是这个吗? "SysIntr"的值是SysIntr_firmware+2,即是16+2。 "IoAddress"=dword:18000000,有的说要偏移0x300,即为:18000300 .为啥要偏移? 但是在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注册表和驱动没啥关系,可现在驱动里的片选地址都是错的。 我在其他地方看到有这样的问题:‘DM9000的RX没有打开,并且RX和TX的中断也没有打开’,这个在那里查看?还有MMU的状态,在哪里查看。 打扰了,麻烦指点一下。