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