【平头哥Sipeed LicheeRV 86 Panel测评】 3-移植LVGL
[复制链接]
本帖最后由 manhuami2007 于 2022-3-18 17:00 编辑
一开始打算使用官方的WAFT实现屏幕显示,但是没有看明白怎么使用,因此决定换一个GUI使用。
LVGL是一个轻量级的GUI框架,在很多嵌入式设备上也使用,而且网上也提供了linux下的移植版本,因此决定移植LVGL到LicheeRV 86上。
1. 前置准备步骤
首先要安装好交叉编译环境,因为需要用到交叉环境的GCC去编译工程。
然后参考下面的网页下载工程代码,因为是在github上下载的,不太好下载,可以直接使用下面我提供的压缩包。
Embedded GUI Using Linux Frame Buffer Device with LVGL
linux控制屏幕所使用的文件是 /dev/fb0 。在Shell下可以通过指令cat /dev/urandom > /dev/fb0 查看屏幕的显示,此时屏幕显示的是雪花点。
确定了能够控制屏幕之后,就可以进行后续的操作了。
2. 修改工程
工程的修改主要包含2个地方:
- makefile文件修改
- main.c的修改
2.1 修改makefile
因为使用的是交叉编译的GCC,因此需要把makefile中的CC进行修改。
当生效了riscv的GCC后,是可以通过$CC调用riscv的GCC的,因此修改如下(完整的修改请参照压缩包中的工程):
CC ?= $$CC #将变量CC重新赋值
2.2 修改main.c
/*Create a Demo*/
lv_obj_t *parent = lv_obj_create(lv_scr_act());
lv_obj_set_size(parent,480,480);
lv_obj_t * head_lable = lv_label_create(parent);
lv_label_set_text(head_lable,"T-HEAD & EEWORLD");
lv_obj_align(head_lable,LV_ALIGN_TOP_MID,0,50);
如上,新建一个lable标签,并赋值显示。
3. 编译工程
在工程的根文件下使用 make all 指令,去工程进行编译,最后会生成demo 可执行文件,通过ADB将demo 文件推送到开发板的root文件夹下。
adb push demo /root
推送成功之后,通过adb shell 连接开发板,进入root文件夹下,修改demo权限,然后执行。
cd root
chmod +x demo
./demo
4.效果
5.资源
demo
(7.86 MB, 下载次数: 8)
这个是直接在开发板上运行的可执行文件。
因为工程文件超过了150MB,超出了我的权限,需要上传到资源中心,现在资源还在审核,如果有需要的可以去我的下载中心看一下。因为原工程超过了150MB,所以对我认为可能没有用的部分进行了删除,删除后没有重新编译验证。
|