mini2440 eboot

nuanshuiping   2009-7-8 09:04 楼主
最近刚买了块开发板。但是给的BSP的eboot里面用的是CS8900,但是板子上面是DM9000,所以现在主要的事情就是将ether.c换成DM9000的接口。。我在网上copy了一份驱动源代码。。。。但是放上去后我就是读不到ID。。。经过盘查。应该是读写IO口的问题

static UCHAR
ReadReg(USHORT offset)
{
IOWRITE(dwEthernetIOBase, offset);
return IOREAD(dwEthernetDataPort);
}
static void
WriteReg(USHORT offset, UCHAR data)
{
IOWRITE(dwEthernetIOBase, offset);
IOWRITE(dwEthernetDataPort, data);
}

#define IOREAD(o)     ((UCHAR)*((volatile UCHAR *)(o)))
#define IOWRITE(o, d)    *((volatile UCHAR *)(o)) = (UCHAR)(d)

其实看起来这个读写时很简单的。。。只是做了这样的一个实验WriteReg(0x1f,3)后。。我去读ReadReg(0x28)..但是我却读到的是03.。。似乎我在这个读写的过程中只是像dwEthernetDataPort赋值,然后就去读这个变量而已。。。
我用友善提供的NK是可以正常上网的。。。。说明时序什么的都是正确的。我的DM9000是连接在NGCS4上面的。所以IOBASE是0x20000300.IOPORT = IOBASE + 4;

没有错啊。。。

但是读ID的时候却每次读到的IOPORT是0,
我猜想是不是DM9000在上电需要什么初始化一下寄存器才可以读ID的吧。。。

能不能帮我解答一下

回复评论 (9)

顶  啊、。。。用过mini2440的应该不少啊
点赞  2009-7-8 11:25
你移植到哪里呢 移植到eboot下吗 还是一只kitl
点赞  2009-7-8 18:09
你要看一下你设置的片选的地址对不对
点赞  2009-7-8 18:12
如果是eboot的话 你找cs8900的地方 然后相应得改到dm9000就可以了
点赞  2009-7-8 18:13
终于自己解决了。。。片选是对的。。但是我用的是物理地址。。应该是虚拟地址
点赞  2009-7-9 08:53
uping
点赞  2009-7-9 09:08
友情帮顶
点赞  2009-7-9 10:04
我也想买一块WinCE开发板,做学习用,呵呵,不知楼主或哪位大虾可以给些建议,买哪家的比较好?什么系列的较常用?感谢
点赞  2009-7-9 12:48
您好,不知道前面各位的问题解了没,你们说的问题小弟并不太懂,但我们目前是divacom在中国区域的总代理,从03年来一直专注于做DM9000及DIVACOM全线产品,对于研发来说,首先是产品质量有保证(为当年全新原装最新版本),然后通过我们可以找到原厂的工程师做技术支持,当然,是免费提供的,说不定我能帮得上大家的忙,以下是我的联系方式    QQ:1259987438 电话:027-8765163610 (0)13554272382 王洪武
点赞  2009-12-12 17:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复