Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LVGL案例分享--手把手教你移植到T113-i国产工业开发板

LVGL案例分享--手把手教你移植到T113-i国产工业开发板

作者头像
阿志小管家
发布于 2024-02-02 11:23:42
发布于 2024-02-02 11:23:42
6330
举报

市面上有许多嵌入式GUI库可供选择,包括开源GUI库和闭源GUI库,开源GUI库:LVGL,EmWin等;闭源GUI库:TouchGFX,柿饼GUI等。

本篇文章主要描述如何将LVGL8.1移植到创龙科技的T113-i的开发板上。

LVGL

  1. LVGL,全名“Littlev Graphics Library”,是一个开源的图形库,主要用于在嵌入式系统上创建图形用户界面(GUI)。它是用C语言编写的,旨在高效和可定制,因此在各种微控制器平台和显示硬件上开发用户界面时备受欢迎。
  2. LVGL的特性
  • 轻量级:LVGL旨在轻量且高效,适用于资源受限的嵌入式系统,这些系统具有有限的内存和处理能力。
  • 高度可定制:LVGL允许开发人员根据项目要求定制GUI元素的外观和行为。
  • 小部件库:它提供了各种预设计的图形小部件,如按钮、标签、滑块、列表等,以简化交互式用户界面的创建。
  • 事件驱动:LVGL是事件驱动的,这意味着它会响应用户输入和其他事件以触发操作或状态更改。
  • 硬件支持:LVGL支持各种显示和输入硬件,包括不同类型的显示器(TFT、OLED等)和输入设备(触摸屏、按钮等)。
  • 积极的社区:LVGL有一个积极而支持性的社区,为其开发提供了资源并提供开发人员帮助。
  • 跨平台:LVGL可以在各种微控制器平台上使用,适用于各种嵌入式系统。
  1. LVGL的开源链接:https://github.com/lvgl

LVGL移植

下载源码仓库
  1. lvgl代码下载链接:https://github.com/lvgl/lvgl/archive/refs/tags/v8.1.0.tar.gz
  2. lv_demos代码下载链接:https://github.com/lvgl/lv_demos/archive/refs/tags/v8.1.0.tar.gz
  3. lv_drivers代码卸载链接:https://github.com/lvgl/lv_drivers/archive/refs/tags/v8.1.0.tar.gz
  4. lv_port_linux_frame_buffer代码卸载链接:https://github.com/lvgl/lv_port_linux_frame_buffer.git,通过git clone下载,然后切换到v8.2分支

将所有代码写在下来之后,代码目录如下:

源码文件移植
  1. 创建目录:lvgl,用于存放我们工程源码
  2. 将lvgl源码复制进lvgl目录下
  3. 将lv_drivers源码复制进lvgl目录下
  4. 将lv_demos源码复制进lvgl目录下
  5. 从lvgl中复制lv_conf_template.h到lvgl,并重命名为lv_conf.h
  6. 从lv_drivers中复制lv_drv_conf_template.h到lvgl,并重命名为lv_drv_conf.h
  7. 从lv_demo中复制lv_demo_conf_template.h到lvgl,并重命名为lv_demo_conf.h
  8. 从lv_port_linux_frame_buffer中复制main.c和Makefile到lvgl下

将文件移植完之后,代码目录如下:

修改配置文件
  • 修改lv_conf.h,此文件为lvgl的配置文件
  1. 使能lv_conf.h头文件,将#if 0修改为#if 1
  1. 根据驱动(可在设备树中查看)选择像素点对应像素格式的大小,否则显示可能乱码
  1. 修改显存大小
  1. 设置Tick定时器配置函数
  1. 查看log,使能LV_USE_LOG,设置打印的log等级并选择打印Log的接口
  1. 测试的样例中用到不同字号的字体,需要使能用到的字体
  • 修改lv_drv_conf.h,此文件为驱动配置文件
  1. 使能修改lv_drv_conf.h头文件,将#if 0修改为#if 1
  1. 使能LCD显示:使能USE_FBDEV,路径设置成/dev/fb0,根据板子LCD的实际情况设置
  1. 使能鼠标或者触摸屏
  • 修改lv_demo_conf.h,此文件为测试用例配置文件
  1. 使能修改lv_demo_conf.h头文件,将#if 0修改为#if 1
  1. 使能LV_USE_DEMO_WIDGETS测试用例
  • 修改main.c文件,此文件为lvgl程序的主程序
  1. 修改lvgl的demos头文件
  1. 修改lvgl显示的分比率,我是采用HDMI屏幕,分辨率为:1920 * 1080
  1. 修改鼠标的配置,我的鼠标的设备节点为:/dev/input/event5
  • 修改Makefile文件,此文件为构建工程脚本
  1. 修改构建工具链路径,需要选择T113-i的交叉工具链,工具链路径为:xxx/T113-i_v1.0/out/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
  1. 由于工具链不支持编译选项-Wshift-negative-value,直接伤处对应编译选项。
  1. 因为没有鼠标的图标文件,所以把鼠标图标的配置注释掉
  1. 增加测试样例的编译,包含其构建脚本

LVGL编译验证

  1. 编译,在lvgl工程目录下进行构建,执行make命令
  1. 编译完之后,会在当前目录下生成demo可执行文件
  1. 验证,我们将可执行文件demo拷贝到板子上
  1. 在板子运行LVGL实例
  1. 运行结果:

总结

  • lvgl在Linux上的移植是比较简单快捷的;只需要修改几个配置文件,即可在目标上运行,对我们部署UI非常方便。
  • lvgl在T113-i上运行整体效果还可以,流畅度整体满意,适合做一些项目的落地。
  • lvgl的是跨平台的,所以写一个应用可以多端部署,避免了重复开发的过程。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LVGL案例分享--手把手教你移植到T113-i国产工业开发板
市面上有许多嵌入式GUI库可供选择,包括开源GUI库和闭源GUI库,开源GUI库:LVGL,EmWin等;闭源GUI库:TouchGFX,柿饼GUI等。
Rice加饭
2023/11/09
1.5K0
LVGL案例分享--手把手教你移植到T113-i国产工业开发板
嵌入式Linux高级案例-移植LVGL到Linux开发板
​ 本篇主要是记录将LVGL移植到百问网STM32MP157开发板上,并且仅是跑一下LVGL的一些例程。
韦东山
2022/06/30
4.1K0
全志V853开发板移植基于 LVGL 的 2048 小游戏
这一节将以一个已经编写好的 lvgl 小游戏 2048 描述如何将已经编写完成的 lvgl 程序移植到开发板上。
阿志小管家
2024/02/02
4030
全志V853开发板移植基于 LVGL 的 2048 小游戏
百问网全志D1h开发板红外控制LVGL界面切换
建议在window上都选择V9.0版本下载上面两个仓库,最后用lvgl仓库代替lv_port_linux_frame_buffer的lvgl文件夹。
阿志小管家
2024/07/26
1620
百问网全志D1h开发板红外控制LVGL界面切换
详解全志R128GUI图形系统——LVGL篇
LVGL 是一个免费的开源图形库,提供了创建嵌入式GUI 所需的一切,具有易于使用的图形元素,美观的视觉效果和低内存占用,采用MIT 许可协议,可以访问LittlevGL官网获取更多资料。
阿志小管家
2024/02/02
1.2K0
详解全志R128GUI图形系统——LVGL篇
百问网全志D1h开发板LVGL9移植详细教程
在Linux,LVGL v9可以使用标准的framebuffer,因此,只需要使用lv_port_linux_frame_buffer即可。 首先,下载 lv_port_linux_frame_buffer 的源码:
阿志小管家
2024/06/27
5340
百问网全志D1h开发板LVGL9移植详细教程
百问网全志T113-PRO LVGL环境配置
​ 打开串口终端软件,这里我使用MobaXterm软件演示,选择开发板的串口终端号,可以在设备管理中查看
阿志小管家
2024/08/02
2050
百问网全志T113-PRO LVGL环境配置
野火指南者开发板移植 lvgl 库
由于近期要做一个装置 ,想着把装置做的好看一点,就打算使用 GUI 来做一个信息的相关显示,之前听说过一款比较轻量级的图形库,也就是 lvgl,手头又正好有一块搭配屏幕的野火指南者开发板,单片机型号是 STM32F103VET6,Flash 为 512KB,RAM 为 64KB,屏幕为 3.2 寸电阻触摸屏,我们在来看一下运行 lvgl 这个 GUI 需要的资源,所需资源如下图所示:
wenzid
2021/03/04
2.2K0
野火指南者开发板移植 lvgl 库
lvgl最新版本在STM32上的移植使用
LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。
用户8913398
2021/08/16
4.4K0
lvgl最新版本在STM32上的移植使用
【喂到嘴边了的模块】害怕追新?LVGL8发布稳定性更新(附部署教程)
LVGL的刚刚完成了对LVGL8的维护更新,发布了v8.3.5版。相对master分支上正在开发的LVGL9,该版本是一个吐血推荐的稳定版本:
GorgonMeducer 傻孩子
2023/02/28
3.5K3
【喂到嘴边了的模块】害怕追新?LVGL8发布稳定性更新(附部署教程)
实战贴:开源GUI LittlevGL在MCU上的移植
前几天看见正点原子发布了LittlevGL的教程,这个GUI貌似又火了,于是应读者要求,我也来移植一下,将正点原子的这个GUI移植到小熊派上,不到一会功夫就搞定了,总的来说挺简单,没遇到什么特别的障碍,因为正点原子把坑都帮我们绕过了,直接改下一些基本配置就可以成功显示,但是从头开始移植一个可不简单噢,要详细看官方文档和说明。
杨源鑫
2020/06/10
4K1
实战贴:开源GUI LittlevGL在MCU上的移植
【嵌入式Linux应用开发】SquareLine Studio与LVGL模拟器
​ 本篇重点是讲LVGL的开发辅助工具,以及利用这些工具将LVGL制作UI之后移植到嵌入式Linux开发板上显示。
韦东山
2022/09/08
6.2K0
飞凌 OK113i-C 全志T113-i开发板初体验
板子做工精致很有份量,拿在手里沉甸甸的,各种接口一应俱全——USB、TF 卡座、SIM卡座、4G模块卡座、网口、RGB LCD接口、LVDS、RS485、CAN、各种音频口、TV-in/TV-Out,板上还自带一个RTL8723du wifi/蓝牙二合一模块,作为一块主打工业控制的主控板这些接口实属绰绰有余了。手里的板子是256MB内存+256MB nand flash版本(这个是低配版本,还有个512MB+8GB emmc的高配版本),飞凌开发文档中提到已经移植好了Qt5开发环境,所以这个内存跑跑Qt的UI程序是再合适不过了,可惜手里没有匹配的开箱即用的LCD显示屏不然接上直接能试试出厂自带的Qt测试程序了。
阿志小管家
2024/02/02
4890
飞凌 OK113i-C 全志T113-i开发板初体验
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS简介
全志T113-i是一款双核Cortex-A7国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面,并已适配OpenWRT系统、Preempt Linux系统。
阿志小管家
2024/11/19
4600
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS简介
4.3s,Linux快速启动优化方法分享,基于全志T113-i国产平台!
很多应用场景对系统启动时间都有严苛的要求,例如在工业组态屏、工业HMI、机器人示教器、工业PLC、物联网网关、通讯管理机等应用场景对系统启动的时间都会有所要求。
创龙科技Tronlong
2024/07/18
1990
4.3s,Linux快速启动优化方法分享,基于全志T113-i国产平台!
【喂到嘴边了的模块】关于我在MDK中部署LVGL只用了10分钟这件小事
说实话,LVGL这么有牌面的项目,其维护者居然没听说过cmsis-pack,这着实让我略为破防:
GorgonMeducer 傻孩子
2022/01/25
2.7K1
【喂到嘴边了的模块】关于我在MDK中部署LVGL只用了10分钟这件小事
06-HAL库硬件SPI DMA驱动LCD并移植LVGL 8.3
源码地址:https://gitee.com/MR_Wyf/hal-cubemx-rt-thread/tree/hal_rttNano_st7789_menu/
用户8913398
2024/06/17
1.7K0
06-HAL库硬件SPI DMA驱动LCD并移植LVGL 8.3
【喂到嘴边了的模块】LVGL9发布稳定性更新
LVGL在2月份发布LVGL9后,于3月19日发布了第一个维护更新,即v9.1.0版,而LVGL8也迎来了更为稳定的强化版本v8.4.0。从吃螃蟹的角度来说,此时入手LVGL9风险较小,是一个不错的选择。
GorgonMeducer 傻孩子
2024/04/10
5.4K0
【喂到嘴边了的模块】LVGL9发布稳定性更新
【喂到嘴边了的模块】关于我在MDK中部署LVGL只用了5分钟这件小事
距离我为LVGL制作第一个版本的 cmsis-pack已经过去一月有余,实际上现在LVGL已经直接入住了MDK的Pack-Installer——只要你的网络有能力访问Github,你就可以直接通过MDK的官方渠道安装LVGL的最新版本。
GorgonMeducer 傻孩子
2022/04/02
2.1K1
【喂到嘴边了的模块】关于我在MDK中部署LVGL只用了5分钟这件小事
现象级爆红的开源显示框架——LVGL究竟蕴藏怎样的魔力
LVGL的作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以实现最大的兼容性(与C ++兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计,同时LVGL作为一个图形库,它自带着接近三十多种小工具可以供开发者使用。这些强大的构建块按钮搭配上带有非常丝滑的动画以及可以做到平滑滚动的高级图形,同时兼具着不高的配置要求以及开源属性,显著的优势使得LVGL蔚然成风,成为广大开发者在选择GUI时的第一选择。
阿志小管家
2024/02/01
7.7K0
现象级爆红的开源显示框架——LVGL究竟蕴藏怎样的魔力
推荐阅读
相关推荐
LVGL案例分享--手把手教你移植到T113-i国产工业开发板
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档