讯为4412开发板移植lvgl-7.11.0

前言

之前做项目的时候有了解到LVGL这个开源的gui库,趁着假期就想着把它移植到自己的开发板上看看能不能正常跑起来。虽说不难,但也花了一些功夫,因此也在这里做下总结。

一、LVGL是什么?

LVGL,全称Light and Versatile Graphics Library,以下是官网上的介绍。

LVGL is an open-source graphics library providing everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.

翻译过来就是说,LVGL是一个开源的图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。

讯为4412开发板移植lvgl-7.11.0

官网地址:https://lvgl.io/

二、LVGL的移植

1.库*载下**

前面介绍过,LVGL是一个开源的图形库,因此,我们可以在github上面找到它的开源库。下面是它的地址: LVGL核心库:https://github.com/lvgl/lvgl lvgl_drivers库:https://github.com/lvgl/lv_drivers *载下**后,我们可以得到以下两个tar包

讯为4412开发板移植lvgl-7.11.0

依次解压缩并重新命名,最后我们得到的文件如下:

讯为4412开发板移植lvgl-7.11.0

到这里我们的准备工作都做好了,下面就可以正式开始LVGL图形库的移植了。

2.LVGL核心库配置修改

首先,我们先进入到lvgl目录,在这个目录下,可以看到有一个lv_conf_template.h模板,我们复制一份这个.h文件。

讯为4412开发板移植lvgl-7.11.0

将copy的lv_conf.h文件中的#if 0 改为#if 1接下来的一些配置需要根据板子的实际情况去修改

讯为4412开发板移植lvgl-7.11.0

下面这几个可以不做改动

讯为4412开发板移植lvgl-7.11.0

3.LVGL驱动库配置修改

在lv_drivers目录下,同样有一个lv_drv_conf_template.h配置模板,我们先copy一份出来。

讯为4412开发板移植lvgl-7.11.0

将copy的lv_drv_conf.h文件中的#if 0 改为#if 1

讯为4412开发板移植lvgl-7.11.0

到这里,配置修改已经差不多完成了,接下来,就是编译工作了。

4.编译LVGL

我们回到lvgl的根目录,即存放lvgl和lv_drivers文件夹的目录下编写Makefile文件

讯为4412开发板移植lvgl-7.11.0

Makefile:

讯为4412开发板移植lvgl-7.11.0

make all之后,我们可以在该目录下看到生成了一个__tmp__文件,里面存放的是我们所需要的编译好的目标文件,接下来,我们可以编写demo来测试。

三、编写demo测试

main.c

讯为4412开发板移植lvgl-7.11.0

header.h

讯为4412开发板移植lvgl-7.11.0

Makefile:

讯为4412开发板移植lvgl-7.11.0

make all之后,同样在目录下会生成__tmp__文件

讯为4412开发板移植lvgl-7.11.0

将player执行程序拷贝到开发板上运行

讯为4412开发板移植lvgl-7.11.0

运行结果如下:

讯为4412开发板移植lvgl-7.11.0