|
楼主 |
发表于 2010-8-9 17:39:38
|
显示全部楼层
中断函数如下:
void lwIPEthernetIntHandler(void)
{
unsigned long ulStatus;
ulStatus = EthernetIntStatus(ETH_BASE, false); /* 读取并清除中断状态 */
EthernetIntClear(ETH_BASE, ulStatus);
if(ulStatus) /* 如果发送的是一个TX/RX中断,那么调用底层的中断处理函数*/
{
stellarisif_interrupt(&lwip_netif);
}
#if NO_SYS
/*********************************************************************************************************
**如果系统没有使用一个RTOS,那么我们将所有的lwip处理都放在中断服务程序里面。在接收队列上服务任何的数据包
*********************************************************************************************************/
stellarisif_input(&lwip_netif);
lwIPServiceTimers(); /* LWIP的定时器事件服务*/
#endif
}
已明白原因,实际上,只要中断产生后,会立即去执行stellarisif_input(&lwip_netif)函数,也即检查接收队列中检查有无新的数据,然后做出响应。 |
|