EBOOT, TFTP: Desktop losing ACK

近日入手CE6的BSP,遇到一問題,OS映像大了以後,EBOOT無法完成下載。

對於某一NK.BIN, 固定地方發生錯誤,調試信息打印如下:

 <> Record [ 387 ] dwRecAddr = 0x82257988, dwRecLen = 0xA05488
 <> Record [ 388 ] dwRecAddr = 0x82C5CE10, dwRecLen = 0x3CFF0
TFTP: Desktop losing ACK, block number = 21152, Ack again

 

試了兩個NK,都是在大包數據處出問題的。

於是研究了一下大數據包的來源,和出錯的原因。

 

本來以爲分包是TFTP的機制,但聯想到前面的地址,感覺到應該是NK的內存映像分配。

使用viewbin我查到0x82257988初正是一個超大數據包,中文字庫。

 

知道了分包的原理,下面接手查找TFTP出錯的原因,初步考慮應該是超時。

經過調試,發現接收沒有問題,但是隨後的校驗過程引起TFTP超時。

於是在不完全瞭解TFTP機制的情況下,把大包拆小接收,計算校驗,避開了超時的問題,成功下載了NK。

 

或許這個問題有其他更好的辦法。

1. 重新設定超時參數。

2. FTP重建連接。

不過以上我都不會。還望有人指教。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章