4.2 LVGL移植

LVGL移植关键点

显示:LVGL作为一个GUI,肯定是需要“屏幕”的,LVGL中提供了屏幕的接口文件,我们需要把自己的显示设备和LVGL库接起来的话,就需要在这个接口文件里去配置自己的一些函数。

输入设备:如果你需要使用输入设备的话,例如键盘、鼠标、触控或者是编码器,那么你就需要去LVGL所提供的输入设备的一个接口文件里面,把你的输入设备一些函数配置进去。(我们后续采用触摸屏当作输入设备)

OS系统:如果我们涉及到系统的话,那么使用的就是FreeRTOS。

内存:内存主要涉及两方面的内容,一是SRAM,SRAM在LVGL中可以选择内部或者外部。二是LVGL有一套自研的管理算法,可以配置进去。

LVGL移植整体流程

1、确定输入、输出设备

输入:触摸屏、鼠标、键盘以及编码器;

输出:显示屏。

2、确定所需功能

屏幕数据传输方式(其实就是需不需要用到DMA2D)、系统、SRAM(选择内部还是外部)、内存管理算法(是否需要LVGL的自研内存算法)。

3、准备LVGL库、例程

准备LVGL库文件,还有支持所需功能的例程源码。

4、添加LVGL库到工程

按需裁剪、修改LVGL库文件,并添加到MDK工程中。

5、配置输入、输出设备

适配自己的输入和输出设备,添加所需功能(例如系统)。

6、提供时基、测试

为LVGL提供时基,写测试代码检测移植是否成功。

LVGL移植

LVGL移植分为四个部分,这四个部分,每个部分都是完整的移植,区别在于带不带触摸、选择裸机还是RTOS、使用内部SRAM还是外部SRAM、内存管理使用LVGL自带的还是自己自研的。

移植第一部分

移植:触摸+裸机+内部SRAM+LVGL自带内存管理

  • 裁剪LVGL库文件(我们在第一节已经裁剪完了)
  • 把 lv_conf_template.h 文件名修改成 lv_conf.h
  • 打开 lv_conf.h 文件,修改条件编译指令,把#if 0 修改成#if 1
  • 添加定时器文件
  • 按照下面的结构新建文件夹:、