当前位置:首页 > 公众号精选 > 裸机思维

【说在前面的话】


LVGL在2025年10月份发布了第四个维护更新,即v9.4.0版,此时的LVGL9已经相当稳定,如果你还在犹豫是否要从LVGL8升级到LVGL9,此时入手是一个不错的选择。相对LVGL8,LVGL9在设计理念上做了不小的调整:

  • 从“追求小巧为主性能为辅”改为“追求图形性能为主、降低资源消耗为辅”——以此与“资源日趋丰富”的MCU发展趋势相适应。
  • 在2D GPU的支持方面:
    • 从过去死等硬件加速器完成操作,到现在的让CPU与GPU可以完全并行操作;
    • 从过去只能连接一个2D加速方式,到现在理论上“同时”支持多个硬件加速方法存在,包括但不限于
      • DMA2D
      • 2DGPU
      • 以 Helium和NEON为代表的 SIMD加速
      • 专门用于图形处理的处理器内核
    • LVGL8只能在Arm-2D(Helium加速)和2D GPU加速之间二选一,而LVGL9允许Arm-2D(Helium加速)和2D-GPU同时存在,并使用Arm-2D(Helium)为2D-GPU兜底——也就是将2D GPU做不了的事情丢回(fall-back)Helium加速后的软件去做。
    • 过去为LVGL8提供加速可谓“开膛破肚”“极其暴力”——要想实现最佳的效果,不对LVGL的内核(sw draw)进行魔改是几乎不可能的事情。而LVGL9则提供了全新的 LVGL Intrinsics 机制——通过这些宏,可以简单、定向的为指定的2D操作提供加速。
    • LVGL8允许用户通过设定颜色深度(LV_COLOR_DEPTH)的方式指定其内核所使用的颜色格式(16bit对应RGB565);而在LVGL9中LV_COLOR_DEPTH指定的只是用户屏幕所使用的颜色,内核为了追求性能统一使用ARGB8888作为颜色格式——换句话说,无论你的资源文件是怎样不同的格式,在运行时刻(Runtime),LVGL9的内核流水线都会将其首先转换为ARGB8888后再进行统一处理;同理处理好的显示缓冲只会在送往LCD进行刷新前,转换成用户所制定的颜色格式。

其它修改还包括“缩写风格”、“API名称”、“包括颜色格式在内的常见的枚举名称”、Benchmark的官方跑分算法、Widgets Demo的内容等等,这里就不一一列举。详情请参考官方文档,这里就不再赘述。

关于LVGLv8.4.x,它是 LVGL8 的维护性更新——只做了一些修修补补的工作——API保持不变,用LVGL做产品的小伙伴可以放心食用。关于LVGL8的部署和使用注意事项,大家可以参考

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭