dm9000 接收数据后会产生中断,这个时候cpu 去接收数据然后处理,过程是这样的。
但是在接收数据中dm9000可能还会再来一次中断,这样的话数据接收就被打断导致错误。
然后分别采用两种思路去解决:
1 关闭dm9000 接收使能 然后接收数据然后把dm9000 的使能模块打开。
2 关闭cpu 总中断然后接收数据然后把cpu 中断再打开。
采用第一种方式的话,关了网卡模块接收使能后,高速数据传输的情况下(tftp 传输10M 文件)40%情况会出现整个网卡模块错误不断的重启。
采用第二种方式的话,由于关中断的时候cpu 能记住中断 pending,所以完全正确。