解决:LVGL+GUI Guider 1.7.2运行一段时间就会卡死死机,内存泄露溢出的问题

ops/2024/11/15 6:05:29/

概括:

        我在使用NXP官方GUI Guider生成的代码出现了内存泄漏的问题。但我遇到的并不是像其他人所说的style的问题,如下链接。而是因为在页面渲染之前就使用了该页面内的组件,内存就会不断增加。

LVGL 死机 内存泄漏_lvgl 内存溢出-CSDN博客

运行环境:

        stm32f407+LVGL8.3+GUI-Guider-1.7.2-GA

现象:

         我设计了3个页面,单片机上电只会加载wifi页面,另两个页面并未加载:

        打开lvgl的配置文件Iv_conf.h,开启 #define LV_USE_MEM_MONITOR 1 内存监控,发现内存在不断增加,出现内存泄漏的问题,直到内存耗尽到系统崩溃,看门狗复位单片机,如下图:

        用memory_print()测试也是一样:

代码参考:https://blog.csdn.net/mygod2008ok/article/details/11030377

/**
*  @brief print memory useage state
*  @param[in] void
*  @returnval  void
*/
void memory_print(void)
{lv_mem_monitor_t mon;lv_mem_monitor(&mon);printf("used: %6d (%3d %%), frag: %3d %%, biggest free: %6d\n", (int)mon.total_size - mon.free_size,mon.used_pct,mon.frag_pct,(int)mon.free_biggest_size);
}

原因:

        GUI-Guider生成的代码中,setup_ui()中只有setup_scr_wifi(ui),也就是说初始化时默认只渲染了wifi一个页面:

        如果用GUI-Guider设计,如果勾选了 load screen,其他页面会在我们点击按钮后才加载(包括渲染和跳转):

        因为我用了定时器,所以单片机上电一秒后就会执行,但此时home页面还没被渲染,所以内存就会不断增加:

解决:

        经过实验,如果在main()中初始化的时候加上setup_scr_home(ui),内存就不会增加了:

        1. 在main() 函数中,加上下图红框里的代码:

        2. 取消勾选 load screen

        页面跳转,使用 lv_scr_load(guider_ui.home);

初学LVGL,如有不对,请指正


http://www.ppmy.cn/ops/46516.html

相关文章

linux mv操作和cp操作

mv 和 cp 是 Linux 系统中用于移动和复制文件或文件夹的两个常用命令,它们之间的主要区别在于: mv(move):mv 命令用于移动文件或文件夹,将它们从一个位置移动到另一个位置。移动后,原始文件或文…

linux的磁盘分区与管理

磁盘分区与管理 识别磁盘 一块硬盘的“艺术”之旅(硬盘空间使用,经历的步骤) •识别硬盘 > 分区规划 > 格式化 > 挂载使用 Unix/Linux的基本哲学理念:一切皆文件 /dev:存放设备(键盘、鼠标、光驱、硬盘……

【工具】探索 DOU:每用户数据使用量

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 🎵 邓紫棋《光年之外》 什么是 DOU…

git冲突

git冲突的产生: 首先用户A新建一个文件conflict,并在里面添加内容 然后通过add,commit,push将该文件上传到远端仓库 然后用户B通过pull将程序拉下来之后,也在这个文档里面进行编辑,并且内容不一样 如果这个时候其中一个人push&…

2024年上半年系统架构设计师真题-复原程度90%

前言 此次考试监考特别严格,草稿纸不允许带出考场,并且准考证上不允许任何写画,甚至连笔都允许带一支,所以下面的相关题目都是参考一些群友的提供,加上自己的记忆回顾,得到的结果。 其中综合知识部分的题…

ClickHouse数据管理与同步的关键技术

2024年 5 月 18 日,ClickHouse官方首届杭州 Meetup 活动成功举行。本次活动由 ClickHouse 和阿里云主办,NineData 和云数据库技术社区协办。围绕ClickHouse的核心技术、应用案例、最佳实践、数据管理、以及迁移同步等方面,和行业专家展开交流…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本文解析的原始论文为:https://arxiv.org/…

dubbo复习:(15)泛化调用

客户端在没有拿到服务器端接口定义的情况下通过反射获取服务 1.服务器端定义接口 package cn.edu.tju.service;public interface DevelopService {String invoke(String param); }2.服务器端实现接口 package cn.edu.tju.service;import org.apache.dubbo.config.annotation.…