设为首页收藏本站
查看: 1431|回复: 5

【米尔瑞萨RZ/G2L开发板-创新应用】移植LVGL

[复制链接]

9

主题

15

回帖

165

积分

注册会员

积分
165
slamdunk 发表于 2023-8-4 21:36:29 | 显示全部楼层 |阅读模式
参考资料
LVGL官网
https://lvgl.io/developers
LVGL中文参考手册
http://lvgl.100ask.net/8.2/index.html



1、获取lvgl源码
参考网上的代码部署,最终下载的代码layout如下

  1. $ tree -L 1
  2. .
  3. ├── demo
  4. ├── lv_conf.h
  5. ├── lv_demo_conf.h
  6. ├── lv_demos
  7. ├── lv_drivers
  8. ├── lv_drv_conf.h
  9. ├── lvgl
  10. ├── main.c
  11. ├── 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

  1. #
  2. # Makefile
  3. #
  4. cc=$(CC)

  5. LVGL_DIR_NAME ?= lvgl
  6. LVGL_DIR ?= ${shell pwd}

  7. CFLAGS = -O3 -g0 -I$(LVGL_DIR)/

  8. BIN = lvgl-fb

  9. CFLAGS = -I$(LVGL_DIR)/ $(DEFINES) $(WARNINGS) $(OPTIMIZATION) -I$(LVGL_DIR)  -I.

  10. #Collect the files to compile
  11. MAINSRC = ./main.c

  12. include ./lvgl/lvgl.mk
  13. include ./lv_drivers/lv_drivers.mk
  14. include ./lv_demos/lv_demo.mk

  15. OBJEXT ?= .o

  16. AOBJS = $(ASRCS:.S=$(OBJEXT))
  17. COBJS = $(CSRCS:.c=$(OBJEXT))

  18. MAINOBJ = $(MAINSRC:.c=$(OBJEXT))

  19. SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
  20. OBJS = $(AOBJS) $(COBJS)

  21. ## MAINOBJ -> OBJFILES

  22. all: default

  23. %.o: %.c
  24.     @$(cc)  $(CFLAGS) -c $< -o $@
  25.     @echo "CC $<"
  26.    
  27. default: $(AOBJS) $(COBJS) $(MAINOBJ)
  28.     $(cc) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)

  29. clean:
  30.     rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
复制代码
3、修改源码
3.1 [color=rgb(217, 43, 47) !important] lv_demo_conf.h
  1. # define LV_DEMO_MUSIC_LANDSCAPE 0
  2. # define LV_DEMO_MUSIC_LARGE     0
  3. #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->
  1.     if(data->point.x >= drv->disp->driver->hor_res)
  2.       data->point.x = drv->disp->driver->hor_res - 1;
  3.     if(data->point.y >= drv->disp->driver->ver_res)
  4.       data->point.y = drv->disp->driver->ver_res - 1;
复制代码
3.3 [color=rgb(217, 43, 47) !important] lv_drv_conf.h
不适用libinput,改成使用evdev
  1. #  define USE_LIBINPUT           0

  2. #  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
  1. #define LV_COLOR_DEPTH     32
复制代码


4、编译
编译前source一下env
  1. source /opt/poky/3.1.20/environment-setup-aarch64-poky-linux

  2. make -j8
复制代码
5、测试
lvgl-fb文件通过scp命令copy到板端并运行







lvgl-demo

lvgl-demo
回复

使用道具 举报

1

主题

1

回帖

11

积分

新手上路

积分
11
ddllxxrr 发表于 2023-8-6 08:27:26 | 显示全部楼层
不错,屏幕从哪里搞的
回复 支持 反对

使用道具 举报

9

主题

15

回帖

165

积分

注册会员

积分
165
 楼主| slamdunk 发表于 2023-8-6 15:26:52 | 显示全部楼层
ddllxxrr 发表于 2023-8-6 08:27
不错,屏幕从哪里搞的

HDMI显示器
回复 支持 反对

使用道具 举报

0

主题

2

回帖

8

积分

新手上路

积分
8
duzp 发表于 2023-8-11 10:00:09 | 显示全部楼层
ddllxxrr 发表于 2023-8-6 08:27
不错,屏幕从哪里搞的

可以搞一个USB HDMI采集卡 20多块钱,PC上直接开个窗口,截图什么的也方便。
回复 支持 反对

使用道具 举报

8

主题

12

回帖

214

积分

中级会员

积分
214
贫穷贵公子 发表于 2023-10-8 20:06:47 | 显示全部楼层
方便上传一下lvgl-demo的源码吗?
回复 支持 反对

使用道具 举报

9

主题

15

回帖

165

积分

注册会员

积分
165
 楼主| slamdunk 发表于 2023-10-9 17:35:05 | 显示全部楼层
贫穷贵公子 发表于 2023-10-8 20:06
方便上传一下lvgl-demo的源码吗?

lvgl demo源码

stm157_lvgl-master.zip

15.46 MB, 下载次数: 451

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-12-22 00:54 , Processed in 0.057601 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表