移植lvgl v9到嵌入式linux设备
相比之前的版本,以前需要移植多两个文件lv_drivers和lv_demos,但是v9版本这两个文件已经在lvgl文件里了。相比之前的版本,也少了这个配置文件,该文件之前版本可以用来设置输入、输出的设备节点,在v9版本需要在main.c中指定。相比之前的版本,在我的显示效果来看,不用在main.c设置相应的显示分辨率了,可以查看例程源码:进去看看:(它的分辨率是800 * 480,我的显示屏分辨率
在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上,下载两个文件lvgl与lv_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_demo的bin文件下。
4. 总结
-
相比之前的版本,以前需要移植多两个文件
lv_drivers和lv_demos,但是v9版本这两个文件已经在lvgl文件里了。 -
相比之前的版本,也少了
lv_drv_conf.h这个配置文件,该文件之前版本可以用来设置输入、输出的设备节点,在v9版本需要在main.c中指定。 -
相比之前的版本,在我的显示效果来看,不用在
main.c设置相应的显示分辨率了,可以查看例程源码:
进去看看:(它的分辨率是800 * 480,我的显示屏分辨率是1024 * 600)

我并没有修改分辨率,但是显示也适配,我的猜测是分辨率是从设备树确定的。
-
总之,移植更加方便了!!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)