stm32mp157教程案例 STM32MP157移植LVGL

发布者:大酉幽华1最新更新时间:2024-01-08 来源: elecfans关键字:移植 手机看文章 扫描二维码
随时随地手机看文章

1 简介

LVGL(Light and Versatile Embedded Graphics Library)是一个免费开源的嵌入式图形库,界面美观, 内存占用低, 支持C和Python等开发方式。早在几年前它就表现得十分惊艳,现如今被越来越多的人喜爱。笔者之前是使用6版本在单片机上面运行,如今都已经更新到7版本多了,人往高处走,终究得跟上最新版本,于是便有了关于LVGL7版本在linux上移植的这件篇笔记。


本次教程使用的开发板是万象奥科的HD-STM32MP157-STY开发板。该开发板使用STM32MP1家族中是目前性能强劲,资源最为丰富的一款处理器STM32MP157DAA,双核ARM Cortex-A7 @800Mhz/单核 Cortex-M4@209MHz ,板载1GB内存以及8G eMMC Flash。开发板具体信息详见文末。

LVGL官网为https://lvgl.io/,进入LVGL官网即可看到Github、Release notes、Docs、Forum链接,可按需下载。



2 运行Demo

为了开发方便,LVGL提供了很多仿真工程,可以在Eclipse、CodeBlocks、VisualStudio等各种环境上运行。


笔者这里简单介绍下VisualStudio环境下的操作。


2.1 下载代码


运行如下命令进行代码下载:


git clone https://github.com/

lvgl/lv_sim_visual_studio.git

cd lv_sim_visual_studio

git submodule update --init --recursive


下载后得到的文件如下:



双击LVGL.Simulator.sln即可使用VisualStudio打开工程。


2.2 调试


在VisualStudio中选择x64,然后点击“本地Windows调试器”。这时,会自动对代码进行编译。



编译成功后,会自动打开界面,显示LVGL Simulator for Windows Desktop,界面如下:



3 移植

3.1、下载源代码

LVGL的源码存放于github,可通过git进行下载。具体操作如下:


mkdirlvgl

cd lvgl

#Git lvgl的源码

git clone --recursive

https://github.com/littlevgl/

linux_frame_buffer.git

#若是下载速度慢也可以进LVGL官网的GIT仓库下载源码

cd linux_frame_buffer

#更新一下源码

git submodule foreach 'git checkout master; git pull'


3.2 安装必要的库


LVGL在Linux下面运行是需要依赖SDL库,首先我们需要进行如下命令安装SDL库;


sudo apt update

sudo apt install -y build-essential libsdl2-dev

3.3 交叉编译需要的库

3.3.1 交叉编译SDL库

Linux版本LVGL需要依赖SDL库,所以在交叉编译LVGL之前需要先交叉编译SDL库。具体的方法比较多,如:

纯手动交叉编译。此方法操作比较复杂,不推荐使用。

主机安装qemu来搭建arm环境,进入arm环境apt得到库(推荐)。

使用buildroot(推荐)。

本次教程介绍使用buildroot进行安装,具体步骤如下:

3.3.1.1 配置、编译


首先在buildroot源代码目录运行如下命令进行配置:


sudo make menuconfig



勾选上图所示保存并编译。


3.3.1.2 查找SDL库


配置成功后,编译会得到一个可直接用于开发板的文件系统,这个文件系统中会包含SDL依赖库。可以使用find命令找到这个库:


sudo find / -name libSDL2.a


3.3.2 交叉编译tslib库


LVGL需要用到触摸功能,触摸功能需要使用到tslib库,我们同样使用buildroot编译tslib。


sudo make menuconfig



编译后,会得到tslib相关的库。

3.4 收集得到的库

将编译好的SDL库和tslib库拷贝到LVGL的工程中。

在LVGL工程中新建lib目录,将库文件放置于其中,lib中文件有:

libSDL2.a libts.la libts.so libts.so.o libts.so.0.10.3 pkgconfig ts tslib.h


3.5 修改Makefile文件


接下来需要修改Makefile,加入LDFLAGS和CFLAGS的配置,LDFLAGS一般代表链接可执行程序时的链接选项,CFLAGS指定了头文件查找路径。


LDFLAGS += -L$(LVGL_DIR)/lib

CFLAGS += -I$(LVGL_DIR)/lib

LDFLAGS += -lts -lpthread


注释掉主机环境,添加交叉编译的CFLAGS



3.6 修改显示屏分辨率


在lv_conf.h中,有显示屏分辨率的配置,LV_HOR_RES_MAX和LV_VER_RES_MAX,笔者使用的屏幕分辨率为800480,将这里修改为800480即可。



3.7 编译


make CC=arm-none-linux-gnueabihf-gcc -j8


修改好代码后,使用make进行编译,编译完成会得到一个可执行文件。执行效果如下:




STM32MP1产品靓照


关键字:移植 引用地址:stm32mp157教程案例 STM32MP157移植LVGL

上一篇:STM32的中断及是如何使用
下一篇:STM32单片机小Tips(6):玩转IAR,开发STM32

推荐阅读最新更新时间:2024-10-28 19:24

GUI 在 MINI2440 QEMU 的eCos 上的移植
经历了redboot, kernel测试,网卡驱动,web server的测试,很自然的我们想到了UI。 这不仅仅是移植一个GUI, 更重要的让MINI2440 QEMU的ecos仿真平台更加完整话。 对emwin的移植,需要两个部分,老生常谈了网上到处都是。 (本移植也只是针对学习和测试,并非商业用途) 1. LCD的驱动 这个请网上搜索,MINI2440 LCD Driver就可以。 2. GUI的OS接口 探究emwin的OS接口部分,我们需要利用ecos的两个同步资源 cyg_semaphore cyg_flag 还有一些thread的操作函数 cyg_thread_delay cyg_thread_ge
[单片机]
GUI 在 MINI2440 QEMU 的eCos 上的<font color='red'>移植</font>
基因新技术让骨髓与器官移植进入新时代
      骨髓和其他器官移植时,供者和受者之间人类白细胞抗原(HLA)相容程度越高,排斥反应的发生率就越低,移植成功率和移植器官长期存活率就越高。反之,就越容易发生排斥反应。7月开始,深圳华大基因应用新一代测序技术,只需通过一次实验就能够读取数千份样本的HLA序列数据,并一次性达到HLA分型的最高分辨率,同时还可发现新的等位基因。在检测通量、数据质量、成本控制等方面都有质的飞跃。应用这种新技术进行高分辨配型,成本不到传统技术的一半,能避免多次配型给患者造成的额外经济负担,也为治疗争取宝贵的时间。   目前我国骨髓库中的HLA分型数据多数是低分辨的,不能确保供者和患者的HLA真正匹配,患者往往需要和多个低分辨匹配的志愿者进行高
[医疗电子]
Qt-embedded-linux-opensource-src-4.5.1移植到mini2440开发板技术说明
用过友善之臂的朋友都知道,友善之臂mini2440内置的是qt2的界面设计,但是现在q4逐渐成为主流。如何把qt4成功移植到mini2440非常不容易,本人也费了很到的功夫才完成了这样的工程。现在我把自己的经验拿出来与大家分享,希望有兴趣的朋友少走弯路。 1.我的环境及所需资源: PC机操作系统: Ubuntu 交叉编译工具:arm-linux-gcc-4.3.2.tar.gz 所需资源: tslib-1.4.tar.gz qt-embedded-linux-opensource-src-4.5.1.tar.gz qt-x11-linux-opensource-src-4.5.1.tar.gz 2.安装
[单片机]
u-boot移植(一)---准备工作
一、工具链的制作 1.1 工具   软件工具:crosstool-ng   下载地址:git clone https://github.com/crosstool-ng/crosstool-ng   crosstool-ng的环境需要 libncurse5-dev   sudo apt-get install libncurse5-dev   安装autoconf:  sudo apt-get install autoconf   进入crosstool-ng目录,执行./bootstrap,生成 configure 执行文件   检查安装环境,报什么错,就安装什么软件:./configure --prefix=`pwd`/cr
[单片机]
u-boot<font color='red'>移植</font>(一)---准备工作
Linux-4.9.2内核在mini2440上的移植(二)Ubuntu编译环境搭建(下)
2.1安装arm-linux-编译器 编译器在ubuntu环境下可以使用apt命令自动安装,也可以下载独立的安装包手动安装,这两种安装方式都可以实现内核编译,不同版本的arm-linux-gcc可以在系统中共存。本文会介绍这两种安装方法。任一种编译器都能编译内核,推荐使用第一种方法。 这里我们规定一下,所有的命令前的“#”表示使用root权限执行,登录系统后使用sudo -i切换为root权限,#后面的内容是实际指令,复制粘贴到putty中执行即可。 (1)自动安装编译器 ~# apt-get install gcc-arm-linux-gnueabihf 安装完成后,查看是否安装成功 ~#arm-linux-
[单片机]
Linux-4.9.2内核在mini2440上的<font color='red'>移植</font>(二)Ubuntu编译环境搭建(下)
在MC68HC908GP32上移植μC/OS-II
在前几讲中,介绍了μC/OS-II的概念、工作机制,还介绍了μC/OS-II在Intel 80X86CPU上的移植,相信读者通信学习,已经对移植的过程和步骤有了一定的了解。ΜC/OS-II最初是为摩托罗拉68HC11系列单片机设计的。68HC11系列单片机有外部总线,可以外接RAM和ROM;而没有外部总线8位MCU。由于RAM容量的限制,移植就存在一定的困难;但对于有些8位的MCU,将μC/OS-II移植到MOTOROLA MC68H908GP32(以下简称GP32)上。 一、在GP32上移植μC/OS-11的主要问题 在第(4)讲中,介绍过要移植μC/OS-11,目标处理必须满足以下要求:
[应用]
实现针对触摸屏的输入引擎移植解析方案
1.引言 嵌入式GUI指在嵌入式系统中为特定的硬件设备或者环境而设计的图形用户界面系统。它极大地方便了非专业用户的使用,人们不再需要死记硬背大量的命令,而可以通过窗口、菜单方便地操作。在实际应用中,嵌入式GUI应满足轻型、占用资源少、高性能、高可靠性、可配置等基本要求。 Linux作为一种可裁减的操作系统,兼容多种主流CPU且支持所有的文件系统和网络服务,并具备源代码公开、易于定制、稳定、功能强大和易开发等优点,是发展未来嵌入式设备的绝佳资源。 2.Linux在嵌入式系统上的实现 2.1系统引导 系统上电或者复位后,将对系统硬件设备进行自检,无错误则将硬盘0磁道的第一个扇区,即MBR中的BootLoader调至
[嵌入式]
嵌入式操作系统Windows CE.NET在S3C2410平台上的移植
目前,嵌入式微处理器种类很多,嵌入式操作系统要支持尽可能多的处理器,这就要完成操作系统针对不同处理器的定制。   本文分析了嵌入式操作系统Windows CE。NET的特点,并利用工具Platform Builder 4。2完成了其在以ARM920T为核心的S3C2410处理器上的定制。   1 Windows CE系统和Platform Builder 4.2   Windows CE是微软推出的一个32位、多线程、多任务的嵌入式操作系统,是微软专门为信息设备、移动应用、嵌入式应用等设计的嵌入式模块型操作系统。用户可选择、组合和配置Windows CE。NET的模块和组件来创建用户版的操作系统。   W
[单片机]
嵌入式操作系统Windows CE.NET在S3C2410平台上的<font color='red'>移植</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved