U-Bootのtftpput:エラー:「アクセス違反」(2)

U-Bootのtftpput:エラー:「アクセス違反」(2)

U-Bootで有効にしましたがCONFIG_CMD_TFTPPUT使用できません。

serverip環境変数を設定しましたipaddr。次のように使用するとタイムアウトします。

u-boot# tftpput            
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP to server 192.168.1.3; our IP address is 192.168.1.106
Filename 'uImage'.
Save address: 0x0
Save size:    0x0
Saving: ##T ###T ####  

起動ファイル名をに設定すると、temp次のエラーが発生します。

u-boot# tftpput          
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP to server 192.168.1.3; our IP address is 192.168.1.106
Filename 'temp'.
Save address: 0x0
Save size:    0x0
Saving: *
TFTP error: 'Access violation' (2)
Not retrying...

Wiresharkキャプチャ:

Wiresharkログ

どんな助け/ポインター/アドバイスがありますか?

ベストアンサー1

編集:保存先の住所とサイズの両方がゼロであることを確認しました。

まだu-bootでtftpputを試していません。コマンドヘルプを見ると、アドレスとサイズがコマンドラインで提供される必要があることがわかります。一度試してみましょう。あなたのプラットフォームでRAMがどこにあるのかわからないので、実際のコマンドラインの例を提供することはできませんが、次のようにする必要があります。

tftpput 80000000 10

----前の答え、上記が役に立たない場合は、まだ役に立つかもしれません。

私は何が起こっているのかを知るためにtftpサーバーでwiresharkを実行します。

そうでない場合は、デバイスのハブ(スイッチの代わりに)を使用し、コンピュータを同じハブに接続してWiresharkを実行できます。 (最近ではハブを見つけるのが難しいです。「昔」のハブがなければ、このハブは適切ではないかもしれません。)

実行中のtftpサーバーについては言及していません。 Linuxベースですか?一般的に使用されるのはdnsmasqとtftpd-hpaです。私はu-bootと一緒に両方を使用しました。

1つの可能性は、オプションの交渉が間違っていることです。

デバイスのイーサネットドライバが小さいパケットにはうまく機能しますが、大きなパケットには機能しない可能性があります。 (しかし、ほとんどのtftp転送は最終的に512バイトのペイロードをネゴシエートするので、パケットは実際にはそれほど大きくはありません。)

おすすめ記事