修复ota下载显示异常的bug
authorCaisking <Casiking@zhihuishixun.com>
Mon, 29 Sep 2025 07:25:20 +0000 (15:25 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 29 Sep 2025 07:25:20 +0000 (15:25 +0800)
code/sdk/application/brandy/brandy_recovery/recovery_display.c

index 7edf5c5..fd917a6 100644 (file)
@@ -110,51 +110,45 @@ static errcode_t recovery_dispay_layer_and_surface_init(ext_dpu_surface *surface
 }
 
 void recovery_display_sample(void)
-{
-    errcode_t ret;
-    td_handle dpu_handle;
-    ext_dpu_surface surface = {0};
-    ext_dpu_layer_info layer_info = {0};
-#ifndef IMG_DISPLAY
-    /* 局部显示白色示例 */
-    ext_rect update_rect = {0, 133, 454, 200}; // 定义一个局部区域
-    recovery_dispay_layer_and_surface_init(&surface, &layer_info, &update_rect);
-    // 设置layer全白色
-    memset_s((void *)surface.phy_addr, surface.size, 0xff, surface.size);
-#else
-    /* 全屏显示图片示例 */
-    /* 图片压缩参数如下:
-       <imageRes compress="NONE" format="RGB888" align="16" tile="6"
-                 alpha="0" rgb="0" autocmpmode="0" highqualitymode="0"
-                 highcmpratiomode="0" ver="1">
-       </imageRes>
-    */
-#ifdef SINGLE_USER_PARTITION
-    #define  DISP_IMAGE "/user/system/OTAUpdataRecover.bin"
-#else
-       #define  DISP_IMAGE "/update/demo.bin"
-#endif
-    recovery_dispay_layer_and_surface_init(&surface, &layer_info, NULL);
-    recovery_dispay_read_image_and_savein_surface(DISP_IMAGE, &surface);
-#endif
-    
-    ret = uapi_dpu_create_layer(&layer_info, &dpu_handle);
-    if (ret != ERRCODE_SUCC) {
-        return;
-    }
-    ret = uapi_dpu_set_layer_info(dpu_handle, &surface);
-    if (ret != ERRCODE_SUCC) {
-        return;
-    }
-    ret = uapi_dpu_refresh_layers();
-    if (ret != ERRCODE_SUCC) {
-        return;
-    }
-    ret = uapi_dpu_destroy_layer(dpu_handle);
-    if (ret != ERRCODE_SUCC) {
-        return;
-    }
-}
+ {
+     errcode_t ret;
+     td_handle dpu_handle;
+     ext_dpu_surface surface = {0};
+     ext_dpu_layer_info layer_info = {0};
+     ext_rect update_rect = {0, 0, 466, 466}; // 定义一个局部区域
+     // ext_rect update_rect = {223, 223, 20, 20}; // 定义一个局部区域
+ 
+     recovery_dispay_layer_and_surface_init(&surface, &layer_info, &update_rect);
+     // 设置layer全白色, 也可以使用接口 recovery_dispay_read_image_and_savein_surface 实现从文件系统读图片
+     /* image_tool 图片压缩参数如下:
+        <imageRes compress="NONE" format="RGB888" align="16" tile="6"
+                  alpha="0" rgb="0" autocmpmode="0" highqualitymode="0"
+                  highcmpratiomode="0" ver="1">
+        </imageRes>
+     */
+     // memset_s((void *)surface.phy_addr, surface.size, 0xFF, surface.size);
+ #ifdef SINGLE_USER_PARTITION
+     recovery_dispay_read_image_and_savein_surface("/user/system/OTAUpdataRecover.bin",&surface);
+ #else
+     recovery_dispay_read_image_and_savein_surface("/system/OTAUpdataRecover.bin",&surface);
+ #endif
+     ret = uapi_dpu_create_layer(&layer_info, &dpu_handle);
+     if (ret != ERRCODE_SUCC) {
+         return;
+     }
+     ret = uapi_dpu_set_layer_info(dpu_handle, &surface);
+     if (ret != ERRCODE_SUCC) {
+         return;
+     }
+     ret = uapi_dpu_refresh_layers();
+     if (ret != ERRCODE_SUCC) {
+         return;
+     }
+     ret = uapi_dpu_destroy_layer(dpu_handle);
+     if (ret != ERRCODE_SUCC) {
+         return;
+     }
+ }
 
 void recovery_display_init(void)
 {