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

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

3天内不再提示

stm32mp157教程案例 STM32MP157移植LVGL

武汉万象奥科 来源:武汉万象奥科 作者:武汉万象奥科 2022-04-06 11:07 次阅读

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产品靓照

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

    关注

    87

    文章

    11230

    浏览量

    208932
  • STM32
    +关注

    关注

    2266

    文章

    10873

    浏览量

    354832
  • 开发板
    +关注

    关注

    25

    文章

    4947

    浏览量

    97202
  • LVGL
    +关注

    关注

    1

    文章

    80

    浏览量

    2912
收藏 人收藏

    评论

    相关推荐

    100ASK_STM32MP157是什么?为什么要做STM32MP157开发板?

    100ASK_STM32MP157是什么?为什么要做STM32MP157开发板?100ASK_STM32mp157有哪些文档和视频?
    发表于 07-06 10:21

    基于STM32MP157的Linux操作系统移植

    免费课程分享:《基于STM32MP157的Linux操作系统移植》华清远见FS-MP1A开发板(主控芯片stm32mp157)获ST官方推荐,开发板入门系列视频上线ST官网!ST官网课
    发表于 08-03 06:24

    如何利用STM32MP157开发板去学习Linux呢

    STM32MP157板子有哪些用途?如何利用STM32MP157开发板去学习Linux呢?
    发表于 09-10 07:28

    STM32MP157超强芯片有哪些应用

    STM32MP157超强芯片有哪些特性?STM32MP157超强芯片有哪些应用?
    发表于 10-11 07:32

    为什么要做STM32MP157开发板呢

    100ASK_STM32MP157开发板是由哪些部分组成的?为什么要做STM32MP157开发板呢?
    发表于 10-28 07:37

    STM32MP157资源扩展板蜂鸣器控制

    写在前面:本文章为《STM32MP157资源扩展板驱动移植篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。资源扩展板是FS-
    发表于 01-06 06:34

    STM32MP157 Linux系统移植开发

    本文章为《STM32MP157 Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。
    发表于 01-12 06:07

    STM32MP157开发板的相关资料下载

    目录文章目录一、STM32MP157开发板简介二、STM32cubeide简介三、驱动DAC85601.gpio2.系统时钟3.基本定时器4.模拟spi总结一、STM32MP157开发板简介
    发表于 02-07 06:22

    stm32mp157开发的相关资料分享

    关于FS-MP1A开发板(stm32mp157):FS-MP1A开发板是华清远见最新自主研发的一款高品质、高性价比的linux+单片机二合一开发板。搭载ST的STM32MP157高性能
    发表于 02-11 07:35

    stm32mp157多核异构处理器有哪些功能呢

    stm32mp157是什么?stm32mp157多核异构处理器有哪些功能呢?
    发表于 02-28 06:58

    如何通过Cortex M4控制STM32MP157上的LTDC?

    是否可以通过Cortex M4协处理器控制STM32MP157上的LTDC?我注意到 STM32MP157 上没有适用于 LTDC 的 HAL 驱动程序。为什么会这样?我们可以在 STM32MP157 上使用适用于
    发表于 01-16 06:02

    【视频】华清远见stm32mp157开发入门指导(7讲)

    关于FS-MP1A开发板(stm32mp157):FS-MP1A开发板是华清远见最新自主研发的一款高品质、高性价比的linux+单片机二合一开发板。搭载ST的STM32MP157高性能
    发表于 12-07 19:06 8次下载
    【视频】华清远见<b class='flag-5'>stm32mp157</b>开发入门指导(7讲)

    迅为STM32MP157开发板使用手册更新啦

    迅为STM32MP157开发板使用手册更新啦
    的头像 发表于 03-24 16:33 1314次阅读
    迅为<b class='flag-5'>STM32MP157</b>开发板使用手册更新啦

    迅为STM32MP157开发板入门教程之外设功能验证

    迅为STM32MP157开发板入门教程之外设功能验证
    的头像 发表于 02-23 14:12 1332次阅读
    迅为<b class='flag-5'>STM32MP157</b>开发板入门教程之外设功能验证

    STM32MP157 MPU的评估板

    STM32MP157C-EV1 和 STM32MP157A-EV1 评估板 (STM32MP157x-EV1) 是作为 STM32MP1 系列中基于 STMicroelectronic
    发表于 10-09 17:31 1次下载