0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Rice嵌入式开发技术分享 来源:Rice嵌入式 作者:Rice嵌入式 2023-11-08 08:38 次阅读

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

本次开发教程的测试板卡来自创龙科技的TLT113-EVM国产工业评估板,基于全志科技T113-i双核ARM Cortex-A7 + 玄铁C906 RISC-V + HiFi4 DSP异构多核处理器设计,ARM Cortex-A7处理器单元主频高达1.2GHz。

评估板由核心板和评估底板组成,核心板CPUROMRAM电源、晶振等所有元器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产工业级方案。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

2f43f97e-7dcf-11ee-b3e3-92fbcf53809c.jpg

T113-i国产工业评估板硬件资源图解

此外,T113-i国产工业开发板的接口资源丰富,能够支持引出双路网口、双路CAN、双路USB、双路RS485RS232通信接口,同时引出LVDS LCD、TFT LCD、MIPI LCD、HDMI OUT、CVBS IN/OUT、LINE IN、MIC IN、H/P OUT等音视频多媒体接口,板载WIFI、4G(选配)模块,支持1080P@60fps JPEG/MJPEG视频硬件编码,支持4K@30fps H.265、4K@24fps H.264视频硬件解码,方便用户快速进行产品方案评估与技术预研。

获取详细的T113-i规格书等资料

可长按二维码识别下载

2f7aaf6e-7dcf-11ee-b3e3-92fbcf53809c.png

本篇文章主要描述如何将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
2f971352-7dcf-11ee-b3e3-92fbcf53809c.jpg

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分支

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

2fbc3cae-7dcf-11ee-b3e3-92fbcf53809c.jpg

源码文件移植

  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下

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

2fe09112-7dcf-11ee-b3e3-92fbcf53809c.jpg

修改配置文件

  • 修改lv_conf.h,此文件为lvgl的配置文件
  1. 使能lv_conf.h头文件,将#if 0修改为#if 1
2ff82b24-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 根据驱动(可在设备树中查看)选择像素点对应像素格式的大小,否则显示可能乱码
3012e9b4-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 修改显存大小
30323e18-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 设置Tick定时器配置函数
3038578a-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 查看log,使能LV_USE_LOG,设置打印的log等级并选择打印Log的接口
305d15d4-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 测试的样例中用到不同字号的字体,需要使能用到的字体
308d66e4-7dcf-11ee-b3e3-92fbcf53809c.jpg
  • 修改lv_drv_conf.h,此文件为驱动配置文件
  1. 使能修改lv_drv_conf.h头文件,将#if 0修改为#if 1
30b359b2-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 使能LCD显示:使能USE_FBDEV,路径设置成/dev/fb0,根据板子LCD的实际情况设置
30cc19d4-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 使能鼠标或者触摸屏
30e6e6ce-7dcf-11ee-b3e3-92fbcf53809c.jpg
  • 修改lv_demo_conf.h,此文件为测试用例配置文件
  1. 使能修改lv_demo_conf.h头文件,将#if 0修改为#if 1
3104e976-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 使能LV_USE_DEMO_WIDGETS测试用例
31124954-7dcf-11ee-b3e3-92fbcf53809c.jpg
  • 修改main.c文件,此文件为lvgl程序的主程序
  1. 修改lvgl的demos头文件
313808b0-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 修改lvgl显示的分比率,我是采用HDMI屏幕,分辨率为:1920 * 1080
315b9e6a-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 修改鼠标的配置,我的鼠标的设备节点为:/dev/input/event5

317c56f0-7dcf-11ee-b3e3-92fbcf53809c.png

  • 修改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
319c52e8-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 由于工具链不支持编译选项-Wshift-negative-value,直接伤处对应编译选项。
31b7b556-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 因为没有鼠标的图标文件,所以把鼠标图标的配置注释掉
31e119a0-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 增加测试样例的编译,包含其构建脚本
31ed8cda-7dcf-11ee-b3e3-92fbcf53809c.jpg

LVGL编译验证

  1. 编译,在lvgl工程目录下进行构建,执行make命令
3209fee2-7dcf-11ee-b3e3-92fbcf53809c.jpg3239938c-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 编译完之后,会在当前目录下生成demo可执行文件
32624a48-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 验证,我们将可执行文件demo拷贝到板子上
327c3142-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 在板子运行LVGL实例
32909a4c-7dcf-11ee-b3e3-92fbcf53809c.jpg
  1. 运行结果:

32aed5a2-7dcf-11ee-b3e3-92fbcf53809c.png

32c067ea-7dcf-11ee-b3e3-92fbcf53809c.png

33050f1c-7dcf-11ee-b3e3-92fbcf53809c.png

总结

  • lvgl在Linux上的移植是比较简单快捷的;只需要修改几个配置文件,即可在目标上运行,对我们部署UI非常方便。
  • lvgl在T113-i上运行整体效果还可以,流畅度整体满意,适合做一些项目的落地。
  • lvgl的是跨平台的,所以写一个应用可以多端部署,避免了重复开发的过程。
33316f3a-7dcf-11ee-b3e3-92fbcf53809c.jpg

关于创龙科技

创龙科技(Tronlong)始创于2013年,是国内领先的嵌入式产品平台提供商,业务主要涵盖工业核心板、工业评估板、工业单板机、项目服务,总部位于广州科学城,下设独立运营的教仪事业部,在北京、天津、上海、南京、深圳、西安、成都等地设有业务及技术服务中心

创龙科技10多年来一直专注于ARM、FPGA、DSP异构多核技术开发,坚持“国产 + 进口”双引擎产品战略,是全志、瑞芯微金牌合作伙伴,以及TI、NXP、Xilinx、紫光同创中国官方合作伙伴,为实时系统、现场总线、物联网人工智能等技术提供应用平台,产品广泛应用于工业自动化、能源电力、仪器仪表、医疗、通信、安防等行业。

334bb2fa-7dcf-11ee-b3e3-92fbcf53809c.jpg3362b522-7dcf-11ee-b3e3-92fbcf53809c.jpg    3397215e-7dcf-11ee-b3e3-92fbcf53809c.png  


审核编辑 黄宇


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97158
  • LVGL
    +关注

    关注

    1

    文章

    79

    浏览量

    2904
  • 全志T113
    +关注

    关注

    0

    文章

    47

    浏览量

    215
收藏 人收藏

    评论

    相关推荐

    如何在低成本ARM平台部署LVGL免费图形库,基于全志T113-i

    T113-i)的LVGL案例,适用开发环境如下。 Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux
    发表于 10-29 09:55

    哇!0.8秒启动!Linux快速启动方案分享,全志T113-i国产平台!

    存储空间、LCD/LVDS/MIPI三种显示、原生千兆网/双CAN,是单片机升级的优选平台。同时,创龙科技T113-i工业核心已实现国产化率100%,并提供“赛宝实验室”
    发表于 08-22 11:54

    7折购!米尔基于全志T113系列开发板

    全志T113系列芯片是目前比较受欢迎的国产入门级嵌入式工业芯片。米尔是基于T113芯片开发较早、提供配置最全的厂家,目前是唯一一家提供
    的头像 发表于 06-21 08:01 488次阅读
    7折购!米尔基于全志<b class='flag-5'>T113</b>系列<b class='flag-5'>开发板</b>

    T113-i最新发布Tina5.0系统!支持3大新特性!

    创龙科技全志T113-i双核Cortex-A7@1.2GHz全国产工业核心(含税79元)一经面世,就以超高性价比受到全行业关注。而创龙科技再次为T
    的头像 发表于 05-14 08:05 563次阅读
    <b class='flag-5'>T113-i</b>最新发布Tina5.0系统!支持3大新特性!

    G2D图像处理硬件调用和测试-基于米尔-全志T113-i开发板

    本篇测评由电子工程世界的优秀测评者“jf_99374259”提供。本文将介绍基于米尔电子MYD-YT113i开发板的G2D图像处理硬件调用和测试。MYC-YT113i核心
    的头像 发表于 04-12 08:01 599次阅读
    G2D图像处理硬件调用和测试-基于米尔-全志<b class='flag-5'>T113-i</b><b class='flag-5'>开发板</b>

    米尔-全志T113-i开发板与modbus设备的连接和操作

    本文主要介绍通过米尔-全志T113-i开发板实现与modbus设备的连接和操作。
    的头像 发表于 03-21 19:42 859次阅读
    米尔-全志<b class='flag-5'>T113-i</b><b class='flag-5'>开发板</b>与modbus设备的连接和操作

    【米尔-全志T113-i开发板试用】米尔-全志T113-i开发板与modbus设备的连接和操作

    。 四、结论 1、米尔-全志T113-i开发板提供了丰富的接口和稳定的操作系统环境,很适合工业控制软件程序开发; 2、依托libmodbus这个modbus协议库,对于linux应用下
    发表于 03-21 19:39

    移植libmodbus库米尔-全志T113-i开发板

    测试开发板工业领域的应用,modbus作为工业领域的一个重要协议,那好就移植libmodbus库。
    的头像 发表于 03-05 22:37 2236次阅读
    <b class='flag-5'>移植</b>libmodbus库<b class='flag-5'>到</b>米尔-全志<b class='flag-5'>T113-i</b><b class='flag-5'>开发板</b>

    【米尔-全志T113-i开发板试用】移植libmodbus库米尔-全志T113-i开发板

    申请米尔-全志T113-i开发板试用的很大一个原因是想测试开发板工业领域的应用,modbus作为工业领域的一个重要协议,那好就
    发表于 03-05 22:31

    【米尔-全志T113-i开发板试用】米尔-全志T113-i开发环境搭建

    首先感谢MYIR & ELECFANS给与的使用米尔-全志T113-i开发板的机会。 一、开发板简介 米尔-全志T113-i开发板
    发表于 03-01 21:43

    【米尔-全志T113-i开发板试用】上电+配编译器+编译+运行ruapu测试工具全流程视频

    MYC-YT113i核心开发板 真正的国产核心,100%国产物料认证
    发表于 02-25 22:49

    飞凌嵌入式T113-i开发板的调屏方法

    对于飞凌嵌入式T113-i开发板的调屏问题,需要按照以下步骤进行操作
    的头像 发表于 01-29 16:25 891次阅读

    飞凌 OK113i-C 全志T113-i开发板初体验

    的PC上进行操作,而且,因为以前在安装过T113-S3的开发环境,所以在编译SDK过程中并没有碰到其他因缺少依赖软件报的错误。 T113-i longan linux开发环境搭建 解压
    发表于 12-14 15:33

    飞凌OK113i-C全志T113-i开发板rtl8723du WIFI功能测试及蓝牙驱动移植

    飞凌 OK113i-C 全志T113-i开发板板载一个RTL8723du wifi/蓝牙二合一模块,板子出厂已经移植好了WIFI驱动但是蓝牙驱动没有,所以这篇文章我们主要做蓝牙驱动的
    的头像 发表于 12-11 13:52 2271次阅读

    Qt应用开发--国产工业开发板全志T113-i的部署教程

    工业开发板,它提供了Qt的运行环境,可以让我们快速的部署工业领域的用户交互界面,控制系统等。 接下来我们来聊聊如何在创龙科技T113-i工业
    发表于 11-30 14:25