[ZLG-ARM] 求助,SmartARM2200系列开发试验板中关于TCPIP协议栈的问题?

[复制链接]
2368|4
 楼主| zhx1980 发表于 2007-8-10 10:21 | 显示全部楼层 |阅读模式
请问周工,本人使用贵司的SmartARM2200系列开发试验板。在调试使用TCPIP协议栈的tcp与PC传输文件时,发现接收数据有误。后查看板子及代码,发现8019as使用的是8位数据总线,而在uint8&nbsp;Rec_Packet()&nbsp;函数内部<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint8&nbsp;REC_BUFF_NUM=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint8&nbsp;bnry,curr;&nbsp;&nbsp;//?可否只做局部?<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint16&nbsp;tmp[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;//static&nbsp;uint16&nbsp;crt=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;*&nbsp;REC_BUFF_PTR_WORDS;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;*&nbsp;REC_BUFF_PTR_BYTES;<br /><br />//读取一包的前4个字节:4字节的8019头部<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt2;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />*REC_BUFF_PTR_WORDS=ReadFromNet(0x10);//远程DMA端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp=*REC_BUFF_PTR_WORDS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REC_BUFF_PTR_WORDS++;}<br />及&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length=tmp[1];//计算出要读取的帧的长度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(ii=0;ii&lt((length+1)/2);ii++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*REC_BUFF_PTR_WORDS=ReadFromNet(0x10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REC_BUFF_PTR_WORDS++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />处却用到了16位的数据读取。这样是不是有问题呢。当然,其他地方都用的是8位的数据。<br /><br />谢谢解答!!!<br />
 楼主| zhx1980 发表于 2007-8-14 08:54 | 显示全部楼层

一直关注着,敬请帮忙解答!谢谢。

请问周工,本人使用贵司的SmartARM2200系列开发试验板。在调试使用TCPIP协议栈的tcp与PC传输文件时,发现接收数据有误。后查看板子及代码,发现8019as使用的是8位数据总线,而在uint8&nbsp;Rec_Packet()&nbsp;函数内部<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint8&nbsp;REC_BUFF_NUM=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint8&nbsp;bnry,curr;&nbsp;&nbsp;//?可否只做局部?<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;uint16&nbsp;tmp[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;//static&nbsp;uint16&nbsp;crt=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;*&nbsp;REC_BUFF_PTR_WORDS;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;*&nbsp;REC_BUFF_PTR_BYTES;<br /><br />//读取一包的前4个字节:4字节的8019头部<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt2;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />*REC_BUFF_PTR_WORDS=ReadFromNet(0x10);//远程DMA端口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp=*REC_BUFF_PTR_WORDS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REC_BUFF_PTR_WORDS++;}<br />及&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length=tmp[1];//计算出要读取的帧的长度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(ii=0;ii&lt((length+1)/2);ii++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*REC_BUFF_PTR_WORDS=ReadFromNet(0x10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REC_BUFF_PTR_WORDS++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />处却用到了16位的数据读取。这样是不是有问题呢。当然,其他地方都用的是8位的数据。<br /><br />谢谢解答!!!
 楼主| zhx1980 发表于 2007-8-15 23:22 | 显示全部楼层

zlgARM

谢谢!<br />已经解决了!只是速度太慢了点!
armecos 发表于 2007-8-16 06:17 | 显示全部楼层

第三方可以提供更快的协议栈

600-700kbps<br />www.armecos.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部