LittleVGL 源码分析--src目录结构

LittleVGL 源码分析--src目录结构_第1张图片

查看lvgl.h就可以看到整体的src结构。

/**
 * @file lvgl.h
 * Include all LittleV GL related headers
 */
 
#ifndef LVGL_H
#define LVGL_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/

#include "src/lv_misc/lv_log.h"
#include "src/lv_misc/lv_task.h"
#include "src/lv_misc/lv_math.h"
#include "src/lv_misc/lv_async.h"

#include "src/lv_hal/lv_hal.h"

#include "src/lv_core/lv_obj.h"
#include "src/lv_core/lv_group.h"
#include "src/lv_core/lv_indev.h"

#include "src/lv_core/lv_refr.h"
#include "src/lv_core/lv_disp.h"

#include "src/lv_themes/lv_theme.h"

#include "src/lv_font/lv_font.h"
#include "src/lv_font/lv_font_fmt_txt.h"
#include "src/lv_misc/lv_printf.h"

#include "src/lv_widgets/lv_btn.h"
#include "src/lv_widgets/lv_imgbtn.h"
#include "src/lv_widgets/lv_img.h"
#include "src/lv_widgets/lv_label.h"
#include "src/lv_widgets/lv_line.h"
#include "src/lv_widgets/lv_page.h"
#include "src/lv_widgets/lv_cont.h"
#include "src/lv_widgets/lv_list.h"
#include "src/lv_widgets/lv_chart.h"
#include "src/lv_widgets/lv_table.h"
#include "src/lv_widgets/lv_checkbox.h"
#include "src/lv_widgets/lv_cpicker.h"
#include "src/lv_widgets/lv_bar.h"
#include "src/lv_widgets/lv_slider.h"
#include "src/lv_widgets/lv_led.h"
#include "src/lv_widgets/lv_btnmatrix.h"
#include "src/lv_widgets/lv_keyboard.h"
#include "src/lv_widgets/lv_dropdown.h"
#include "src/lv_widgets/lv_roller.h"
#include "src/lv_widgets/lv_textarea.h"
#include "src/lv_widgets/lv_canvas.h"
#include "src/lv_widgets/lv_win.h"
#include "src/lv_widgets/lv_tabview.h"
#include "src/lv_widgets/lv_tileview.h"
#include "src/lv_widgets/lv_msgbox.h"
#include "src/lv_widgets/lv_objmask.h"
#include "src/lv_widgets/lv_gauge.h"
#include "src/lv_widgets/lv_linemeter.h"
#include "src/lv_widgets/lv_switch.h"
#include "src/lv_widgets/lv_arc.h"
#include "src/lv_widgets/lv_spinner.h"
#include "src/lv_widgets/lv_calendar.h"
#include "src/lv_widgets/lv_spinbox.h"

#include "src/lv_draw/lv_img_cache.h"

#include "src/lv_api_map.h"

/*********************
 *      DEFINES
 *********************/
/*Current version of LVGL*/       //LVGL的当前版本7.3.0
#define LVGL_VERSION_MAJOR   7    //major(主要的)
#define LVGL_VERSION_MINOR   3    //minor(次要的)
#define LVGL_VERSION_PATCH   0    //patch(补丁)
#define LVGL_VERSION_INFO "dev"   //版本信息 

/**********************
 *      TYPEDEFS
 **********************/

/**********************
 * GLOBAL PROTOTYPES
 **********************/

/**********************
 *      MACROS
 **********************/

/** Gives 1 if the x.y.z version is supported in the current version  //如果当前版本支持x.y.z版本,置1
 * Usage:  //用法:
 *
 * - Require v6                //需要v6
 * #if LV_VERSION_CHECK(6,0,0)
 *   new_func_in_v6();
 * #endif
 *
 *
 * - Require at least v5.3     //至少需要v5.3
 * #if LV_VERSION_CHECK(5,3,0)
 *   new_feature_from_v5_3();
 * #endif
 *
 *
 * - Require v5.3.2 bugfixes   //需要v5.3.2错误修复
 * #if LV_VERSION_CHECK(5,3,2)
 *   bugfix_in_v5_3_2();
 * #endif
 *
 * */
#define LV_VERSION_CHECK(x,y,z) (x == LVGL_VERSION_MAJOR && (y < LVGL_VERSION_MINOR || (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH)))


#ifdef __cplusplus
}
#endif

#endif /*LVGL_H*/

主要是这个宏的用法

LV_VERSION_CHECK(x,y,z)

(x ==  LVGL_VERSION_MAJOR    &&

          (y < LVGL_VERSION_MINOR ||

                            (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH)))

 

首先保证主版本。次版本可以小于系统定义的,次版本和系统定义相同的情况下。补丁版本可以随意。

 

LittleVGL 源码分析--src目录结构_第2张图片

misc(miscellaneous 混杂的)

日志:

          src/lv_misc/lv_log.h  依赖:

                             #include "lv_printf.h"

任务:

          src/lv_misc/lv_task.h 依赖:

                    内存:src/lv_misc/lv_mem.h依赖:数学基础:src/lv_misc/lv_math.h

                    lv_ll.h

src/lv_misc/lv_math.h
src/lv_misc/lv_async.h

 

 

你可能感兴趣的:(LittleVGl)