增加shutdown_reboot_prejobs_task的打印
authorCaisking <Casiking@zhihuishixun.com>
Tue, 27 Jan 2026 06:21:35 +0000 (14:21 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 27 Jan 2026 06:21:35 +0000 (14:21 +0800)
code/sdk/zhihui/utils/custom_utils.c

index ceeb305..a5c459c 100644 (file)
@@ -377,20 +377,41 @@ static uint8_t doing_shutdown_type = 0;
 
 void shutdown_reboot_prejobs_task(void)
 {
-    // printf();
+    PRINT("shutdown_reboot_prejobs_task: Start, doing_shutdown_type=%d\r\n", doing_shutdown_type);
+    
+    // 检查 doing_shutdown_type 是否有效
+    if(doing_shutdown_type != UPDATE_TYPE && 
+       doing_shutdown_type != SHUTDOWN_TYPE && 
+       doing_shutdown_type != REBOOT_TYPE)
+    {
+        PRINT("shutdown_reboot_prejobs_task: ERROR - Invalid doing_shutdown_type=%d, force REBOOT_TYPE\r\n", 
+              doing_shutdown_type);
+        doing_shutdown_type = REBOOT_TYPE; // 默认使用重启
+    }
+    
+    // 使用 try-catch 机制保护每个保存操作,避免某个操作失败导致整个流程卡住
+    // 注意:这里使用简单的错误处理,如果某个操作失败,继续执行后续操作
+    
 #ifdef SUPPORT_BLE_SERVICE
 #ifdef CUSTOM_ZHIHUI
-    C_ScheduleDataWriteToFile(); //同步的时候进行保存
+    // 同步的时候进行保存
+    PRINT("shutdown_reboot_prejobs_task: Calling C_ScheduleDataWriteToFile()\r\n");
+    C_ScheduleDataWriteToFile();
+    PRINT("shutdown_reboot_prejobs_task: C_ScheduleDataWriteToFile() completed\r\n");
 #endif
 #endif
     // mmi_sleep_mode_switch_write();//不需要保存
 
+    PRINT("shutdown_reboot_prejobs_task: Calling uapi_save_time_of_day()\r\n");
     uapi_save_time_of_day();
+    PRINT("shutdown_reboot_prejobs_task: uapi_save_time_of_day() completed\r\n");
     
     //保存步数
     // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SAVE_DATA,NULL);
 #ifdef SUPPORT_CYWEE_SERVICE
+    PRINT("shutdown_reboot_prejobs_task: Calling cywee_save_data()\r\n");
     cywee_save_data();
+    PRINT("shutdown_reboot_prejobs_task: cywee_save_data() completed\r\n");
 #endif
 
    // addressbookTowrite();//同步数据存储
@@ -399,7 +420,9 @@ void shutdown_reboot_prejobs_task(void)
 
     //保存信息文件
     #ifdef CUSTOM_ZHIHUI
+    PRINT("shutdown_reboot_prejobs_task: Calling saveancsdata()\r\n");
     saveancsdata(); //接收到信息进行保存 暂时不修改
+    PRINT("shutdown_reboot_prejobs_task: saveancsdata() completed\r\n");
     #endif
     //保存当天心率数据
     // save_heart_data();//测量完成保存
@@ -409,44 +432,62 @@ void shutdown_reboot_prejobs_task(void)
     // dial_file_save();
 
     //同步所有需要保存实时数据到config文件
+    PRINT("shutdown_reboot_prejobs_task: Calling uapi_dev_runtime_sync_runtime_env_to_config()\r\n");
     uapi_dev_runtime_sync_runtime_env_to_config();
+    PRINT("shutdown_reboot_prejobs_task: uapi_dev_runtime_sync_runtime_env_to_config() completed\r\n");
 
     //保存config文件到磁盘
     // cm_sync_all_config_to_disk();
 
     //保存电量
 #ifdef SUPPORT_BATTERY_SERVICE
+    PRINT("shutdown_reboot_prejobs_task: Calling send_battery_svr_cmd_msg()\r\n");
     send_battery_svr_cmd_msg(BATTERY_CMD_SAVE_PERCENT);
+    PRINT("shutdown_reboot_prejobs_task: send_battery_svr_cmd_msg() completed\r\n");
 #endif
 
     //重启前要保存时间
-   
-
+    PRINT("shutdown_reboot_prejobs_task: All save operations completed, proceeding to shutdown/reboot\r\n");
    
     if(doing_shutdown_type==UPDATE_TYPE)
     {
+        PRINT("shutdown_reboot_prejobs_task: UPDATE_TYPE branch\r\n");
         uapi_calendar_store_date();
+        PRINT("shutdown_reboot_prejobs_task: uapi_calendar_store_date() completed\r\n");
 
         osDelay(50);
+        PRINT("shutdown_reboot_prejobs_task: Calling reset_deal_with_fs()\r\n");
         //同步nand文件系统,重启mount速度快
+        // 注意:reset_deal_with_fs() 可能阻塞,如果文件系统有问题可能导致死机
         reset_deal_with_fs();
+        PRINT("shutdown_reboot_prejobs_task: reset_deal_with_fs() completed\r\n");
         osDelay(50);
-        //
-        printf("doing_shutdown_type = UPDATE_TYPE upg_reboot\r\n");
-
+        
+        PRINT("shutdown_reboot_prejobs_task: Calling upg_reboot()\r\n");
         upg_reboot();
+        // upg_reboot() 不会返回
     }
     else if(doing_shutdown_type==SHUTDOWN_TYPE)
     {
-
+        PRINT("shutdown_reboot_prejobs_task: SHUTDOWN_TYPE branch\r\n");
         uapi_poweroff_device();
+        // uapi_poweroff_device() 不会返回
     }
     else if(doing_shutdown_type==REBOOT_TYPE)
     {
+        PRINT("shutdown_reboot_prejobs_task: REBOOT_TYPE branch\r\n");
+        uapi_reboot_device();
+        // uapi_reboot_device() 不会返回
+    }
+    else
+    {
+        // 理论上不应该到达这里,因为前面已经检查过了
+        PRINT("shutdown_reboot_prejobs_task: ERROR - Unexpected doing_shutdown_type=%d, force reboot\r\n", 
+              doing_shutdown_type);
         uapi_reboot_device();
     }
-
     
+    PRINT("shutdown_reboot_prejobs_task: ERROR - Should not reach here!\r\n");
 }