lvgl:开始指南

发布时间 2023-08-19 17:20:32作者: caesura_k

1 开始指南

  要开始学习lvgl了,在使用之前还需要了解一些框架知识,/*这些内容较少不想另开随笔,就一并放这*/;

  github源码:LVGL (github.com)

  lvgl官方文档:Introduction — LVGL documentationGet started — LVGL documentation

  百问网翻译:Objects(对象) — 百问网LVGL中文教程文档 文档 (100ask.net)

  正点原子:2023年新版手把手教你学LVGL — 正点原子资料下载中心 1.0.0 文档 (openedv.com)

  8.0版本是20210601发布,8.1版本是20211110发布,8.2版本是20220131发布,8.3版本是20220706发布的;

  v7和v8的函数接口差别较大,v8各版本看了一下源码,有一些逻辑差别,还没看到接口差别,应该问题不大;

  下面以8.3.9版本为例;

  1.1 如何开始

    这个lvgl的官网给了一个卷王如何学习lvgl的时间表;可以参考参考;

    1.1.1 花三分钟的时间看看在线的交互例程,先了解一下lvgl可以干啥;

    1.1.2 花五分钟的时间看看介绍文档;了解lvgl的特性、器件需要的硬件支持、项目文件分布;可以多看几遍;

    1.1.3 花十五分钟的时间读读概览;了解如何移植lvgl到嵌入式系统,widgets、events、parts、states、styles,themes;

    1.1.4 下载一个仿真项目跑一跑;

    1.1.5 然后自己试试example;

    1.1.6 看一下lvgl在各个平台上的特性,比如仿真平台、开发板接口兼容、实时系统兼容等;

    1.1.7 porting指导,看一下lvgl的接口是如何兼容开发板驱动使用的;

    1.1.8 花2-3小时看一下overview_lvgl的语法和框架,然后再看看widgets_控件的特性;就差不多了;

    这个官方给的时间安排咋这么卷,我只是一棵韭宝宝呀;

2 源码文件夹

  以下代码是lvgl一直在更新的release版本代码分布;移植的时候就是移植这些代码到对应的系统上;

  2.1 src**             lvgl源码,重要;

  2.2 demos**           lvgl官方演示代码,一开始测试使用,久了就可以删掉自己写了;

  2.3 examples**            lvgl实例,输入输出接口文件,其中porting接口文件重点关注;

  2.4 lvgl.h**           lvgl包含的头文件包含;

  2.5 lv_conf_templated.h**       lvgl的功能开关,宏文件决定是否开启各部分功能;相当重要;

                   即lv_conf.h,ctrl+x 到和lvgl文件夹并列的目录下;

  2.6 docs             lvgl文档

  2.7 env_support          环境支持,mdk,esp,rtthread

  2.8 scripts          lvgl手稿,同python相关;

  2.9 tests           官方人员的测试代码;

3 移植

  显示设备,输入输出设备,数据传输方式dma2d,os系统,外置sram,内存管理算法等;是移植lvgl需要考虑的主要部分;

  以上部分基本就是整个移植的主要流程了;对于lvgl而言,还需要程序代码提供时基,通常是由rtos来为lvgl提供时基,用来刷新系统事件;

  3.1 codeblocks仿真

    对于codeblock仿真而言,需要使用官方提供的lv_port_win_codeblocks官方例程;

    lvgl/lv_port_win_codeblocks at release/v8.3 (github.com)

    该例程的下载可以使用git clone --recursive url递归下载;也可以先下载了master的zip后,再分别下载lv_drivers文件夹、lvgl文件夹;

    lv_drivers文件夹: 计算机输入输出设备的驱动,计算机仿真的驱动,codeblocks仿真需要的驱动;

    lvgl文件夹:           lvgl源码,不同版本的源码直接替换整个lvgl文件夹,就可以用cb仿真不同版本的lvgl;

    3.1.1 注意事项

      2023-08-10今天测试了一下如何移植pc simulator仿真,全部都有问题,仿真器没有跑起来;

      2023-08-17这个问题是因为我在裁剪lvgl的时候只裁剪了lvgl的源码,但是没有给他适配cb仿真需要的环境;

      cb仿真需要lv_drivers文件夹的驱动支持,和sdl2库的多媒体层支持;

      虽然报错报的是头文件问题,但其实是不是头文件配置问题,当然啦从某些角度说也可以理解为头文件问题;

  3.2 visual studio仿真

    对于visual studio仿真而言,也需要使用官方提供的例程来跑;

    它默认开启了win32的文件系统,这个项目文件里的文件夹较多,还没具体看看有啥用,先放着;

    虽然这个vs比较大,但是装起来比较方便智能,作为应用层开发确实还是比较方便的,虽然我还没咋用它;