Bootstrap

AM335x Linux平台LVGL演示项目源码说明(持续更新中)

目录

1. 项目整体结构

2. 核心目录说明

2.1 lvgl目录

2.2 lv_drivers目录

2.3 thirdpart目录

3. 应用程序目录(apps)详解

3.1 helloworld组件

3.2 smarthome组件

3.3 template组件

3.4 tests组件

4. 构建系统

5. 开发流程

6. 注意事项


1. 项目整体结构

项目源码托管地址:https://gitcode.com/am335xt3/lvgl.git

LVGL项目采用模块化设计,主要包含以下核心目录:

├── apps                            # 应用程序目录
│   ├── helloworld              # Hello World示例应用
│   ├── smarthome            # 智能家居演示程序
│   ├── template                # 应用开发模板
│   └── tests                      # 测试程序集合
│       ├── databaseTest    # 数据库测试
│       ├── lnxfsTest            # 文件系统测试
│       └── virtboardTest     # 虚拟键盘测试
├── lvgl                             # LVGL核心库
├── lv_drivers                   # 设备驱动库
├── thirdpart                     # 第三方依赖库
│   ├── tslib                      # 触摸屏驱动库
│   ├── sqlite3                  # 数据库支持
│   └── ffmpeg                  # 多媒体支持
└── doc/                            # 项目文档

2. 核心目录说明

2.1 lvgl目录

LVGL核心库,提供图形界面的基础框架和控件:

  • src:源代码目录,包含核心组件、绘图引擎、控件等
  • demos:官方演示程序
  • examples:使用示例

2.2 lv_drivers目录

设备驱动库,支持多种显示和输入设备:

  • display:显示设备驱动(framebuffer、DRM等)
  • indev:输入设备驱动(触摸屏、按键等)

2.3 thirdpart目录

第三方依赖库:

  • tslib:触摸屏驱动库
  • sqlite3:数据库支持
  • ffmpeg:多媒体支持

3. 应用程序目录(apps)详解

3.1 helloworld组件

基础示例应用,展示LVGL基本功能的使用。

├── src/
│   ├── main.c          # 主程序入口
│   ├── dump.c          # 调试辅助功能
│   └── mouse_cursor_icon.c  # 鼠标光标图标

主要特性:

  • 演示基本GUI控件的使用
  • 包含鼠标光标支持
  • 提供调试信息输出

3.2 smarthome组件

智能家居演示程序,展示完整的应用开发案例

├── src/
│   ├── com/           # 通用组件
│   ├── drv/           # 驱动适配
│   ├── pages/         # 界面页面
│   │   ├── splash_page    # 启动页面,显示应用启动动画
│   │   ├── login_page     # 登录页面,提供用户认证界面
│   │   ├── home_page      # 主页面,智能家居控制中心
│   │   ├── logo_icon      # Logo图标资源
│   │   └── page_manager   # 页面管理器,处理页面切换
│   ├── main.c         # 主程序
│   └── lv_app_conf.h  # 应用配置
├── images/            # 图片资源
└── doc/               # 组件文档

主要特性:

  • 完整的智能家居控制界面
  • 模块化的页面设计
  • 包含虚拟键盘等高级控件

3.3 template组件

应用开发模板,为新应用开发提供基础框架。

├── src/
│   └── main.c        # 模板主程序
├── images/           # 图片资源目录
└── doc/              # 文档目录

主要特性:

  • 提供标准的项目结构
  • 包含基础配置和框架代码
  • 便于快速启动新项目

3.4 tests组件

测试程序集合,用于功能验证和开发测试。

├── databaseTest/     # 数据库测试
├── lnxfsTest/        # 文件系统驱动测试,目的是linux下不使用驱动符号,未成功
└── virtboardTest/    # 虚拟键盘测试

主要特性:

  • 数据库操作测试
  • 文件系统驱动功能测试
  • 虚拟键盘功能测试

4. 构建系统

项目使用CMake构建系统:

  • CMakeLists.txt:主构建配置文件
  • toolchain.cmake:交叉编译工具链配置

每个组件都包含独立的CMakeLists.txt文件,支持灵活的构建配置。

5. 开发流程

  1. 参考helloworld示例了解基本用法
  2. 基于template组件创建新应用
  3. 参考smarthome组件学习完整应用开发
  4. 使用tests组件进行功能测试

6. 注意事项

  • 遵循项目的目录结构规范
  • 合理使用现有组件和示例代码
  • 注意文档和资源文件的管理
  • 保持良好的代码组织和注释
;