问题
移植lwip2.1.2后,直接ping板子ping不通,参考了文章:STM32 LwIP学习过程问题总结(一):LwIP ping不通,抓包发现ICMP校验和为0x0000后,发现自己的lwipopts.h也是正点原子移植过来的,使用硬件校验和时ICMP数据包的校验为0x0000。问题原因lwipopts.h文件中硬件校验和宏定义下是没有添加以下宏定义:
/* CHECKSUM_CHECK_ICMP==0: Check checksums by hardware for incoming ICMP packets.*/
#define CHECKSUM_GEN_ICMP 0
加上之后:
就可以愉快的ping通了!