No.51782 作者:spadaks 邮件:spadaks@sina.com ID:19750 登陆:5次 文章数:2篇 最后登陆IP:202.103.157.1 最后登陆:2006/2/18 10:28:09 注册:2004/4/1 11:34:16 财富:71 发帖时间:2004/4/1 11:40:10 发贴者IP:61.165.24.134 标题:spadaks:请教版主 摘要:No.51782请教版主 你好: 我在用SM5964C40J RTL8019AS 等作51WEB模块, REMOTE DMA 出现一些问 题, 用REMOTE DMA WRITE 方式向从0X4000地址开始的地址块写入80字节,再用 REMOTE DMA READ 方式从0X4000地址开始的地址块中读,所读非所写. 所用代码 列如下,请指教 ! /*****************************************************************************/ /* RTL8019AS Initialize */ /*****************************************************************************/ void ethernet_init(void) { print("\n\r\n\r ethernet_init_begin "); HW_RESET = 1; delay(8000); HW_RESET = 0; delay(8000); temp=EN_RESET; print("\n\r EN_RESET = "); putb_ser(temp); delay(8000); EN_RESET = 0x0; delay(8000); EN_CMD = EN_PAGE0 + EN_NODMA + EN_STOP; /* 00001010B: PS1 PS0 RD2 RD1 RD0 TXP STA STP */ delay(8000); EN0_RCNTLO =0; EN0_RSARHI =0; *((char xdata *)0x8001)=0x46;//PSTART *((char xdata *)0x8002)=0x60;//PSTOP *((char xdata *)0x8003)=0x46;//BNRY *((char xdata *)0x8004)=0x40;//TPSR *((char xdata *)0x800c)=0x04;//RCR *((char xdata *)0x800d)=0x02;//TCR *((char xdata *)0x800e)=0x48; *((char xdata *)0x800f)=0x0ff; *((char xdata *)0x800f)=0x0; EN_CMD = EN_PAGE1 + EN_NODMA + EN_STOP; /* 00001010B: PS1 PS0 RD2 RD1 RD0 TXP STA STP */ EN1_PAR0 = 0x90; EN1_PAR1 = 0x34; EN1_PAR2 = 0x10; EN1_PAR3 = 0x10; EN1_PAR4 = 0x44; EN1_PAR5 = 0x10; EN1_CURR=0x40; EN1_MAR0 = 0xff; EN1_MAR1 = 0xff; EN1_MAR2 = 0xff; EN1_MAR3 = 0xff; EN1_MAR4 = 0xff; EN1_MAR5 = 0xff; EN1_MAR6 = 0xff; EN1_MAR7 = 0xff; EN_CMD = EN_PAGE3 + EN_NODMA + EN_STOP; print("\n\r 9346CR = "); temp=*((char xdata *)0x8001); putb_ser(temp); ......
>>返回讨论的主题
|