这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 非常想不通的一个tftp问题

共5条 1/1 1 跳转至

非常想不通的一个tftp问题

菜鸟
2003-11-24 22:54:22     打赏
上个星期五,用tftp下载了编译的镜像后,发现之后用tftp下载就再也成功不了了。 我用sniffer抓包,和打开tftp的调试模式(dnlAppVerboseMode=1, tftpTrace=1) 结果是:1.设备发出了Req报文;2.主机回应了第一个Data报文;3.设备没有收到主机的Data报文,重传Req报文几次后结束tftp请求,下载失败。 不过我试着下载一个只有几十个byte的小文件,就能够下载正常。(tftp数据包中数据长度固定为512字节) 今天想了想,记得当时修改了configNet.h中的宏HW_LOAD_STRING #define HW_LOAD_STRING "26:20:20:512:12:2048:8"修改为 #define HW_LOAD_STRING "26:200:200:128:150:512:30:2048:20" 再修改回去就好了,高人们,为何我将MBLK的数目增多了,反而不能用tftp了?我这样修改HW_LOAD_STRING难道有错吗?



关键词: 非常     想不通     一个     问题    

菜鸟
2003-11-26 20:53:00     打赏
2楼
沉到第三页了,顶一下。 是不是我问的问题太离谱了?

菜鸟
2003-11-26 21:07:00     打赏
3楼
你用的是什么网卡? 确定第三项是Mbuf的数目吗?这个定义是根据不同的网卡而不同,是硬件相关的。

菜鸟
2003-11-26 23:48:00     打赏
4楼
这个分配的资源不多了。 是交换机,第一个数26表示是26口交换机。

菜鸟
2003-12-06 01:01:00     打赏
5楼
自己解决了。的确是loadstring有问题。 找到驱动netPool的相关定义NUM_CLUSTER_POOLS值为2,这决定了驱动只能有两个簇pool,但我的loadstring中定义了三个簇pool,代码在初始化时忽略了2048字节的pool。 tftp数据内容固定为512,加上udp,ip,mac头部,超过了512字节,而此时驱动又没有超过512字节的簇供分配,所以tftp下载不了。 现在我仍使用两个簇池,但loadstrnig修改如下: #define HW_LOAD_STRING "26:200:200:512:180:2048:20" 一切正常了。 最近几次我都是自问自答,也没个人真正的帮我解决问题, :(

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]