|
参考资料
LVGL官网
https://lvgl.io/developers
LVGL中文参考手册
http://lvgl.100ask.net/8.2/index.html
1、获取lvgl源码
参考网上的代码部署,最终下载的代码layout如下
- $ tree -L 1
- .
- ├── demo
- ├── lv_conf.h
- ├── lv_demo_conf.h
- ├── lv_demos
- ├── lv_drivers
- ├── lv_drv_conf.h
- ├── lvgl
- ├── main.c
- ├── Makefile
复制代码 2、修改Makefile
2.1 主要是修改cc交叉编译器的指定,设置为Yocto编译出来的SDK。后面在运行make编译命令之前需要先
source env环境变量
2.2 主要包含目录下的其他mk文件
include ./lvgl/lvgl.mk
include ./lv_drivers/lv_drivers.mk
include ./lv_demos/lv_demo.mk
- #
- # Makefile
- #
- cc=$(CC)
- LVGL_DIR_NAME ?= lvgl
- LVGL_DIR ?= ${shell pwd}
- CFLAGS = -O3 -g0 -I$(LVGL_DIR)/
- BIN = lvgl-fb
- CFLAGS = -I$(LVGL_DIR)/ $(DEFINES) $(WARNINGS) $(OPTIMIZATION) -I$(LVGL_DIR) -I.
- #Collect the files to compile
- MAINSRC = ./main.c
- include ./lvgl/lvgl.mk
- include ./lv_drivers/lv_drivers.mk
- include ./lv_demos/lv_demo.mk
- OBJEXT ?= .o
- AOBJS = $(ASRCS:.S=$(OBJEXT))
- COBJS = $(CSRCS:.c=$(OBJEXT))
- MAINOBJ = $(MAINSRC:.c=$(OBJEXT))
- SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
- OBJS = $(AOBJS) $(COBJS)
- ## MAINOBJ -> OBJFILES
- all: default
- %.o: %.c
- @$(cc) $(CFLAGS) -c $< -o $@
- @echo "CC $<"
-
- default: $(AOBJS) $(COBJS) $(MAINOBJ)
- $(cc) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)
- clean:
- rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
复制代码 3、修改源码
3.1 [color=rgb(217, 43, 47) !important] lv_demo_conf.h
- # define LV_DEMO_MUSIC_LANDSCAPE 0
- # define LV_DEMO_MUSIC_LARGE 0
- #define LV_DEMO_MUSIC_AUTO_PLAY 0
复制代码 3.2 [color=rgb(217, 43, 47) !important] lv_drivers/indev/evdev.c
drv->disp->driver.修改成drv->disp->driver->
- if(data->point.x >= drv->disp->driver->hor_res)
- data->point.x = drv->disp->driver->hor_res - 1;
- if(data->point.y >= drv->disp->driver->ver_res)
- data->point.y = drv->disp->driver->ver_res - 1;
复制代码 3.3 [color=rgb(217, 43, 47) !important] lv_drv_conf.h
不适用libinput,改成使用evdev
- # define USE_LIBINPUT 0
- # define USE_EVDEV 1
复制代码 3.4 [color=rgb(217, 43, 47) !important] main.c
这里的分辨率可以改成1920x1080,看自己的显示设备吧。我使用HDMI的时候改成1920x1080了,接LCD屏的话可以暂时不修改
3.5 [color=rgb(217, 43, 47) !important] lv_conf.h(optional)
配合driver来修改,默认的是RGB565的16bit色深,可以改成32bit的RGB888
- #define LV_COLOR_DEPTH 32
复制代码
4、编译
编译前source一下env
- source /opt/poky/3.1.20/environment-setup-aarch64-poky-linux
- make -j8
复制代码 5、测试
将lvgl-fb文件通过scp命令copy到板端并运行
|
-
lvgl-demo
|