C51编程:老古,请教您读网卡SRAM的问题
老古大侠,我用的一块DM9008的ISA网卡,目前插在PC机上,在DOS环境下用C语言对其编
程,准备调试好以后再移植到单片机上。
网卡复位,初始化,读取设置MAC地址都是完全按照您《单片机与ISA总线以太网解决方案》
一文介绍的方法进行的,我的理解,这时网卡应该可以接收包了,因为没实现任何协议,只
能接收广播包,监测CURR(当前接收页)与BNRY(最后一个已经读取的页)的差值,如果大于
1 应该有包进来,这时候就开始从RAM里读取包,读取包的程序我基本也是按你读取MAC地址
的程序进行的,只不过把RSAR1设为要读取的页,比如0x4c,把RBCR1设为1,RBCR0设为0,
读取256个数据,不知道这样的思路是否有问题。
目前问题是,我读出的所有数据,读出来单和双地址内容总是一样的,总是成对出现,和读
MAC地址的情况一样。附上我读数据的程序:
void ReadPage(uchar data[],int PageNumber){
int i;
int temp;
SetPage(0);//即你的程序里的page函数
outp(0x249,PageNumber);
outp(0x248,0);
outp(0x24b,1);
outp(0x24a,0);
outp(0x240,0x0a);
for(i=0;i<=255;i++){
temp=inp(0x250);
data[i]=temp;
//data[2*i+1]=temp/0x100;
//printf("data[%d] = %d\n",i,data[i]);
}
}
void ReadData(uchar data[],int StartPage,int EndPage){
for(int i=StartPage;i<=EndPage;i++){
ReadPage(data,i);
data=data+0x100;
}
}
发表时间:2001年10月17日15:24:00