给位大神 小弟移植LWIP时候遇到了进入硬件中断的问题,望...
//网卡接收数据(lwip直接调用)//netif:网卡结构体指针//返回值:ERR_OK,发送正常
// ERR_MEM,发送失败
err_t ethernetif_input(struct netif *netif)
{
err_t err;
struct pbuf *p;
p=low_level_input(netif); //调用low_level_input函数接收数据
if(p==NULL) return ERR_MEM;
delay_ms(2);
err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包
if(err!=ERR_OK)
{
LWIP_DEBUGF(NETIF_DEBUG,("ethernetif_input: IP input error\n"));
pbuf_free(p);
p = NULL;
}
return err;
}
err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包运行到这里就进入了硬中断里去了 程序就卡死了 该如何解决呢?
拜托 拜托 还有大神吗?在线坐等 网友都说是因为指针指飞了,才出现进入硬件中断里去的 那么该如何调试呢 有大神可以说上两句吗 建议进入netif->input(p, netif); 函数里面,
单步运行,看看到哪里就出错了。
我估计应该是接收缓冲没有定义好,导致溢出了。
还有一种可能是化LWIP定时器没有初始化,导致出现死等待了。
请检查 sys_arch.c 文件内的 init_lwip_timer 函数。 参考下库自带的lwip文件,对比一下
页:
[1]