我正在尝试在stm32f407发现(以太网扩展/ RMII)上运行LwIP,并且我的LwIP调试输出显示:
netif_set_ipaddr: netif address being changed
netif: IP address of interface set to 192.168.1.4
netif: netmask of interface set to 255.255.255.0
netif: GW address of interface set to 0.0.0.0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=arp_timer arg=0
tcpip: etharp_tmr()
etharp_timer
sys_timeout: 0x20000bb8 msecs=5000 handler=arp_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
有些人可以告诉我们发生了什么,为什么运行sys_timeout以及使用什么ip_reass_tmr()。 什么可能产生这种输出的错误?
答案 0 :(得分:1)
输出中没有任何内容(1)表示出现任何错误或错误。
这只是调试输出,由您定义TIMERS_DEBUG
ETHARP_DEBUG
以及可能来自lwip/opt.h
的其他人,以及通过LWIP_DEBUG
全局启用调试打印输出{ {1}}
lwip/debug.h
是一个处理计时器的函数。 TCP / IP堆栈需要各种定时器,例如超时等待IP分片,超时ARP条目,传输/重传TCP段和ACK等
sys_timeout()
来丢弃旧的IP片段,其中不会收到所有IP片段(即使没有任何操作,也会定期调用计时器 - 只要你启用了它lwip堆栈的ip_reass_tmr()
选项。)
(1)除非您已经配置了默认GW为0.0.0.0 - 这意味着您的堆栈只能与本地子网上的设备通信,而不能与192.168.1.4/之外的任何设备通信24个子网。