调试小记 - 机器(LWIP)启动后再插网线无法联网
问题描述:
机器在插好网线且路由器有网络的情况下启动,能正常联网,而且多次拔插网线后都能正常联网。但是在机器先启动再插网线的情况下,始终无法成功连接。
背景:STM32F103,HAL库,LWIP2.0.0,freeRTOS
调试:
1.打开LWIP调试信息,得到如下信息:
发现机器拒绝了ARP请求。
2.查找资料,发现weijitao博客有LWIP中ARP相关的分析
https://blog.csdn.net/weijitao/article/details/53586167
3.结合自己的发现,使用keil调试时,gnetif中没有获取到IP地址。故初步得出判定,自动获取IP的DHCP出问题了。
4.解决,在ethernetif.c的ethernetif_update_config函数中天下如下代码:
机器启动后再插网线可正常联网。
联网后的ARP调试信息: