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