工具/软件:TI-RTOS
全部。
我在通过 http 协议下载文件时遇到了一个奇怪的问题。
我在电路板上设置了一个 http 服务器、以便将 存储在闪存文件系统中的内部文件导出 到本地 PC。
存储的文件 是正确的(我还通过 USB 协议进行了这样的导出、一切都很好)。
观察到的问题包括随机位置的一个错误半字节、例如:
-右半字节应为0001或0010或0100,但在文件中半字节变为1001或1010或1100。
此类错误始终位于第一个半字节和位#4中。
用于下载文件的代码如下所示:
----------------------------------
C 代码开始
------------------------------
totalBytesCopied = 0;
字节 Read = APPDATA_general_buffer_size;
byteSize = htmlFileSize;
https://SendStatusLine (htmlSock、HTTP_OK、content_Type_applet);//发送 HTTP 状态行*/
sprintf (httpBuffer,"内容处置:附件;fileName=%s;\r\n",&filename[1]);
httpSendClientStr( htmlSock、httpBuffer );
httpSendClientStr( htmlSock、"Accept-ranges: bytes\r\n");
sprintf( httpBuffer,"Content-Length:%d\r\n\r\n",htmlFileSize );
httpSendClientStr( htmlSock、httpBuffer );
while (true)
{
if (byteSize =0) break;
if (byteSize < bytesRead){ bytesRead = byteSize;}
memcpy( appDataGENC.buffer,(unsigned char*)(fatfsbuffer+totalBytesCopied ),bytesRead );
totalBytesCopied += bytesRead;
RET = SEND (htmlSock、(char*) appDataGENC.buffer、bytesRead、0);
if (ret =-1){ os_Error("send socket error (-1)");break;}
if (ret < bytesRead){ os_Error("send socket error bytes");break;}
byteSize --= bytesRead;
}
----------------------------------
C 代码结束
------------------------------
现在、我将做更多的测试、但如果有任何关于此问题的建议、我将不胜感激。
此致、
Marco Cristellari