|
@@ -1203,7 +1203,7 @@ static void TcpDataInfoRecvHandle(uint8 *DataRecv, uint16 DataRecvLen)
|
|
|
memcpy(&TcpCmdAnswer[24], (Ptr + 24), 6);
|
|
|
TcpCmdAnswer[30] = bcc_chk(TcpCmdAnswer, 30);
|
|
|
tcpipConnectionSend(SocketId, TcpCmdAnswer, 31);
|
|
|
- vTaskDelay(pdMS_TO_TICKS(1000));
|
|
|
+ vTaskDelay(pdMS_TO_TICKS(5000));
|
|
|
Fota_Ftp(Ptr + 32);
|
|
|
}
|
|
|
else if (*(Ptr + 30) == 0x80) //Ô¶³ÌËø¶¨ÃüÁî
|
|
@@ -1539,11 +1539,6 @@ void Fota_Ftp(uint8 *dataPtrIn)
|
|
|
uint8 *UartData = NULL;
|
|
|
uint8 *FlashData = NULL;
|
|
|
uint8 *fileDataPtr = NULL;
|
|
|
- UartData = pvPortMalloc(512);
|
|
|
- FlashData = pvPortMalloc(512);
|
|
|
-#if SEGGER_PRINTF==1
|
|
|
- SEGGER_RTT_printf("[%d]UartData1=%X\r\n",__LINE__,UartData);
|
|
|
-#endif
|
|
|
memset(ATSendDataBuffer,0x00,sizeof(ATSendDataBuffer));
|
|
|
sprintf(ATSendDataBuffer, "AT+CFTRANTX=\"c:/%s\"\r\n",keyFilename);
|
|
|
UART_Query_Data(UART_LPUART1, UART_LPUART1, ATSendDataBuffer, mstrlen(ATSendDataBuffer), UartRecvBuffer, &ReadLen, pdMS_TO_TICKS(5000));
|
|
@@ -1560,14 +1555,15 @@ void Fota_Ftp(uint8 *dataPtrIn)
|
|
|
Hal_SetAppInfo(fileLen, appReceviedCRC, CONTROLLER_SELF);
|
|
|
while(readLenAsk!=0)
|
|
|
{
|
|
|
-#if SEGGER_PRINTF==1
|
|
|
- SEGGER_RTT_printf("[%d]UartData2=%X,FlashData=%X,err=%d\r\n",__LINE__,UartData,FlashData,getDataLenErrCount);
|
|
|
-#endif
|
|
|
+ UartData = pvPortMalloc(512);
|
|
|
+ FlashData = pvPortMalloc(512);
|
|
|
memset(UartData,0x00,512);
|
|
|
memset(FlashData,0x00,512);
|
|
|
- UART_Reset(UART_LPUART1);
|
|
|
memset(ATSendDataBuffer,0x00,sizeof(ATSendDataBuffer));
|
|
|
sprintf(ATSendDataBuffer, "AT+CFTRANTX=\"c:/%s\",%d,%d\r\n", filenamePtr,currentAddr, readLenAsk);
|
|
|
+#if SEGGER_PRINTF==1
|
|
|
+ SEGGER_RTT_printf("[%d]UartData=%X,FlashData=%X,UartData-1=%X-%X,UartData=%X-%X,UartData+1=%X-%X\r\n",__LINE__,UartData,FlashData,(&UartData)-1,*((&UartData)-1),(&UartData),*((&UartData)),(&UartData)+1,*((&UartData)+1));
|
|
|
+#endif
|
|
|
UART_Query_Data(UART_LPUART1, UART_LPUART1, ATSendDataBuffer, mstrlen(ATSendDataBuffer), UartData, &ReadLen, pdMS_TO_TICKS(5000));
|
|
|
sprintf(findDataBuffer, "+CFTRANTX: DATA,%d", readLenAsk);
|
|
|
if (ReadLen == (readLenAsk+strlen(findDataBuffer)+26))
|
|
@@ -1590,13 +1586,6 @@ void Fota_Ftp(uint8 *dataPtrIn)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
-#if SEGGER_PRINTF==1
|
|
|
- for(uint16 i=0;i<FotaRecvDataLen_8;i++)
|
|
|
- {
|
|
|
- SEGGER_RTT_printf("%02X-%02X ",*(fileDataPtr+i),*(FlashData+i));
|
|
|
- }
|
|
|
- SEGGER_RTT_printf("\r\n[%d]flashcrc=%X,uartcrc=%X,currentAddr = %d,fileDataPtr=%X,retptr=%X\r\n",__LINE__,uartcrc,flashcrc,currentAddr,fileDataPtr,retptr);
|
|
|
-#endif
|
|
|
uint32 secflash = (FlashAddStart + currentAddr) & 0xFFFFF000;
|
|
|
if(secflash>0)
|
|
|
{
|
|
@@ -1620,12 +1609,13 @@ void Fota_Ftp(uint8 *dataPtrIn)
|
|
|
{
|
|
|
getDataLenErrCount++;
|
|
|
}
|
|
|
+ vPortFree(UartData);
|
|
|
+ vPortFree(FlashData);
|
|
|
if(getDataLenErrCount>=100)
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
if(getDataLenErrCount<50&&Hal_FlsCheckIsTransferSucceed()==TRUE)
|
|
|
{
|
|
|
ftp_process++;
|
|
@@ -1640,8 +1630,6 @@ void Fota_Ftp(uint8 *dataPtrIn)
|
|
|
{
|
|
|
ftp_EndFlg = 1;
|
|
|
}
|
|
|
- vPortFree(UartData);
|
|
|
- vPortFree(FlashData);
|
|
|
break;
|
|
|
}
|
|
|
case 7://delete the bin and zl files
|