百问网全志T113-PRO LVGL环境配置

news2024/11/23 19:01:05

运行LVGL示例

启动开发板

​ 按要求接入电源或Type-c数据线,拨动拨码开关,将开发板上电

运行LVGL示例

​ 打开串口终端软件,这里我使用MobaXterm软件演示,选择开发板的串口终端号,可以在设备管理中查看

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里我的串口设备号为COM15,所以在串口终端软件中也应该使用COM15,波特率为115200。操作步骤如下所示:

100ask-lvgl-serial-demo

上面操作以7寸RGB屏作为演示硬件测试指令,输入:

root@TinaLinux:/# lv_examples 0
wh=1024x600, vwh=1024x1200, bpp=32, rotated=0
Turn on double buffering.

输入后,显示屏上会显示如下如所示的LVGL示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:LVGL示例会自动适配屏幕,可能和上面展示的比例不一致。

​ 系统中内置有5个LVGL演示应用,如下所示:

lv_examples 0, is lv_demo_widgets
lv_examples 1, is lv_demo_music
lv_examples 2, is lv_demo_benchmark
lv_examples 3, is lv_demo_keypad_encoder
lv_examples 4, is lv_demo_stress

开发LVGL程序

配置编译lvgl环境

**注意:**如果您使用的是前文 开始使用-->运行虚拟机 方式二 中 我们提供好的虚拟机,可直接跳过此章节,进入下一小节《编译LVGL源码》;如果您是自己配置的虚拟机,请认准阅读并按此章节进行操作。

​ 假设将下载的工具链和源码tar.gz格式的压缩包文件传入虚拟机的任意目录中,这里我新建一个lvgl工作目录存储三个压缩包。输入:

ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir lvgl-work
ubuntu@ubuntu1804:~$ cd lvgl-work

allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz文件传入lvgl-work目录中,如下所示:

ubuntu@ubuntu1804:~/lvgl-works$ ls
allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz

新建toolchain文件夹用于存储sysrootgcc文件夹

ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir toolchain
ubuntu@ubuntu1804:~$ cd toolchain

传入压缩包后,如下所示:

ubuntu@ubuntu1804:~/lvgl_work/toolchain$ ls
100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz 
gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz

在toolchain目录中解压gcc工具链压缩包和sysroot依赖压缩包,输入:

tar -xzvf gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz
tar -xzvf 100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz

解压完成后返回上一级lv_work目录中输入:

ubuntu@ubuntu1804:~/lvgl_work/toolchain$ cd ../
ubuntu@ubuntu1804:~/lvgl_work$

解压lvgl demo源码压缩包

tar -xzvf allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz

解压完成后的目录如下所示:

ubuntu@ubuntu1804:~/lvgl_work$ tree -L 2
.
├── allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz
├── lv_port_linux_frame_buffer
│   ├── CMakeLists.txt
│   ├── LICENSE
│   ├── lv_conf.h
│   ├── lv_drivers
│   ├── lv_drv_conf.h
│   ├── lvgl
│   ├── main.c
│   ├── Makefile
│   ├── mouse_cursor_icon.c
│   └── README.md
└── toolchain
    ├── 100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz
    ├── arm-openwrt-linux-eabi-musl
    ├── gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz
    ├── sysroot
    └── toolchain

7 directories, 11 files

其中lv_port_linux_frame_buffer为LVGL Demo示例源码;toolchain中包含gcc交叉编译工具链和sysroot依赖文件。

下面开始修改源码中的Makefile文件,使lvgl源码使用下载的工具链进行编译。

进入gcc工具链文件目录的bin目录中查看交叉编译工具链是否存在

ubuntu@ubuntu1804:~/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin$ ls arm-openwrt-linux-muslgnueabi-gcc
arm-openwrt-linux-muslgnueabi-gcc
ubuntu@ubuntu1804:~/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin$ pwd
/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin

arm-openwrt-linux-muslgnueabi-gcc交叉编译工具链绝对路径为:

/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc

进入LVGL源码目录中,查看源码文件。

ubuntu@ubuntu1804:~/lvgl_work$ cd lv_port_linux_frame_buffer/
ubuntu@ubuntu1804:~/lvgl_work/lv_port_linux_frame_buffer$ ls
CMakeLists.txt  LICENSE  lv_conf.h  lv_drivers  lv_drv_conf.h  lvgl  main.c  Makefile  mouse_cursor_icon.c  README.md

修改Makfiel文件

vi Makefile

修改Makefile文件中CC为刚刚前面确认的交叉编译工具链路径,例如我刚刚确认的gcc交叉编译工具链绝对路径为:

/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc

那么修改Makfile文件中的CC修改为gcc交叉编译工具链绝对路径。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改步骤如下所示:

100ask-lvgl-modifyMakefile

修改完成后,保存退出编辑界面。

编译LVGL源码

此时还需要指定存放交叉编译需要使用的工具链、库文件、头文件的文件夹。在终端输入

export ARCH=arm
export CROSS_COMPILE=arm-openwrt-linux-muslgnueabi-
export PATH=$PATH:/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/
export SYSROOT_DIR=/home/ubuntu/lvgl_work/toolchain/sysroot/
export STAGING_DIR=/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/

注意:如果您是自己配置的虚拟机的请修改为对应的路径,,如果使用我们提供的方式二 直接 复制 粘贴到 ubuntu18.04终端执行即可。

配置完成后,输入make即可开始编译。编译过程如下所示:

100ask-t113-lvgl-makeAndBuild

等待编译完成后,会在当前目录下生成名称为demo的应用程序。

book@100ask:~/lvgl-work/lv_port_linux_frame_buffer$ ls demo 
demo

上传至开发板运行

注意: 默认情况下 上述的 ubuntu系统配置环境 以及我们制作的虚拟机镜像已经配置好 adb环境,大家只需要 参考 文章 3-通过adb传输文件在新窗口打开 讲您的开发板 挂载至 ubuntu系统上 即可操作如下步骤 开始进行上传操作。

在ubuntu系统下使用ADB功能将生成demo应用程序传输到开发板中运行,将ADB设备连接到虚拟机端中。查看ADB设备的设备号

abd devices

传输LVGL示例程序进开发板端的root目录下

adb push demo /mnt/UDISK

操作过程如下所示:

100ask-lvgl-adbPush

传输完成后,切换到开发板串口终端软件,进入终端,输入 如下命令: 即可看到屏幕运行 自己编译新的demo程序。

root@TinaLinux:/# cd /mnt/UDISK
root@TinaLinux:/mnt/UDISK# ls
demo
root@TinaLinux:/mnt/UDISK# ./demo 0
wh=1024x600, vwh=1024x1200, bpp=32, rotated=0

输入完成后,即可实现镜像中内置的lvgl demo演示示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

喜加一!望繁信科技再摘「2023年度新锐技术品牌奖」

1月31日,望繁信科技再次获颁由全球知名科技社区InfoQ评选的「2023年度新锐技术品牌奖」。这是InfoQ连续第二年将该奖项授予望繁信科技,用以肯定过去一年中,望繁信科技在流程挖掘与智能领域的技术创新与业务价值创造。 InfoQ在颁奖词中写到&…

【STM32】GPIO口以及EXTI外部中断

个人主页~ 有关结构体的知识在这~ 有关枚举的知识在这~ GPIO口以及EXTI外部中断 GPIO一、简介二、基本结构三、输入输出模式1、输入模式(1)上拉输入(2)下拉输入(3)浮空输入(4)模拟输…

【Python】面向对象的程序设计

一、面向对象的介绍 1.对象 对象是一种抽象概念,表示客观世界存在的实物,现实世界中能够看到的、触碰到的都可以成为对象,如:人、大象、小猫等。 对象通常分为两个部分,即静态部分和动态部分。静态部分为“属性”&a…

UE4 SLUA IOS打包报错解决办法

IOS打包报错:Fatal error "lua.h" file not found : SLua Unreal 在IOS远程打包编译的时候 Exteral没有copy过去,导致lua.h文件报错找不到,看了网上也没有写解决办法 错误信息截图: github上也有很多遇到改…

【每日一题】【动态规划(DP) 】【分治 迭代】“葡萄城杯”牛客周赛 Round 53 D题 小红组比赛 C++

“葡萄城杯”牛客周赛 Round 53 D题 小红组比赛 题目背景 “葡萄城杯”牛客周赛 Round 53 题目描述 小红希望出一场题目,但是他的实力又不够,所以他想到可以从以前的比赛中各抽一题,来组成一场比赛。不过一场比赛的难度应该是有限制的&a…

【nginx】nginx日志出现on文件

问题描述 生产发现容器里多出了一个on文件,非常大。 去看nginx配置已经这样保持16个月了(已经去掉其他无关内容) 原因解释 这个问题是因为nginx配置了access_log on; 有两个知识点: 1.access_log只有off的特殊值&#xff0c…

三菱电火花设备采集

三菱电火花机器一般情况下应该很少能见到,但在模具行业应该说是一种常见的加工设备。 一、通过官方手册采集数据 1.资料使用 连接方式: 这里重点关注下端口是1112 这里主要讲NC的状态转换 我们重点关注的是状态相关命令,手册中还支持NC程序上传和下载,感兴趣的话可以研究…

排序算法:堆排序,golang实现

目录 前言 堆排序 代码示例 1. 算法包 2. 堆排序代码 3. 模拟程序 4. 运行程序 5. 从大到小排序 堆排序的思想 堆排序的实现逻辑 1. 构建最大堆 2. 排序 循环次数测试 假如 10 条数据进行排序 假如 20 条数据进行排序 假如 30 条数据进行排序 假设 5000 条数据…

数据库——战德臣

1. 数据存储体系 1.1 计算机系统的存储体系 1.将不同性价比的存储组织在一起,满足高速的、大容量、低价格需求 2.CPU与内存直接交换信息,按存储单元(存储字)进行访问 3.外存按存储块进行访问,其信息先装入内存&…

NSSCTF-GDOUCTF 2023新生赛

[GDOUCTF 2023]hate eat snake 考察:js代码审计 打开题目,发现需要坚持60秒,那么简单的一个思路就是修改得分的变量>60即可 办法1:修改变量 右键查看源代码,之后发现有一个snake.js的文件,ctrlf搜索i…

健康小贴士丨中考考生怎么吃得好?

文章目录 引言三餐最佳的进食时间引言 中考正值初夏,气温急剧升高,食物易滋生细菌,发生食物中毒的风险也随之增加,医生建议 选择新鲜的食材,煮熟煮透,现吃现做,尽量不食用剩饭剩菜;不在路边露天摊点、不到无证和食品安全状况差的餐馆用餐;尽量减少在外就餐和点外卖的…

客服中心:高效知识库管理,6步提高70%用户体验

在当今快节奏的商业环境中,客服中心作为企业与客户沟通的重要桥梁,其运作的顺畅与否直接影响着客户的满意度和忠诚度。而知识库作为客服中心的核心资源之一,其管理水平的高低更是直接影响着客服的工作效率和问题解决能力。本文将深入探讨一系…

Django之JsonResponse对象

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 在Django框…

“LangChain实战:探索回调函数的应用

前言 毫无疑问,2024将是人工智能丰收年,开始寒假的我,准备先把LangChain捋一遍。 这篇文章来学习下callback机制, 之前聊过AutoGen的callback机制,我们来对比下。 回调和异步 作为js开发者,对于回调函数…

springboot智能健康管理平台-计算机毕业设计源码57256

摘要 在当今社会,人们越来越重视健康饮食和健康管理。借助SpringBoot框架和MySQL数据库的支持,开发智能健康管理平台成为可能。该平台结合了小程序技术的便利性和SpringBoot框架的快速开发能力,为用户提供了便捷的健康管理解决方案。 通过智能…

无线磁吸充电宝哪个牌子值得入手?什么牌子磁吸充电宝性价比高?

在当下科技日新月异的时期,无线磁吸充电宝成为了众多电子设备用户的得力助手。然而,面对市场上众多品牌和型号的无线磁吸充电宝,消费者常常陷入选择的困境:到底哪个牌子值得入手?什么牌子的磁吸充电宝性价比高&#xf…

【JavaScript】详解默认导出和命名导出的区别

文章目录 一、默认导出二、命名导出三、默认导出和命名导出的区别四、实际应用案例五、总结 在JavaScript模块化开发中,导入和导出模块是核心操作。ES6引入的模块化语法提供了两种主要的导出方式:默认导出(default export)和命名导…

【2024蓝桥杯/C++/B组/宝石组合】

代码来源2024第十五届蓝桥杯 C/CB组真题题解_蓝桥杯2024b组c语言答案-CSDN博客 证明s的简化式子

【Linux】命令行通配符

Linux在文件管理方面提供了丰富的功能,例如通配符,它是一种用于匹配文件名的特殊字符。通配符在Linux中可以帮助我们更加方便和快捷地查找和操作文件。 1.命令行通配符 通配符是一种特殊语句,主要有星号(*)、问号(?)等表示,用来…