2440下vxWorks DM9000A网卡驱动移植(莫同学)
1.从网上下载一个DM9000A的BSP,查看源代码分析网卡初始化流程,具体修改代码。
2.根据原理图确定DM9000的基地址,utu2440使用的是CS3片选,首先确定基地址为0x18000000,对网
卡操作的地址为0x18000000+0x300(经测试不加0x300偏移也行,网上说是为了兼容ISA),IOBASE即
为0x18000000,IODATA为0x18000000+0x04。首先保证操作的地址是正确的,然后修改DM9000_IN_ADDR
、DM9000_IN_ADDR、DM9000_OUT_ADDR、DM9000_IN_BYTE、DM9000_OUT_BYTE、DM9000_IN_WORD、
DM9000_OUT_WORD、DM9000_OUT_CHAR、DM9000_IN_CHAR这些宏定义,因为DM9000是地址控制复用了,
所以写命令时先写控制信号,再写数据信号。
/*读取内容*/
#define DM9000_IN_CHAR(addr,data)/
{ /
(*(volatile UCHAR *)(DM9000_IOADDR) = addr); /
(data = *(volatile UCHAR *)(DM9000_IODATA)); /
}
/*写寄存器*/
#define DM9000_OUT_CHAR(addr,value)/
{ /
(*(volatile UCHAR *)(DM9000_IOADDR) = a