前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >百问网全志T113-PRO LVGL环境配置

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

作者头像
阿志小管家
发布于 2024-08-02 00:12:22
发布于 2024-08-02 00:12:22
20600
代码可运行
举报
运行总次数:0
代码可运行

运行LVGL示例

启动开发板

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

运行LVGL示例

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

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

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

100ask-lvgl-serial-demo
100ask-lvgl-serial-demo

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@TinaLinux:/# lv_examples 0
wh=1024x600, vwh=1024x1200, bpp=32, rotated=0
Turn on double buffering.

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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工作目录存储三个压缩包。输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir lvgl-work
ubuntu@ubuntu1804:~$ cd lvgl-work

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ubuntu@ubuntu1804:~/lvgl-works$ ls
allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir toolchain
ubuntu@ubuntu1804:~$ cd toolchain

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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依赖压缩包,输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xzvf gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xzvf 100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ubuntu@ubuntu1804:~/lvgl_work/toolchain$ cd ../
ubuntu@ubuntu1804:~/lvgl_work$

解压lvgl demo源码压缩包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xzvf allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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目录中查看交叉编译工具链是否存在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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交叉编译工具链绝对路径为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi Makefile

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc

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

修改步骤如下所示:

100ask-lvgl-modifyMakefile
100ask-lvgl-modifyMakefile

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

编译LVGL源码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
100ask-t113-lvgl-makeAndBuild

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
book@100ask:~/lvgl-work/lv_port_linux_frame_buffer$ ls demo 
demo
上传至开发板运行

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abd devices

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb push demo /mnt/UDISK

操作过程如下所示:

100ask-lvgl-adbPush
100ask-lvgl-adbPush

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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演示示例。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
linux CentOS7 下 Docker安装
Docker在CentOS安装介绍地址:https://docs.docker.com/install/linux/docker-ce/centos/
Lansonli
2021/10/09
3970
2019年9月23日 Linux学习笔记
Markdown 命令教程
用户6318323
2019/09/23
8380
2019年9月23日 Linux学习笔记
centos7 docker安装详解
查看内核和操作系统版本 [root@prod3 ~]# uname -r 3.10.0-327.el7.x86_64 [root@prod3 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 1、安装yum源 yum install -y epel-release 2、yum安装docker yum install docker -y 3、启动docker并将其设置为开机启动 systemctl start docker.service
程序员同行者
2018/06/22
6770
1-Docker概述
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Ywrby
2022/10/27
3570
1-Docker概述
【学习笔记】Docker学习笔记
Docker 安装 # 1、yum 包更新到最新 yum update # 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 3、 设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docke
Karos
2023/02/02
1.3K0
【学习笔记】Docker学习笔记
Linux下Docker的安装及使用
类似于电脑,要在朋友的电脑上跑你写的Java程序,就得检查他电脑有没有安装Java环境.
玖柒的小窝
2021/09/08
9350
Linux下Docker的安装及使用
centos7安装docker
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
周小董
2019/03/25
1.2K0
centos7安装docker
Docker入门:Docker安装与基本使用
Docker支持主流的Linux Server、也支持Windows Server,同时为了方便开发者在开发环境中使用Docker,Docker官方也提供了支持Windows以及macOS的Docker Desktop。
KenTalk
2023/04/07
1.6K0
Docker入门:Docker安装与基本使用
【云原生实战】Docker基本概念以及命令实战
Install Docker Engine on CentOS | Docker Documentation
陶然同学
2023/02/27
3350
【云原生实战】Docker基本概念以及命令实战
Docker入门与简单使用
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。近几年来,Docker 在国内发展的如火如荼,特别是在互联网公司, Docker 的使用是十分普遍的,极大提高了应用的维护效率,降低了云计算应用开发的成本。本篇文章主要是带你入门Docker,介绍Docker的安装及简单使用。
MySQL技术
2019/11/07
6750
docker高级教程_docker到底怎么用
可以看见右侧有docker pull command拉取镜像的命令,以windows为例,打开cmd输入以上命令即可下载docker镜像
全栈程序员站长
2022/11/03
1.4K0
docker高级教程_docker到底怎么用
CentOS7 安装 Docker
使用 cat /etc/os-release 命令查看Linux 发行版名称和版本号
草帽lufei
2022/07/29
3560
CentOS7 安装 Docker
在Centos7上安装Docker
在Centos7上安装Docker-ce直接用yum install docker -y安装的docker版本为1.12,但是docker发展很快,现在都18.03.1了。docker-ce是指docker的社区版。1、安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源yum install -y yum-utils
Dream城堡
2018/09/10
1.4K0
基于Docker构建安装Git/GitLab,以及制作springboot工程镜像
本地离线存储:绝大多数操作都只需要访问本地文件和资源,不用连网,在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
艾编程
2020/06/10
4.6K0
CentOS 7安装Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
青衫染红尘
2021/01/19
6740
Docker常用命令
学习Docker有段时间了,所有的操作都是在命令行下,如果不是每天都在使用,很容易忘记命令。本文将以学习Docker的角度,从前到后,将一些常用的Docker命令记录下来,算是个备忘。
oec2003
2019/07/19
6050
Docker常用命令
Centos7安装docker18
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。 社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。 1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 2、使用 root 权限登录 Centos。确保 yum 包更新到最新。 yum update 3、卸载旧版本(如果安装过旧版本的话) yum remove docker  docker-common docker-selinux docker-engine 如果之前已经安装过旧版本的docker 卸载旧版本的包 yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 5、设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 6、可以查看所有仓库中所有docker版本,并选择特定版本安装 yum list docker-ce --showduplicates | sort -r 7、安装docker yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce 8、启动并加入开机启动 systemctl start docker systemctl enable docker 9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了) docker version
似水的流年
2019/12/06
1K0
docker必会知识(常用)
:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
编程张无忌
2021/01/26
2.2K0
docker必会知识(常用)
Centos7下安装Docker(详细安装教程)[通俗易懂]
百科说:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
全栈程序员站长
2022/07/25
10.5K0
Docker
以前我们开发项目有专门的开发环境,做测试时有测试环境,而产品上线就会有生产环境,这个过程经常要迁移项目,不同的环境配置可能导致不可预估的错误,要经常性的改动
晚上没宵夜
2020/04/30
1.1K1
Docker
相关推荐
linux CentOS7 下 Docker安装
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档