描述符有一个可通过软件进行编程的中断位。当以太网模块正在处理一个描述符并发现该位处于置位状态时,它通过将IntStatus寄存器中的RxDoneInt或TxDoneInt位传递给中断输出管脚来触发一个中断(在将状态提交给存储器之后)。如果描述符中的中断位没有置位,则RxDoneInt和TxDoneInt也不置位并且也不触发中断(注意:IntEable中的对应位必须置位才能触发中断),这样可以灵活地管理描述符数组。例如,设备驱动程序能够添加10帧信息给Tx描述符数组,也可以将数组中描述符编号5的中断置位。这样做可在发送描述符数组完全用完之前调用中断服务程序。设备驱动程序能够在不打断连续的帧传输的情况下向描述符数组添加另一组帧信息。
以上是周公的UM_1中的中文翻译。现在我想问,如果我的接收DMA的一个缓冲区大小定义为1500,数量为2个,那我在接收的网络一帧数据小于1500的情况下是不是不会产生RxDoneInt中断???还是当接收完一帧数据(比如10个字节)时会产生RxDoneInt中断??? |