C51编程:各位高手们,麻烦看一下老古网站上的有关RTL8019AS的代码。我真的搞不懂了!
void write_dma(unsigned int address,unsigned int count)//写网卡的ram
{//address为要写入到网卡里的ram的起始地址,count为要连续写入的字节数
page(0);
reg09=address>>8;//address high
reg08=address&0xff;//address low
reg0b=count>>8; //write count high
reg0a=count&0xff;//write count low
reg00=0x12 ;//dma write
for(i=0;i<count;i++)
{
reg10=buffer[i];
}
reg0b=0; // count high 中止DMA操作
reg0a=0;// count low
reg00=0x22;//abort/complete dma page 0
}
这个是老古网站上的代码,我看了真的是糊涂了。语句:reg09=address>>8;//address
high reg08=address&0xff;//address low 是设置Remote Dma 地址的。但
reg09=address>>8这个语句不是把address原先的值冲掉了吗?怎么还会用到
reg08=address&0xff;//address low 这个语句呢??????
拜托各位高手解答一下,先谢过了!!!
发表时间:2002年9月30日8:20:00