From 3a40c92e09584e3dde2c8d73a43acc29bb1f07cf Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 27 三月 2025 18:05:50 +0800
Subject: [PATCH] 1.5,完善ota升级

---
 keil/include/src/TCPClient.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index fa8123e..1beed56 100644
--- a/keil/include/src/TCPClient.c
+++ b/keil/include/src/TCPClient.c
@@ -23,6 +23,8 @@
 #include "PCA9555.h"
 #include "WS2812.h"
 #include "PCA9555.h"
+#include "mk_flash.h"
+#include <serial_at_cmd_app.h>
 /*******************************************************************************
  *                                  Macro                                      *
  *******************************************************************************/
@@ -155,19 +157,29 @@
         /* 设备ID检查 */
         if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
         {
-              ota_flag=1;
+//              ota_flag=1;
 //              LOG_INFO(TRACE_MODULE_APP,"OTA文件地址名称:%s.\r\n",(char *)&apcSplitStr[2]);
 //              uart_send(UART_ID1, (char *)&apcSplitStr[2],strlen(apcSplitStr[3]), NULL);
 //            memcpy(testdata,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
 //              OTA_Start((HIDO_UINT8*)apcSplitStr[2]);
             
-
 //            g_com_map[OTA_FLAG]=1;
 //            g_com_map[OTA_URL_CHANGDU]=strlen(apcSplitStr[2]) + 1;
 //            memcpy(g_com_map+OTA_URL_INDEX,(HIDO_UINT8*)apcSplitStr[2],strlen(apcSplitStr[2]) + 1);
 //            save_com_map_to_flash();
 //            delay_us(100000);
-//            NVIC_SystemReset(); //软复位回到bootloader
+            uint16_t tmp = 0xCCCC;
+            __disable_irq();
+            result=flash_open(FLASH_ID0,NULL);
+            if(!result) 
+            {
+            flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG
+            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp));
+            flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, FLASH_SECTOR_SIZE);//擦除APPFLAG
+            flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8*)apcSplitStr[2], strlen(apcSplitStr[2]) + 1);
+            }
+            __enable_irq();
+            NVIC_SystemReset(); //软复位回到bootloader
         }
     }
     /* $getlog,id,url */

--
Gitblit v1.9.3