在T113_pro上移植lvgl v9.0

目标环境:Tina-SDKv2.0

1. 移植所需资源

以下文件是从LVGL官方仓库,移植了两个仓库:

注意:都要选择v9.0版本

名称 仓库地址 描述
lvgl https://github.com/lvgl/lvgl.git 包含了LVGL图形界面控件源码、驱动接口源代码以及例程
lv_port_linux_frame_buffer https://github.com/lvgl/lv_port_linux_frame_buffer.git 适配有frame buffer的linux系统的接口

2. 移植步骤

我们可以先在window上做移植(比较方便),再通过传输工具上传到ubuntu编译。

2.1 移植文件

在window上随便一个盘创建一个文件夹(名字随意),我在D盘创建了一个名为lvgl_v9_demo的文件夹:

D:\Files\Project_Source\05_lvgl\lvgl_v9_demo

在gitub上,下载两个文件lvgllv_port_linux_frame_buffer:

注意:下载完的lv_port_linux_frame_buffer这个仓库的lvgl文件是空的。

在这里插入图片描述

进入lvgl_v9_demo:

把下载好的lvgl复制进来。

在这里插入图片描述

lv_port_linux_frame_buffer复制这几个文件:

在这里插入图片描述

可以看到lvgl_v9_demo有这几个文件:

在这里插入图片描述

2.2 修改配置文件

移植完的这个工程,目前只支持显示,不支持触摸屏的,我们需要在lv_conf.h中做修改。

在这里插入图片描述

2.3 修改main.c

我们需要main.c创建一个触摸输入。

需要确定设备的触摸节点(可以使用cat /dev/input/event2测试)

lv_indev_t * touch;
touch = lv_evdev_create(LV_INDEV_TYPE_POINTER,"/dev/input/event2");

同样显示的设备节点也需要确保是正确的

在这里插入图片描述

3. 编译

上传到ubuntu,配置好相应的交叉编译工具链。

ubuntu@ubuntu1804:~$ cd lvgl_v9_demo/
ubuntu@ubuntu1804:~/lvgl_v9_demo$ mkdir build
ubuntu@ubuntu1804:~/lvgl_v9_demo$ cd build/

这里默认配置好了相应的交叉编译工具链,执行以下命令:

ubuntu@ubuntu1804:~/lvgl_v9_demo/build$ cmake -DCMAKE_C_COMPILER=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-muslgnueabi-gcc\
      -DCMAKE_CXX_COMPILER=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-muslgnueabi-g++\
      -DCMAKE_SYSTEM_NAME=Linux \
      -DCMAKE_SYSTEM_PROCESSOR=arm \
      ..
ubuntu@ubuntu1804:~/lvgl_v9_demo/build$ make

执行文件保存在lvgl_v9_demobin文件下。

4. 总结

  • 相比之前的版本,以前需要移植多两个文件lv_driverslv_demos,但是v9版本这两个文件已经在lvgl文件里了。

  • 相比之前的版本,也少了lv_drv_conf.h这个配置文件,该文件之前版本可以用来设置输入、输出的设备节点,在v9版本需要在main.c中指定。

  • 相比之前的版本,在我的显示效果来看,不用在main.c设置相应的显示分辨率了,可以查看例程源码:
    在这里插入图片描述

    进去看看:(它的分辨率是800 * 480,我的显示屏分辨率是1024 * 600)
    在这里插入图片描述

    我并没有修改分辨率,但是显示也适配,我的猜测是分辨率是从设备树确定的。

  • 总之,移植更加方便了!!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐