阅读:968回复:0
关于8139发送数据产生中断的问题(30分)
我仿造LINUX 9.0中的8139too.c写了一个驱动程序, 没用网络设备,而是用的字符设备, 想实现一个很简单的发送功能, 就是直接把一些数( 1200字节长 )写到一个TX DESCRIPTOR中, 其中设DMA的阀值为1024字节.
可是我运行测试程序时,第一次打开设备文件,并写数后: temp=global_card->tx_buf; copy_from_user( temp, buf, n); RTL_W32_F (TxStatus0, tx_flag | max(n, (unsigned int)ETH_ZLEN)); 就能产生一个TX 中断. 但如果不关闭设备,再次写数时,就什么中断都没产生了. 关闭设备,重新打开后写数,也只能产生一次TX中断. 我很迷惑,麻烦各位高手能讲讲8139中断的机制,谢谢! |
|