0

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() が何のために使われるのか教えてください。この種の出力を生成する可能性のあるエラーは何ですか?

4

1 に答える 1

1

出力には、問題やエラーがあることを示す何も (1) はありません。

これは単なるデバッグ出力であり、 からのデバッグ出力をグローバルに有効にすることに加えて、TIMERS_DEBUG ETHARP_DEBUGおよびおそらく からの他のものを定義したために発生します。lwip/opt.hLWIP_DEBUGlwip/debug.h

sys_timeout()タイマーを扱う関数です。TCP/IP スタックには、さまざまなタイマーが必要です。たとえば、IP フラグメントの待機のタイムアウト、ARP エントリのタイムアウト、TCP セグメントと ACK の送信/再送信などです。

ip_reass_tmr()IP_REASSEMBLY古い IP フラグメントを破棄するために定期的に呼び出され、すべての IP フラグメントが受信されるわけではありません ( lwip スタックのオプションを有効にしている限り、何もする必要がない場合でも、タイマーは定期的に呼び出されます)。

(1) 0.0.0.0 のデフォルト GW を設定した場合を除きます。これは、スタックがローカル サブネット上のデバイスとのみ通信でき、192.168.1.4/24 サブネット外のデバイスとは通信できないことを意味します。

于 2015-12-15T14:24:15.463 に答える