每次进入接收时都先清ISR寄存器,即ISR(0页7)=0xFF,已有文章说明,见内。
<a href=http://www.zlgmcu.com/philips/philips-embedsys.asp target=_blank> </a> NE2000网卡芯片驱动程序
网卡没死,只是进入了死锁,你的溢出程序逻辑正确,但不象你想的那样工作,虽然你的单片机
驱动复位,可你凑巧没赶上网卡芯片复位时序(此时内部寄存器被锁存,你从外部改写其值无效,
有一定概率),做过芯片设计很容易理解的。你的程序等待网卡接收,网卡等待单片机复位它,于
是死锁。不论是不是用中断方式,都要清ISR,这与硬件状态机有关,这样做了以后,再怎么溢
出,只会抛包,不会网卡芯片死机。我原来也出现此问题,后来改了以后,用高速率数据发送,
它只会抛,决不会死。经过验证的源程序在文章内。
发表时间:2002年11月9日10:30:00