LVGL使用

LVGL使用

  • 遇到的问题及解决方法
    • 【移植】+FreeRTOS Tick问题
    • 【移植】Mem问题
    • 【内存泄漏】
    • 【卡死】与+FreeRTOS切屏卡死

遇到的问题及解决方法

【移植】+FreeRTOS Tick问题

打开configUSE_TICK_HOOK,在vApplicationTickHook中,调用LVGL的心跳 lv_tick_inc(1);
STM32F4+FreeRTOS+LVGL实现嵌入式快速开发

【移植】Mem问题

lv_conf.h中,配置LV_MEM_CUSTOM
配置成0,使用LVGL内部的内存管理,分配走CONFIG_LV_NEN_SIZE大小的RAM空间
配置成1,使用用户自定义的malloc/free,需要把下面的LV_MEM_CUSTOM_INCLUDE LV_MEM_CUSTOM_ALLOC …定义好。
用LVGL自带的可以监测内存占用情况。

【内存泄漏】

  1. 页面切换,频繁创建删除,记得删除旧页面。
  2. lv_scr_load_anim可设置在加载显示新页面后是否删除旧页面,注:lv_style_init不会被自动删除,需要手动Free。
  3. Table
    【GUI】LVGL8内存泄漏分析
    【LVGL】学习笔记–(3)界面切换以及显示优化

【卡死】与+FreeRTOS切屏卡死

  1. LVGL默认线程不安全,FreeRTOS创建的LVGL任务和刷新任务分开,会存在同一时间访问同一资源问题,需要加互斥锁。
  2. 在LVGL事件回调函数和定时器回调函数(LVGL自带Task)里指向的操作没有问题,都是在lv_task_handler()执行的,不需要加锁,不会导致多个线程同时访问同一资源的问题。
    在FreeRTOS使用Lvgl任务死机的问题

你可能感兴趣的:(嵌入式硬件)