软件版本:FreeRTOS10,lwip1.4.1
平台:Ti TM4C1294
开发环境:CCS 6
问题:网卡1能够ping通,网卡2无法ping通
解决办法:通过打开LWIP_DEBUG选项,然后打开IP_DEBUG选项跟踪调试,发现执行到如下代码内,导致ping不通
也就是说netif =NULL,导致ping不通,我单步跟踪了消息队列内的网卡,发现不是NULL,那说明问题出现在ip_input函数内,通过不断查找发现如下代码:
这段代码的主要作用是遍历网卡链表,找出是哪一块网卡接收到数据,问题就出在画红圈的地方,如果找到网卡就应该break该循环,而不是netif=netif->next ,当有两个网卡时,相当于netif拿到的网卡是该网卡2之后的那个网卡,而网卡2之后连接的是NULL,因为不存在网卡3,也就会使netif=NULL,将该语句注释掉,换换成break,正常,问题解决,不过该代码在有一块网卡的情况下是正常的。