移植将生成的 anyui-LIVE 输出迁移到目标设备,或将其集成到现有项目中。本指南介绍迁移、移植以及与其他系统的集成。
概述
anyui-LIVE 专注于 UI 设计,生成的 UI 代码被设计为独立于特定硬件和开发工具(如 Keil)。生成代码可迁移到任何满足 LVGL 要求的目标设备。
被移植的输出参见代码生成指南,其依赖的代码参见图片指南与字体库指南。
移植流程
UI 代码
所有 UI 代码生成在 {root}/generated 目录中,包括界面实现和转换后的资源(图片、字体)。移植时:
- 将
generated代码复制到你的项目中。 - 调用
setup_ui()初始化 UI。 - 为目标工具链编译项目。
此代码为自动生成,不应手动修改。
lv_conf.h
维护一份设备固件专属的 lv_conf.h 副本,至少包含以下配置:
以下三项是必须而且最重要的:
LV_HOR_RES_MAX和LV_VER_RES_MAX- 显示分辨率LV_COLOR_DEPTH- 颜色深度LV_MEM_SIZE- 内存大小(字节)
配置分辨率
- 对于LVGL 8.x版本,要在
lv_conf.h配置分辨率
#define LV_HOR_RES_MAX (?) // 水平分辨率
#define LV_VER_RES_MAX (?) // 垂直分辨率
- 对于LVGL 9.x版本,在
hal_init(w, h)中配置分辨率
hal_init(720, 480); // 配置显示分辨率为 720 x 480
在lv_conf.h中配置颜色深度和内存大小
/** 必需配置 */
#define LV_COLOR_DEPTH 32 // 颜色深度
/* 可用于 lv_mem_alloc() 的内存大小,单位字节 */
#define LV_MEM_SIZE (32 * 1024) // 内存大小 32KB,根据需要调整
在lv_conf.h中配置可选项
/** LVGL 组件 */
#define LV_USE_BTN 1 // 启用按钮
#define LV_USE_IMG 1 // 启用图片
#define LV_USE_LABEL 1 // 启用标签
// 按需添加其他组件
/** 按需的可选配置 */
/** LVGL 内置字体 */
#define LV_FONT_MONTSERRAT_8 1 // 1:启用 Montserrat 8px 字体;0:不启用
// 其他 MONTSERRAT 字体大小 ...
#define LV_FONT_MONTSERRAT_48 1 // 1:启用 Montserrat 48px 字体;0:不启用
与外部系统集成
生成代码可与现有嵌入式项目集成:
- 应用入口 - 在 LVGL 初始化后(
lv_init()和hal_init()之后) 调用setup_ui()。