mini2440移植lvgl(v8.2)

目录

概述

1 下载源码

1.1 登录LVGL git地址

1.2 LVGL linux平台上的库文件介绍

1.3 下载代码

1.3.1 下载lvgl

1.3.2 下载lv_drivers

1.3.3 下载lv_port_linux_frame_buffer

2 配置编译环境

2.1 创建工程目录

2.2 完善工程目录下的文件

2.2.1 构建工程文件

2.2.2 匹配文件(lv_drv_conf.h)

2.2.3 匹配文件(lv_conf.h)

2.3 配置交叉编译环境和编译

2.3.1 配置makefile

2.3.2 编译

3 测试

3.1 挂载NFS

3.2 运行代码

4 总结


源代码下载地址:

lvgl-v8.2-demo-proj.tar.bz2-mini2440资源-CSDN文库

概述

本文主要介绍将lvgl-v8.2移植到mini2440的详尽步骤,笔者通过实操的方法详细的记录移植过程的每个步骤,并将每一个步骤需要修改的代码或者修改的文件记录下来,方便日后追溯流程。

1 下载源码

1.1 登录LVGL git地址

LVGL 库在git上的路径:

https://github.com/lvgl/

登录网址之后,可以看见

1.2 LVGL linux平台上的库文件介绍

在lvgl的仓库中,有太多的代码,这里主要选择3个代码库,下载其代码:

函数库下载地址和功能介绍:

代码库名称git地址说明
lvglGitHub - lvgl/lvgl: Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.
lv_driversGitHub - lvgl/lv_drivers: TFT and touch pad drivers for LVGL embedded GUI libraryTFT and touch pad drivers for LVGL embedded GUI library
lv_port_linux_frame_bufferGitHub - lvgl/lv_port_linux_frame_buffer: LVGL configured to work with a standard Linux framebufferLVGL configured to work with a standard Linux framebuffer

1.3 下载代码

笔者选择现在v8.2 版本,其具体下载方法如下:

1.3.1 下载lvgl

在ubuntu下使用命令:

git clone https://github.com/lvgl/lvgl

下载完成后,进入代lvgl目录,查看所有的版本信息,使用如下命令:

git branch --all

下载release v8.2 使用命令如下:

git checkout release/v8.2

执行命令后:

1.3.2 下载lv_drivers

在ubuntu上使用命令:

git clone https://github.com/lvgl/lv_drivers

下载完成后,进入代lv_drivers目录,查看所有的版本信息,使用如下命令:

git branch --all

下载release v8.2 使用命令如下:

git checkout release/v8.2

1.3.3 下载lv_port_linux_frame_buffer

在ubuntu上使用命令:

git clone https://github.com/lvgl/lv_port_linux_frame_buffer

下载完成后,进入代lv_port_linux_frame_buffer目录,查看所有的版本信息,使用如下命令:

git branch --all

下载release v8.2 使用命令如下:

git checkout release/v8.2

2 配置编译环境

2.1 创建工程目录

下载完成所需要的代码包后,可以创建工程,在源代码的同级目录下创建project目录,使用命令:

mkdir demo_proj

执行命令后,在该文件夹中可以看见:

2.2 完善工程目录下的文件

2.2.1 构建工程文件

Step -1: copy lv_port_linux_frame_buffer 目录下的文件至demo_proj

Step -2: copy lv_drivers和lvg两个文件夹至demo_proj

2.2.2 匹配文件(lv_drv_conf.h)

step -1: 匹配文件

1)使能该文件的功能

2)使能linux环境下的驱动

3)使能触摸屏驱动

2.2.3 匹配文件(lv_conf.h)

1) 使能该驱动文件的功能

2) 根据板卡硬件的情况调整buf空间

通过以上步骤,完成项目文件的构建工作。

2.3 配置交叉编译环境和编译

2.3.1 配置makefile

在demo_proj目录中配置makefile的内容,主要是编译器地址

/home/mftang/ctools/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc

2.3.2 编译

demo_proj目录中执行make命令,编译代码

make

执行过程如下:

编译完成后:

3 测试

3.1 挂载NFS

挂载NFS服务器命令:

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.11:/home/mftang/nfs /mnt

将demo_lvgl文件copy到/home/mftang/nfs目录中,使用命令:

cp demo_lvgl  /home/mftang/nfs

执行命令后:

在板卡的mnt目录下,可以找到该文件:

3.2 运行代码

运行代码后,lvgl并不能正常工作,说明当前代码存在问题:

Error 问题log:

./demo_lvgl: line 1:ELF: not found
./demo_lvgl: line 2: p: not found
./demo_lvgl: line 3: ▒: not found
./demo_lvgl: line 3: g: not found
./demo_lvgl: line 3: ▒▒▒o׹▒▒▒▒p▒b▒GNUe▒m: not found
./demo_lvgl: line 4: : not found
./demo_lvgl: line 5: syntax error: word unexpected

4 总结

将lvgl直接移植到mini2440并不能工作,具体是什么原因笔者还没有详尽去分析,后续有时间再来看看什么原因引起代码不能正常运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle常用sql命令(新手)

1、备份单张表 创建复制表结构 create table employeesbak as select * from cims.employees 如果只复制表结构,只需要在结尾加上 where 10 插入数据 insert into employeesbak select * from cims.employees 删除一条数据 delete from…

水泥设备如何实现物联网远程监控?

水泥设备如何实现物联网远程监控? 在当今的工业4.0时代,水泥行业正在经历一场深度的技术革新,其中构建智慧工厂并采用物联网远程监控解决方案成为了提升生产效率、保障产品质量、实现节能减排的关键路径。该方案通过集成先进的信息技术、物联…

list使用与模拟实现

目录 list使用 reverse sort unique splice list模拟实现 类与成员函数声明 节点类型的定义 非const迭代器的实现 list成员函数 构造函数 尾插 头插 头删 尾删 任意位置插入 任意位置删除 清空数据 析构函数 拷贝构造函数 赋值重载函数 const迭代器的设计 …

【PostgreSQL】用pgAdmin轻松管理PostgreSQL

pgAdmin 是一个功能强大的开源Web界面工具,专为管理和维护PostgreSQL数据库而设计。它提供了一个直观的图形界面,使得用户能够轻松地执行复杂的数据库操作,如查询、更新、导入/导出数据以及管理数据库对象等。pgAdmin 支持几乎所有的PostgreS…

EasyExcel 模板导出excel、合并单元格及单元格样式设置。 Freemarker导出word 合并单元格

xls文件: 后端代码: InputStream filePath this.getClass().getClassLoader().getResourceAsStream(templateFile);// 根据模板文件生成目标文件ExcelWriter excelWriter EasyExcel.write(orgInfo.getFilename()).excelType(ExcelTypeEnum.XLS).withTe…

redis 数据库的安装及使用方法

目录 一 关系数据库与非关系型数据库 (一)关系型数据库 1,关系型数据库是什么 2,主流的关系型数据库有哪些 3,关系型数据库注意事项 (二)非关系型数据库 1,非关系型数据库是…

37.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码: import FaultLogger from ohos.faultL…

鸿蒙OS元服务开发说明:【WebGL网页图形库开发接口】

一、场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式开发。 二、接口说明 表1 WebGL主要接口列表 鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术鸿蒙技术文档开发知识更…

elment UI el-date-picker 月份组件选定后提交后台页面显示正常,提交后台字段变成时区格式

需求&#xff1a;要实现一个日期的月份选择<el-date-picker :typeformData.dateType :value-formatdateFormat v-modelformData.leaveFactoryDateplaceholder选择月份></el-date-picker>错误示例&#xff1a;将日期显示类型(type)dateType或将日期绑定值的格式(val…

Java SpringBoot中优雅地判断一个对象是否为空

在Java中&#xff0c;可以使用以下方法优雅地判断一个对象是否为空&#xff1a; 使用Objects.isNull()方法判断对象是否为空&#xff1a; import java.util.Objects;if (Objects.isNull(obj)) {// obj为空的处理逻辑 }使用Optional类优雅地处理可能为空的对象&#xff1a; impo…

为何网易游戏会选择引入OceanBase数据库

本文作者&#xff1a;田维繁&#xff0c;网易游戏关系型数据库小组负责人 作为中国游戏开发领域的佼佼者&#xff0c;网易游戏始终站在网络游戏自主研发的前沿。其产品及周边产品线丰富多样&#xff0c;因此&#xff0c;为满足各种业务场景的需求&#xff0c;需要多种不同的数据…

XRDP登录ubuntu桌面闪退问题

修改 /etc/xrdp/startwm.sh unset DBUS_SESSION_BUS_ADDRESS unset XDG_RUNTIME_DIR . $HOME/.profile

ensp华为AC+AP上线配置

AR1配置&#xff1a; <Huawei>system-view # 进入系统视图<Huawei>sysname R1 # 设备重命名[R1]dhcp enable # 开启DHCP功能[R1]interface GigabitEthernet0/0/0 # 进入接口 [R1-GigabitEthernet0/0/0]ip address 192.168.0.1 23 # 配置接口地址 [R1-GigabitE…

教育信创 | 云轴科技ZStack联合飞腾发布全场景教育信创白皮书

随着数字化时代的到来&#xff0c;教育行业正面临着前所未有的挑战与机遇。为了推动教育行业的数字化转型和信创人才培养&#xff0c;云轴科技ZStack联合飞腾于3月28日正式发布了《教育行业数字化自主创新飞腾生态解决方案白皮书》&#xff08;简称《教育白皮书》&#xff09;。…

Flutter应用混淆技术原理与实践

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

Nginx三大常用功能“反向代理,负载均衡,动静分离”

注意&#xff1a;以下案例在Windows系统计算机作为宿主机&#xff0c;Linux CentOS 作为虚拟机的环境中实现 一&#xff0c;Nginx配置实例-反向代理 1.反向代理 案例一 实现效果&#xff1a;使用nginx反向代理&#xff0c;访问 www.123.com 直接跳转到127.0.0.1:8080 准备工…

HBase(超级无敌详细PROMAX讲解版)

简介 概述 图-1 HBase图标 HBase原本是由Yahoo!公司开发的后来贡献给了Apache的一套开源的、基于Hadoop的、分布式的、可扩展的非关系型数据库(Non-Relational Database)&#xff0c;因此HBase不支持SQL(非关系型数据库基本上都不支持SQL)&#xff0c;而是提供了一套单独的命…

RESTful规范总结

概念&#xff1a;RESTful&#xff08;Representational State Transfer 的缩写&#xff09;是一种广泛使用的API架构风格。 1.资源&#xff1a;在REST API的设计中&#xff0c;首先需要面向资源建模&#xff0c;其中每个节点是是一个简单资源或集合资源。 1.1一个集合包含相同…

Error: TF_DENORMALIZED_QUATERNION: Ignoring transform forchild_frame_id

问题 运行程序出现&#xff1a; Error: TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id “odom” from authority “unknown_publisher” because of an invalid quaternion in the transform (0.0 0.0 0.0 0.707) 主要是四元数没有归一化 Eigen::Quatern…

Redis常用命令补充和持久化

一、redis 多数据库常用命令 1.1 多数据库间切换 1.2 多数据库间移动数据 1.3 清除数据库内数据 二、redis高可用 2.1 redis 持久化 2.1.1 持久化的功能 2.1.2 持久化的两种方式 2.1.2.1 RDB 持久化 2.1.2.2 AOF 持久化 2.1.2.3 RDB和AOF的优缺点 三、小结 一、r…