lvgl arm linux帧buffer移植方法

目录

1.源码获取

2. 修改对应配置

3.编译文件

4.测试程序

5.实际效图片


1.源码获取

        lvgl有已经移植好的项目只需下载编译即可,项目地址:

GitHub - lvgl/lv_port_linux_frame_buffer: LVGL configured to work with a standard Linux framebuffer

        在github上面使用git工具即可克隆完整源码:

git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git
cd lv_port_linux_frame_buffer/
git submodule update --init --recursive

或者使用gitee直接克隆整个工程:

 lvgl_linux_arm帧缓存工程: lvgl linux arm 帧缓存工程

 直接克隆这个工程即可:

git clone https://gitee.com/already_use/lvgl_linux_arm.git

2. 修改对应配置

  1. 修改项目文件 lv_conf.h 的第33行改为屏幕的颜色位数rgb565

    #define LV_COLOR_DEPTH 16 //32

  2. 修改项目文件 lv_drv_conf.h 334行指定使用的屏幕,如果默认为fb0则不用修改

    #define FBDEV_PATH "/dev/fb0"

  3. 修改项目文件 lv_drv_conf.h 450行 改为实际映射的鼠标或者触摸屏映射驱动文件

    #define EVDEV_NAME "/dev/input/event10" 

    修改为实际的触摸屏或者鼠标文件

    #define EVDEV_NAME "/dev/input/event0"

  4. 修改main.c文件 32和33行

    disp_drv.hor_res = 800;//屏幕宽度

    disp_drv.ver_res = 480;//屏幕高度

    改为实际屏幕的宽高

    disp_drv.hor_res = 128;

    disp_drv.ver_res = 160;

3.编译文件

  1. Download工程项目源码

    git clone https://gitee.com/already_use/lvgl_linux_arm.git
  2. 修改 lv_port_linux_frame_buffer/makefile 里面的cc编译器和安装目录

    CC ?= gcc 改为 CC := arm-linux-gcc 
    prefix ?= ./output
  3. 在lv_port_linux_frame_buffer目录里添加 output 目录

    mkdir output
  4. 在lv_port_linux_frame_buffer/makefile里添加

    .PHONY: install
  5. 执行编译命令

    make -j4
  6. 执行安装命令

    make install

        如果遇到编译报警:

arm-linux-gcc: 错误:unrecognized command line option ‘-Wshift-negative-value’

    删除makefile CFLAGS包含的 -Wshift-negative-value 标志。

4.测试程序

  1. 在output里有可以运行的demo文件,直接拷贝这个文件到arm linux 开发板即可运行
./demo

如果有警告:

ioctl(FBIOBLANK): Invalid argument

 则屏蔽代码lvgl_linux_arm\lv_port_linux_frame_buffer\lv_drivers\display\fbdev.c 101-105 行:

    // Make sure that the display is on.
 //   if (ioctl(fbfd, FBIOBLANK, FB_BLANK_UNBLANK) != 0) {
 //       perror("ioctl(FBIOBLANK)");
  //      return;
 //   }

5.实际效图片

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要将LVGL移植ARM Linux,需要进行以下步骤: 1. 获取LVGL库的源代码,并将其编译为ARM架构的目标文件。 2. 在ARM Linux上创建一个应用程序,并将LVGL库链接到该应用程序中。 3. 配置ARM Linux的显示驱动程序,以便与LVGL库兼容。 4. 编写应用程序代码,使用LVGL库创建用户界面。 5. 在ARM Linux上运行应用程序,测试LVGL库的功能和性能。 需要注意的是,LVGL库的移植可能会涉及到一些硬件和软件的细节,因此需要仔细阅读LVGL的文档和ARM Linux的相关文档,以确保移植的成功。 ### 回答2: 当我们想把LVGL移植ARM Linux平台时,应该根据硬件平台的不同选择相应的编译器和交叉编译工具链,并确保系统的配置和环境设置正确无误。 在开始移植LVGL之前,需要了解其中的依赖项和构建流程。LVGL需要构建成一个动态库或静态库之后,才能嵌入到应用程序中并被调用。我们可以通过make命令构建LVGL,也可以使用CMake生成工具构建。 接着,需根据我们硬件平台的情况选择合适的LVGL驱动程序,以保证能够正常运行。LVGL支持众多硬件设备,如触摸屏、LCD等,应该针对要使用的设备编写相应的驱动程序。 在确定了硬件平台以及相应的驱动程序之后,接下来需要在应用程序中调用LVGL库和相关的驱动程序。这通常需要修改应用程序的Makefile或CMakeLists文件,在其中添加相关的库和头文件路径。 最后,一些特殊的应用程序可能需要额外的设置和调整,以保证LVGL移植过程中的稳定性和良好的运行效果。例如,可能需要进行时间轮询或系统等待,以让LVGL能够正确地响应用户输入事件和组件绘制事件。 总之,将LVGL移植ARM Linux平台需要进行一些大量的工作,包括了解系统架构、硬件平台编译工具链等方面的知识,以及对LVGL的组织架构、构建工具和C API等方面的深入了解。经过适当的学习和实践,我们可以成功地将LVGL移植ARM Linux平台,并让其发挥出良好的效果。 ### 回答3: LVGL是一款功能强大的开源GUI库,它能够帮助我们在不同的嵌入式系统平台上实现漂亮的图形界面。而在ARM Linux系统上进行LVGL移植是一项比较常见的工作,下面将介绍一下移植的步骤和注意事项。 步骤如下: 1.准备工作:安装ARM Linux交叉编译工具链和开发环境等; 2.下载LVGL代码:从官方网站上下载最新版LVGL代码,并选择适合ARM Linux系统的代码版本; 3.编译代码:使用交叉编译工具链对LVGL代码进行编译,生成静态库文件或可执行文件; 4.测试移植效果:将编译好的代码上传到ARM Linux系统中,并在控制台、LCD屏幕等设备上运行程序,测试移植效果; 5.优化及完善:根据实际情况对LVGL代码进行优化和完善,保证其在ARM Linux系统中能够正常运行,并达到预期的效果。 移植LVGLARM Linux系统时需要注意以下几点: 1.正确选择LVGL代码版本:根据不同的ARM Linux系统选择合适的LVGL代码版本,以免出现不兼容等问题; 2.准确配置编译环境:正确配置交叉编译工具链和开发环境,避免编译过程中出现问题; 3.掌握GUI开发技术:熟悉GUI开发技术和ARM Linux系统的相关知识,避免在移植过程中出现一些基础性的问题; 4.加强代码优化:尽可能地减小LVGL代码的体积和运行时的内存开销,提高程序运行效率与稳定性。 总之,将LVGL移植ARM Linux系统中需要我们具备一定的技术和知识,但只要掌握好以上几点,就能顺利完成移植工作,并实现漂亮的图形界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值