补充开机流程打印 3364/1 3364/head 3374/target/1
authorcaisking <caiyqm@qq.com>
Fri, 24 Apr 2026 03:00:37 +0000 (11:00 +0800)
committercaisking <caiyqm@qq.com>
Fri, 24 Apr 2026 03:00:37 +0000 (11:00 +0800)
code/sdk/application/brandy/brandy_recovery/app_os_init.c
code/sdk/application/brandy/brandy_standard/board_init.c
code/sdk/application/wearable/fd272/nativeapp/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/main/src/MainViewSample.cpp
code/sdk/drivers/chips/brandy/porting/button/button_porting.c
code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp
code/sdk/zhihui/drivers/vibrator/service/vibrator_service.cpp

index 3fb8954..e090bc7 100644 (file)
@@ -37,6 +37,7 @@
 #define TASK_COMMON_APP_DELAY_MS 1000
 #define OSDELAY  1000
 #define UPG_FLAG_OFFSET_OF_FOTA_DATA (0x1000 * 2)
+#define BOOT_FLOW_PREFIX "[BOOT_FLOW][开机流程] "
 
 typedef void (*CreateQueueFunction_t)(void);
 
@@ -85,10 +86,12 @@ void app_os_init(const void *unused1, unsigned int unused2)
 {
     UNUSED(unused1);
     UNUSED(unused2);
+    PRINT(BOOT_FLOW_PREFIX "升级模式:app_os_init开始" NEWLINE);
 
     // Create queues before tasks in case they are used during initialisation.
     for (uint8_t i = 0; i < M_NUM_TASKS; i++) {
         if (g_app_tasks[i].create_queue_fn_p) {
+            PRINT(BOOT_FLOW_PREFIX "升级模式:为任务[%u]创建队列" NEWLINE, i);
             g_app_tasks[i].create_queue_fn_p();
         }
     }
@@ -105,7 +108,10 @@ void app_os_init(const void *unused1, unsigned int unused2)
         if (g_app_tasks[i].task_handle == NULL) {
             panic(PANIC_TASK_CREATE_FAILED, i);
         }
+        PRINT(BOOT_FLOW_PREFIX "升级模式:任务[%u]创建完成,句柄=0x%x" NEWLINE,
+              i, (unsigned int)g_app_tasks[i].task_handle);
     }
+    PRINT(BOOT_FLOW_PREFIX "升级模式:app_os_init结束" NEWLINE);
 }
 
 static void emmc_init(void)
@@ -161,24 +167,31 @@ static void upg_putc(const char c)
 static void app_main(const void *unused)
 {
     UNUSED(unused);
+    PRINT(BOOT_FLOW_PREFIX "升级模式:app_main开始" NEWLINE);
     los_vfs_init();
+    PRINT(BOOT_FLOW_PREFIX "升级模式:文件系统框架初始化完成" NEWLINE);
     uint32_t ret = (uint32_t)dpal_driver_base_init();
     if (ret != 0) {
         panic(PANIC_ASSERT, __LINE__);
     }
+    PRINT(BOOT_FLOW_PREFIX "升级模式:驱动基础初始化完成" NEWLINE);
 #ifdef CFG_DRIVERS_MMC
     emmc_init();
+    PRINT(BOOT_FLOW_PREFIX "升级模式:eMMC初始化完成" NEWLINE);
 #endif
 #ifdef CFG_DRIVERS_NANDFLASH
     yaffs_nand_drv_checkptset(YAFFS_CHECKPT_SKIPED);
     nandflash_init();
+    PRINT(BOOT_FLOW_PREFIX "升级模式:NAND Flash初始化完成" NEWLINE);
 #endif
 #ifdef SUPPORT_RECOVERY_DISPLAY
     recovery_display_init();
     recovery_display_sample();
+    PRINT(BOOT_FLOW_PREFIX "升级模式:升级界面已显示" NEWLINE);
 #endif
     printf("fs init success.\r\n");
     if (upg_need_upgrade()) {
+        PRINT(BOOT_FLOW_PREFIX "升级模式:检测到需要升级" NEWLINE);
         printf("need upgrade\r\n");
         upg_func_t upg_func = {0};
         upg_func.malloc = malloc;
@@ -190,15 +203,19 @@ static void app_main(const void *unused)
         if (err != ERRCODE_SUCC) {
             printf("--------------------------\r\n");
             printf("upgrade failed, ret = 0x%x\r\n", ret);
+            PRINT(BOOT_FLOW_PREFIX "升级模式:升级失败,ret=0x%x" NEWLINE, ret);
         } else {
             // 升级后重启
             printf("--------------------------\r\n");
             printf("upgrade success, reset now\r\n");
+            PRINT(BOOT_FLOW_PREFIX "升级模式:升级成功,准备重启" NEWLINE);
         }
     } else {
         // 不应该进入该分支
         printf("--------------------------\r\n");
         printf("no need upgrade, this branch will never enter\r\n");
+        PRINT(BOOT_FLOW_PREFIX "升级模式:未检测到升级(异常分支)" NEWLINE);
     }
+    PRINT(BOOT_FLOW_PREFIX "升级模式:调用upg_reboot重启" NEWLINE);
     upg_reboot();
 }
index adb55a9..1be94b4 100644 (file)
@@ -121,13 +121,14 @@ static startup_reason_t startup_reason = STARTUP_OTHER;
 #define PWRKEY_CHECK_INTERVAL_MS 200\r
 #define PWRKEY_HOLD_TIME_MS      2000\r
 #define PRESS_COUNT_LIMIT        (PWRKEY_HOLD_TIME_MS / PWRKEY_CHECK_INTERVAL_MS)\r
+#define BOOT_FLOW_PREFIX         "[BOOT_FLOW][开机流程] "\r
 static uint64_t g_boot_stage_last_ms = 0;\r
 \r
 static void boot_log_stage(const char *stage_name)\r
 {\r
     uint64_t now_ms = uapi_ulp_systick_get_ms();\r
     uint64_t delta_ms = now_ms - g_boot_stage_last_ms;\r
-    PRINT("【开机流程】%s,当前时间=%llu ms,阶段耗时=%llu ms"NEWLINE,\r
+    PRINT(BOOT_FLOW_PREFIX "%s,当前时间=%llu ms,阶段耗时=%llu ms"NEWLINE,\r
         stage_name, (unsigned long long)now_ms, (unsigned long long)delta_ms);\r
     g_boot_stage_last_ms = now_ms;\r
 }\r
@@ -154,7 +155,7 @@ static button_press_state_t porting_function_button_get_state(void)
 \r
 static void _poweroff(void)\r
 {\r
-    PRINT("【开机流程】执行关机流程:清中断、配置低功耗寄存器"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "执行关机流程:清中断、配置低功耗寄存器"NEWLINE);\r
     /* clr ulp int and event */\r
     writel(0x5702C1E4, 0x3F);\r
     writel(0x5702C1EC, 0x3F);\r
@@ -307,7 +308,7 @@ bool need_enter_safemode(void)
 {\r
     button_press_state_t pwrkey_state = porting_button_get_state();\r
     button_press_state_t function_key_state = porting_function_button_get_state();\r
-    PRINT("【开机流程】安全模式检测:电源键=%d 功能键=%d (0=按下 1=松开)"NEWLINE,\r
+    PRINT(BOOT_FLOW_PREFIX "安全模式检测:电源键=%d 功能键=%d (0=按下 1=松开)"NEWLINE,\r
         pwrkey_state, function_key_state);\r
     if (PRESSED == pwrkey_state && PRESSED == function_key_state)\r
     {\r
@@ -319,11 +320,11 @@ bool need_enter_safemode(void)
 void board_init(uint32_t flash_id, uint32_t flash_unique_id)\r
 {\r
     g_boot_stage_last_ms = uapi_ulp_systick_get_ms();\r
-    PRINT("【开机流程】board_init开始,flash_id=0x%x, flash_uid=0x%x, t0=%llu ms"NEWLINE,\r
+    PRINT(BOOT_FLOW_PREFIX "board_init开始,flash_id=0x%x, flash_uid=0x%x, t0=%llu ms"NEWLINE,\r
         flash_id, flash_unique_id, (unsigned long long)g_boot_stage_last_ms);\r
 \r
     /* flash init */\r
-    PRINT("【开机流程】开始初始化Flash"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "开始初始化Flash"NEWLINE);\r
     flash_funcreg_adapt(0);\r
     flash_save_manufacturer(0, flash_id);\r
     uapi_flash_init(0);\r
@@ -332,15 +333,15 @@ void board_init(uint32_t flash_id, uint32_t flash_unique_id)
     PRINT("Flash id is %x, init success"NEWLINE, flash_id);\r
     boot_log_stage("Flash初始化完成");\r
 \r
-    PRINT("【开机流程】开始初始化PIO配置"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "开始初始化PIO配置"NEWLINE);\r
     pio_func_init();\r
     boot_log_stage("PIO初始化完成");\r
 \r
-    PRINT("【开机流程】开始初始化GPIO配置"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "开始初始化GPIO配置"NEWLINE);\r
     gpio_func_init();\r
     boot_log_stage("GPIO初始化完成");\r
 \r
-    PRINT("【开机流程】开始执行电源键长按开机校验"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "开始执行电源键长按开机校验"NEWLINE);\r
     check_pwrkey_3s();\r
     boot_log_stage("电源键长按校验完成");\r
 \r
@@ -362,20 +363,20 @@ void board_init(uint32_t flash_id, uint32_t flash_unique_id)
 #ifdef QSPI_DISPLAY\r
     lcd_bus_register_api(&g_display_api_qspi, BUS_DISPLAY_QSPI);\r
     g_display_init_select = DISPLAY_CLASS_QSPI;\r
-    PRINT("【开机流程】显示总线选择:QSPI"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "显示总线选择:QSPI"NEWLINE);\r
 #else\r
     lcd_bus_register_api(&g_display_api_mipi, BUS_DISPLAY_MIPI);\r
     g_display_init_select = DISPLAY_CLASS_MIPI;\r
-    PRINT("【开机流程】显示总线选择:MIPI"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "显示总线选择:MIPI"NEWLINE);\r
 #endif\r
     boot_log_stage("显示总线注册完成");\r
 \r
 #ifdef BRANDY_PRODUCT_EVB\r
     g_board_init_select = BOARD_CLASS_E0B2;\r
-    PRINT("【开机流程】板级型号选择:BOARD_CLASS_E0B2"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "板级型号选择:BOARD_CLASS_E0B2"NEWLINE);\r
 #else\r
     g_board_init_select = BOARD_CLASS_E0B4;\r
-    PRINT("【开机流程】板级型号选择:BOARD_CLASS_E0B4"NEWLINE);\r
+    PRINT(BOOT_FLOW_PREFIX "板级型号选择:BOARD_CLASS_E0B4"NEWLINE);\r
 #endif\r
     boot_log_stage("board_init结束");\r
 }
\ No newline at end of file
index 32acdaf..edd2ee2 100644 (file)
@@ -61,6 +61,7 @@
 #endif
 
 extern "C" uint64_t uapi_ulp_systick_get_ms(void);
+#define BOOT_FLOW_PREFIX "[BOOT_FLOW][开机流程] "
 
 namespace OHOS {
 
@@ -80,14 +81,14 @@ void NativeLauncher::InitNativeLauncher(LaunchMode mode)
     auto logLauncherStage = [&](const char *stageName) {
         uint64_t nowMs = uapi_ulp_systick_get_ms();
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-            "【开机流程】NativeLauncher阶段:%s,当前时间=%llu ms,阶段耗时=%llu ms,总耗时=%llu ms",
+            BOOT_FLOW_PREFIX "启动器阶段:%s,当前时间=%llu ms,阶段耗时=%llu ms,总耗时=%llu ms",
             stageName,
             (unsigned long long)nowMs,
             (unsigned long long)(nowMs - launcherLastStageMs),
             (unsigned long long)(nowMs - launcherStartMs));
         launcherLastStageMs = nowMs;
     };
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "【开机流程】进入InitNativeLauncher,mode=%d,t0=%llu ms",
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "进入启动器初始化,模式=%d,起始时间=%llu ms",
         mode, (unsigned long long)launcherStartMs);
  
 #ifdef JS_ENABLE
@@ -98,7 +99,7 @@ void NativeLauncher::InitNativeLauncher(LaunchMode mode)
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "c %d", mode);
 
 
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "【开机流程】启动模式:正常模式");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "启动模式:正常模式");
         // 初始化语言
         GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::VECTOR_FONT_DIR, HARMONYOS_VECTOR_FONT_FILENAME);
         GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, GILROY_BOLD_FONT);       // 注册字体
@@ -209,7 +210,7 @@ void NativeLauncher::InitNativeLauncher(LaunchMode mode)
     /* -------------------------------------------------------------------------- */
     logLauncherStage("最近任务与页面切换策略初始化完成");
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-        "【开机流程】InitNativeLauncher结束,总耗时=%llu ms(注:最终开机完成以进入表盘界面为准)",
+        BOOT_FLOW_PREFIX "启动器初始化结束,总耗时=%llu ms(注:最终开机完成以进入表盘界面为准)",
         (unsigned long long)(uapi_ulp_systick_get_ms() - launcherStartMs));
 
 }
index d3d9638..f870c55 100644 (file)
@@ -14,6 +14,7 @@
 
 extern "C" uint8_t uapi_dev_runtime_get_lock_status(void);
 extern "C" uint64_t uapi_ulp_systick_get_ms(void);
+#define BOOT_FLOW_PREFIX "[BOOT_FLOW][开机流程] "
 
 namespace OHOS
 {
@@ -286,7 +287,7 @@ namespace OHOS
         {
             uint64_t bootCostMs = uapi_ulp_systick_get_ms();
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "【开机完成】已进入表盘主界面,开机耗时=%llu ms", (unsigned long long)bootCostMs);
+                BOOT_FLOW_PREFIX "开机完成:已进入表盘主界面,开机耗时=%llu ms", (unsigned long long)bootCostMs);
             g_bootWatchfaceReadyLogged = true;
         }
     }
index 8cf61c4..98f2ae4 100644 (file)
@@ -32,7 +32,11 @@ void uapi_ulp_wkup_type_record(void)
         g_ulp_wkup_flag = 0;\r
         g_ulp_wkup_flag = readw(ULP_WKUP_INT_STS);\r
         g_startup_finish_flag = true;\r
-        PRINT("startup reason flag is 0x%x\r\n", g_ulp_wkup_flag);\r
+        PRINT("startup reason flag is 0x%x, systick_bit=%d pwron_bit=%d vbus_bit=%d\r\n",\r
+            g_ulp_wkup_flag,\r
+            (g_ulp_wkup_flag >> WKUP_SYSTICK_MASK) & 1,\r
+            (g_ulp_wkup_flag >> WKUP_PWRON_MASK) & 1,\r
+            (g_ulp_wkup_flag >> WKUP_VBUS_EN_MASK) & 1);\r
     }\r
 }\r
 \r
@@ -49,6 +53,8 @@ startup_reason_t uapi_get_startup_reason(void)
     if (((g_ulp_wkup_flag >> WKUP_VBUS_EN_MASK) & 1) == 1) {\r
         startup_type = STARTUP_VBUS_EN;\r
     }\r
+    PRINT("startup reason decode=%d (0-systick 1-pwron 2-vbus 3-other), flag=0x%x\r\n",\r
+        startup_type, g_ulp_wkup_flag);\r
     return startup_type;\r
 }\r
 \r
@@ -56,7 +62,7 @@ errcode_t uapi_power_set_mode(power_mode_t pdmode)
 {\r
     if (pdmode >= PDMODE_MAX) {\r
         return ERRCODE_INVALID_PARAM;\r
-    }\r
+    } \r
 \r
     if (pdmode == PDMODE_RE_UP) {\r
         reg16_clrbit(PWRON_PD_MODE_REG, PWRON_PD_MODE_POS4);\r
@@ -69,11 +75,25 @@ errcode_t uapi_power_set_mode(power_mode_t pdmode)
 uint64_t uapi_ulp_systick_get_count(void)\r
 {\r
     uint64_t count = 0;\r
-\r
-    count = (uint64_t)readw(ULP_SYSTICK_VAL3) << 48U;\r
-    count |= (uint64_t)readw(ULP_SYSTICK_VAL2) << 32U;\r
-    count |= (uint64_t)readw(ULP_SYSTICK_VAL1) << 16U;\r
-    count |= (uint64_t)readw(ULP_SYSTICK_VAL0);\r
+    static uint64_t s_last_count = 0;\r
+    uint16_t v0 = readw(ULP_SYSTICK_VAL0);\r
+    uint16_t v1 = readw(ULP_SYSTICK_VAL1);\r
+    uint16_t v2 = readw(ULP_SYSTICK_VAL2);\r
+    uint16_t v3 = readw(ULP_SYSTICK_VAL3);\r
+\r
+    count = ((uint64_t)v3 << 48U) |\r
+            ((uint64_t)v2 << 32U) |\r
+            ((uint64_t)v1 << 16U) |\r
+            ((uint64_t)v0);\r
+\r
+    PRINT("[ULP_CNT][drv ] v3=0x%04x v2=0x%04x v1=0x%04x v0=0x%04x count=0x%016llx (%llu)\r\n",\r
+        v3, v2, v1, v0, (unsigned long long)count, (unsigned long long)count);\r
+\r
+    if (s_last_count != 0 && count < s_last_count) {\r
+        PRINT("[ULP_CNT][WARN][drv ] rollback! last=0x%016llx now=0x%016llx\r\n",\r
+            (unsigned long long)s_last_count, (unsigned long long)count);\r
+    }\r
+    s_last_count = count;\r
 \r
     return count;\r
 }\r
index 3ca5587..742270b 100644 (file)
@@ -32,6 +32,7 @@
 #ifdef SUPPORT_CUSTOM_UI_COMPONENT
 #include "uicomponents/UIComponents.h"
 #endif
+#define BOOT_FLOW_PREFIX "[BOOT_FLOW][开机流程] "
 
 #ifdef __cplusplus
 extern "C"
@@ -219,6 +220,7 @@ extern "C"
     private:
         void OnAnimatorStop(OHOS::UIView &view)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画监听:收到动画结束回调");
             boot_animation_flag = true;
 
             ClearAll();
@@ -534,6 +536,7 @@ extern "C"
     static void boot_animation_task(void *arg)
     {
         unused(arg);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画任务:准备显示开机动画");
 
         boot_group = ReBootAnimatorViewInit();
         if (boot_group == nullptr)
@@ -548,6 +551,7 @@ extern "C"
             []
             {
                 OHOS::RootView::GetInstance()->Add(boot_group);
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画任务:开机动画开始播放");
                 ReBootImageAnimatorView->Start();
             },
             false);
@@ -555,18 +559,22 @@ extern "C"
 
     void wait_animation_stop(void)
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画等待:开始等待动画结束");
         while (boot_animation_flag == false)
         {
             LOS_Msleep(1000);
         }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画等待:动画已结束");
     }
 
     void ShowGraphicLogo(void)
     {
         if (g_showLogo)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机Logo:已显示,跳过重复显示");
             return;
         }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机Logo:开始显示");
         g_showLogo = true;
         g_logo = new OHOS::UIImageView();
         g_logo->SetPosition(0, 0, OHOS::Screen::GetInstance().GetWidth(), OHOS::Screen::GetInstance().GetHeight());
@@ -579,6 +587,7 @@ extern "C"
             {
                 OHOS::RootView::GetInstance()->Add(g_logo);
                 OHOS::RootView::GetInstance()->Invalidate();
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机Logo:结束显示");
             });
         LOS_Msleep(500);
     }
@@ -588,8 +597,10 @@ extern "C"
 
         if (g_showOtaLogo)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "OTA Logo:已显示,跳过重复显示");
             return;
         }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "OTA Logo:开始显示");
         g_showOtaLogo = true;
         g_ota_logo = new OHOS::UIImageView();
         g_ota_logo->SetPosition(0, 0, OHOS::Screen::GetInstance().GetWidth(), OHOS::Screen::GetInstance().GetHeight());
@@ -602,6 +613,7 @@ extern "C"
             {
                 OHOS::RootView::GetInstance()->Add(g_ota_logo);
                 OHOS::RootView::GetInstance()->Invalidate();
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "OTA Logo:结束显示");
             });
         LOS_Msleep(500);
     }
@@ -609,8 +621,10 @@ extern "C"
     void ShowGraphicChargingLogo(void)
     {
         if (g_showChargingLogo) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "充电Logo:已显示,跳过重复显示");
             return;
         }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "充电Logo:开始显示");
         g_showChargingLogo = true;
         g_charging_logo = new OHOS::UIImageView();
         g_charging_logo->SetPosition(0, 0, OHOS::Screen::GetInstance().GetWidth(), OHOS::Screen::GetInstance().GetHeight());
@@ -623,6 +637,7 @@ extern "C"
             {
                 OHOS::RootView::GetInstance()->Add(g_charging_logo);
                 OHOS::RootView::GetInstance()->Invalidate();
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "充电Logo:结束显示");
             });
         LOS_Msleep(500);
     }
@@ -648,6 +663,7 @@ extern "C"
 
     void boot_animation_init(void)
     {
+        boot_animation_flag = false;
         taskcfg.task_handle = g_boot_animation_task_handle;
         taskcfg.attr.name = "boot_animation_service";
         taskcfg.attr.priority = TASK_PRIORITY_APP;
@@ -655,6 +671,7 @@ extern "C"
         taskcfg.func = boot_animation_task;
         taskcfg.use_mem = USE_EXTEND_MEM;
 
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, BOOT_FLOW_PREFIX "开机动画初始化:创建动画任务");
         errcode_t ret = uapi_create_osThread_custom(&taskcfg);
         if (ret != ERRCODE_SUCC)
         {
index 085246f..fc69c32 100644 (file)
@@ -253,12 +253,10 @@ errcode_t uapi_vibrator_service_init(void)
     OHOS::VibratorManager::GetInstance()->RegisterVibratorFunc(custom_VibratorFunc);
 
     /* ---------------------------------- 开机震动一次 ---------------------------------- */
-#ifdef BOARD_FD272
+    PRINT("[BOOT_FLOW][开机流程] 启动阶段:开机开始震动\n");
     custom_VibratorFunc_int(5);
     custom_VibratorFunc_int(5);
-#else
-    custom_VibratorFunc_int(0);
-#endif
+
     /* -------------------------------------------------------------------------- */
     
     return ERRCODE_SUCC;