三.网卡初始化

本文详细介绍了网卡初始化的过程,包括如何设置页寄存器、命令寄存器以及各种配置寄存器,如PSTART、PSTOP、BNRY、CURR等,以确保网卡正常工作。文中还纠正了初始化过程中的潜在问题,并提供了初始化子程序ne2000init()的代码示例。
摘要由CSDN通过智能技术生成

---- 完成复位之后,你要对网卡的工作参数进行设置.以使网卡开始工作.
先介绍一个子函数
#define reg00 XBYTE[0xc000] //对应于地址240H 为命令寄存器CR地址

void page(uchar pagenumber)
{ uchar data temp;
temp=reg00;//command register
temp=temp&0x3f;
pagenumber=pagenumber <<6;
temp=temp | pagenumber;
reg00=temp;
}

错误修正:(2001年11月10日) :以上程序有问题,在中断驱动或发送数据包不作等待时,因为发送数据包的命令是让TXP置位,如果在发送数据包的过程中,使用该函数,就会不断地向外发送数据包.原因是TXP置位之后,只能是发完数据包的时候,由网卡内部将TXP位清0,命令不能使TXP清0,对该位写入0没有作用.读取时要屏蔽该位,上面的程序修正如下,请用户使用下面的程序:
void page(uchar pagenumber)
{uchar data temp;
temp=reg00;
temp=temp&0x3B; //注意不是0x3F ,TXP位在平时一定要置为0.
pagenumber=pagenumber<<6
temp=temp|pagenumber;
reg00=temp;
}
从实验当中也发现,只要再置位TXP位就可以重发该数据包(重发数据包时,不需要设置TPSTART,TBCR0,TBCR1).

作用是选择指定的页,网卡共有4页寄存器,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值