萌新求指点 2022-11-30 14:42 采纳率: 100%
浏览 992
已结题

LVGL页面切换卡死问题

最近在玩lvgl,使用恩智浦的Guider GUI 1.3版本生成界面,使用该图形界面生成的页面切换点击多次之后会卡死,怎么解决?
切换页面代码
    if (!lv_obj_is_valid(guider_ui.screen_zy))
        setup_scr_screen_zy(&guider_ui);
    lv_disp_t * d = lv_obj_get_disp(lv_scr_act());
    if (d->prev_scr == NULL && d->scr_to_load == NULL)
        lv_scr_load_anim(guider_ui.screen_zy, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 10, 10, true);
点击多次之后会卡死,开启lvgl内存监控发现有时候内存使用到50%60%就死机。
我尝试在切换页面时使用lv_obj_del(lv_scr_act())删除当前页面再重新加载下一页,发现有时候两个页面来回切换就会卡死。
        lv_obj_del(lv_scr_act());
        setup_scr_screen_zy(&guider_ui);
        lv_scr_load(guider_ui.screen_zy);
怎么样才能切换页面不死机?求指教!
  • 写回答

1条回答 默认 最新

  • 小朱今天不想学习 2022-11-30 18:31
    关注

    代码不全,看不出根本原因,但多次执行卡死的问题基本都是堆栈和内存问题,可以查看一下变量或者对象的创建以及删除是不是对应的,又或者有什么外设的初始化和deinit是不是都正常,可以通过排除的方式去查问题原因。另外如果看不出变量和对象的删除有什么问题的话,之前有遇到过一个内存碎片的问题,具体产生现象和处理可以网站上搜索一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 11月30日