1.优化ota升级逻辑 master
authord15521469561 <1731678236@qq.com>
Thu, 18 Jun 2026 09:57:52 +0000 (17:57 +0800)
committerd15521469561 <1731678236@qq.com>
Thu, 18 Jun 2026 09:57:52 +0000 (17:57 +0800)
App/src/iap.c
App/src/iot.c

index ce05080..a5cc3a4 100644 (file)
@@ -10,7 +10,9 @@
 IAP_CMD_REPLY_T iap_cmd;
 IAP_CMD_REPLY_T iap_reply;
 
-uint8_t iap_timeout_cnt = 0;//Ä£×éÉý¼¶Ö÷¿ØUSB²»ÔÊÐíÉý¼¶Ö÷¿Ø
+uint8_t iap_app_upgrae_mcu_cnt = 0;//APPÉý¼¶Ö÷¿Ø USB²»ÔÊÐíÉý¼¶Ö÷¿Ø
+
+uint8_t iap_usb_upgrae_mcu_cnt = 0;//USBÉý¼¶Ö÷¿Ø ²»ÔÊÐíÄ£×éÉý¼¶Ö÷¿Ø
 
 uint8_t iap_end_flag = 0;
 
@@ -131,7 +133,7 @@ void Iap_Process(uint8_t* data, uint8_t len)
        memcpy(iap_cmd.other.buf, data, len);
        memcpy(iap_reply.other.buf, iap_cmd.other.buf, 3);
        iap_reply.cmd.status = REPLY_STATUS_NO_CMD;
-       if(iap_cmd.cmd.cmd1 != CMD1_IAP_PANEL || iap_timeout_cnt > 0)
+       if(iap_cmd.cmd.cmd1 != CMD1_IAP_PANEL || iap_app_upgrae_mcu_cnt > 0)
        {
                return;
        }
@@ -139,6 +141,7 @@ void Iap_Process(uint8_t* data, uint8_t len)
        if(iap_cmd.cmd.cmd2 == CMD2_IAP_FETCH || iap_cmd.cmd.cmd2 == CMD2_IAP_CERTIFICATE || iap_cmd.cmd.cmd2 == CMD2_IAP_END || iap_auth == 1)
        {
                // ·ÖÎöÃüÁîÂë
+               iap_usb_upgrae_mcu_cnt = 20;
                switch(iap_cmd.cmd.cmd2)
                {
                        // »ñÈ¡ÐÅÏ¢
@@ -491,9 +494,13 @@ uint8_t Iap_Lite_Verify(uint32_t addr, uint8_t packet_size, uint8_t* data)
 
 void Iap_Lite_Check_TimeOut(void)
 {
-       if(iap_timeout_cnt > 0)
+       if(iap_app_upgrae_mcu_cnt > 0)
+       {
+               iap_app_upgrae_mcu_cnt--;
+       }
+       if(iap_usb_upgrae_mcu_cnt > 0)
        {
-               iap_timeout_cnt--;
+               iap_usb_upgrae_mcu_cnt--;
        }
 }
 
@@ -505,10 +512,14 @@ void Iap_Lite_Process(uint8_t* data, uint16_t len, uint8_t host_type)
        iap_lite_reply.payload.reply = REPLY_STATUS_NONE;
        iap_lite_reply.payload.sub_cmd = iap_lite_cmd->payload.sub_cmd;
        
+       if(iap_usb_upgrae_mcu_cnt > 0)
+       {
+               return;
+       }
        // ¼ì²éЭÒé°æ±¾
        if(iap_lite_cmd->payload.protocol_version == 0x01)
        {
-               iap_timeout_cnt=10;
+               iap_app_upgrae_mcu_cnt=10;
                // ·ÖÎöÃüÁîÂë
                switch(iap_lite_cmd->payload.sub_cmd)
                {
index 9db21e5..866a28f 100644 (file)
@@ -302,11 +302,7 @@ void Iot_Uart_Rx_Handle(uint8_t *data ,uint8_t len)
 
             case 0x0D:
             {
-//                get_key_led_replay_flag = 1;
-//                             // Iot_Stop_Send_Key_Color();
-//                // Iot_Send_Button_Color_Info();
-//                iot_stop_send(0);
-//                iot_send_process(0,(uint8_t *)&led_key_profile[0],5);
+
                                
             }
             break;