我试图在LwIP发现(以太网扩展/ RMII)上运行stm32f407,我的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()被用来做什么吗?产生这种输出的错误可能是什么?
发布于 2015-12-15 14:24:15
在您的输出中没有任何(1)表明有任何错误或任何错误。
这只是调试输出,这是由于您已经定义了TIMERS_DEBUG ETHARP_DEBUG,可能还有其他来自lwip/opt.h的调试输出,此外,还可以通过LWIP_DEBUG从lwip/debug.h全局启用调试输出。
sys_timeout()是一个处理计时器的函数。TCP/IP堆栈需要不同的定时器,例如超时等待IP片段、超时ARP条目、传输/重新传输TCP段和ACK等。
ip_reass_tmr()被周期性地调用以丢弃旧的IP片段,其中并不是所有的IP片段都被接收到(即使没有什么可做的,计时器也会周期性地被调用-只要您已经为lwip堆栈启用了IP_REASSEMBLY选项)。
(1)除非您配置了默认的GW 0.0.0.0 --这意味着您的堆栈只能与本地子网上的设备通信,而不能与192.168.1.4/24子网之外的任何设备通信。
https://stackoverflow.com/questions/34290606
复制相似问题