lvgl移植到linux板子上

lvgl

例如:说实话,在写这篇文章的时候在犹豫要不要写,毕竟移植是一件简单的事情,而且网上的demo还算比较多,但是还是遇到的坑,所以写一些


链接: 主要灵感来源

文章目录

  • lvgl
  • 前言
  • 一、下载源码
  • 二、修改相关配置(以下默认都可,只要界面切换不是很庞大)
    • 1.引入库
  • 总结


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载源码

本次移植现在Ubuntu 18.04 LTS,先下载git跟cmake

sudo apt-get install git
sudo apt-get install cmake

这里是lvgl的源码部分这部分lgvl已经给出linux部分的代码了

git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git

这里是lvgl的驱动代码部分

git clone https://github.com/lvgl/lv_drivers.git

这里是lvgl的demo代码部分,这部分可以下载可以不下载

git clone https://github.com/lvgl/lvgl.git

中途可能被限制,毕竟服务器在国外,但是建议多试几次(科学)
lvgl移植到linux板子上_第1张图片
然后将驱动跟源码复制进去

cp -r lv_drivers/ lv_port_linux_frame_buffer/
cp -r lvgl/ lv_port_linux_frame_buffer/

然后在lv_port_linux_frame_buffer目录下直接make,会有一个demo的执行文件,终端file demo这时候会发现

demo: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=104babc2a87b095e2bc9f85c46ae7691b8b62cb0, not stripped

这是因为在lubuntu自带的编译链下面的

二、修改相关配置(以下默认都可,只要界面切换不是很庞大)

在这个工程中,其实相对应的lv_drv_conf.h跟lv_conf.h已经可以使用,但是为了适应你的系统跟屏幕,还要对应进行修改

1.引入库

lvgl移植到linux板子上_第2张图片
lvgl移植到linux板子上_第3张图片
首先在这里把对应的标志位置1.

/Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)/
这里修改相对应的Color depth:其实就是屏幕芯片型号吧,
lvgl移植到linux板子上_第4张图片
这里的是对应屏幕的缓存
lvgl移植到linux板子上_第5张图片
这里可做可不做修改,但是置为1之后把LV_MEM_SIZE稍微增大点
lvgl移植到linux板子上_第6张图片
这里是使能某个测试demo
这里是对linux下的显示驱动的设置linux下基本所有设备都是framebuff
lvgl移植到linux板子上_第7张图片

lvgl移植到linux板子上_第8张图片
这里的是触摸屏,我们选择自己的,可以cat试试
!!!!!!!因为是官方的demo,所以基本make没啥问题,然后接下来我们“移植下”。。。我们打开我们的Makefile,将这儿改成你的交叉编译工具arm-gunixxxxx-gcc那个,
lvgl移植到linux板子上_第9张图片
然后因为各类屏幕都有相对应的初始化过程,取决于驱动!!!
然后直接运行,成功,倘若驱动对应的过程中,屏幕亮了,但是不完整,有类似与翻转的现象,那么,,

改动mian.c部分的
lvgl移植到linux板子上_第10张图片
去翻翻里面的结构体,有个翻转使能跟翻转角度,对应的,如果翻转画面变了。那么坐标也得变,evdev_read作为触摸的回调函数,其功能就是获取触摸,你懂的!!!

lvgl移植到linux板子上_第11张图片


总结

你可能感兴趣的:(lgvl,linux,服务器,ubuntu)