打印
[ZLG-ARM]

LWIP不带os运行,遇到一个问题

[复制链接]
1886|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chen3ten|  楼主 | 2007-3-29 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lwIP, os, ARM, lg, ni
这个程序可以在easyarm2200上运行,把pc机发来的tcp数据原样发回去,用sniffer观察发现有时发出的数据checksum错误,每个包的最后一个字节错了,在生成校验码的时候用的是正确的数据,可包发出来后最后一个字节就错了,在只发一个字节的情况下必错。我用的是zlg的底层发送函数,我觉的是底层的问题,但不知道错在哪里。
相关链接:https://bbs.21ic.com/upfiles/img/20073/2007329222847111.rar

相关帖子

沙发
chen3ten|  楼主 | 2007-3-30 22:24 | 只看该作者

找到原因了

for(ii=0;ii<(len/2);ii++)
{
    WriteToNet(0x10,send_buff.words[ii]);    
}
应改为
for(ii=0;ii<((len+1)/2);ii++)
{
    WriteToNet(0x10,send_buff.words[ii]);    
}
不过还发现一个问题,在发送大量数据的时候,会出现“tcp分段”的情况,但tcp是不分段啊,我想知道在low_level_output的时候每个pbuf是不是存储一个完整的包,会不会一个tcp包分别存储在两个pbuf里。

使用特权

评论回复
板凳
ducha| | 2010-5-24 12:14 | 只看该作者
IP  不分片 ,不是 TCP 不分段

使用特权

评论回复
地板
juventus9554| | 2010-5-27 23:12 | 只看该作者
晕,都三年了……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

35

帖子

0

粉丝