把 qemu-vexpress-a9 的 LVGL demo 切到 coffee_260428 UI,并解决构建报错,最后整理成文档说明。
实际排障与修改过程
- 你先确认了
lv_demo.c中入口已改为:extern void ui_init(void);ui_init();
- 首个错误是链接期:
undefined reference to ui_init
- 我排查后发现根因是
coffee_260428目录没有被 SCons 纳入构建。
随后进行了 3 处关键修复:
-
新增构建脚本
- 新增
bsp/qemu-vexpress-a9/applications/lvgl/coffee_260428/SConscript - 递归收集该目录及子目录
.c,并加入CPPPATH,纳入DefineGroup
- 新增
-
修正头文件包含路径
- 修改
bsp/qemu-vexpress-a9/applications/lvgl/coffee_260428/ui.h #include "lvgl/lvgl.h"改为#include <lvgl.h>- 解决
No such file or directory
- 修改
-
启用缺失字体宏
- 修改
bsp/qemu-vexpress-a9/applications/lvgl/lv_conf.h - 增加
#define LV_FONT_MONTSERRAT_28 1 - 解决
lv_font_montserrat_28 undeclared
- 修改
责任归属(已和你对齐)
- 你手动改的 :
bsp/qemu-vexpress-a9/applications/lvgl/demo/lv_demo.c入口切换到ui_init()
- 我协助改的 :
coffee_260428/SConscript(新增)coffee_260428/ui.h(include 调整)applications/lvgl/lv_conf.h(字体宏)
文档整理产出(会话中已完成)
你要求"整合成文档"的内容已整理为:
BSP_LCD_WIDTH/BSP_LCD_HEIGHT的定义、来源、使用位置与联动影响- 当前默认值
640x480 - 来源于
drivers/Kconfig的宽高选项 - 在
lv_conf.h映射到LV_HOR_RES_MAX/LV_VER_RES_MAX - 在
drv_clcd.c、drv_mouse.c的作用 drv_clcd.h的#ifndef兜底默认值- 修改分辨率会联动影响 LVGL 显示区、帧缓冲和鼠标边界
并补充了你需要的"改到 1280x480"操作步骤和注意事项。
当前状态
- 已消除会话中出现的三类核心报错(链接、头文件路径、字体未声明)对应的代码配置问题。
- 你后续只需继续本地
scons -j12验证;若出现新报错,按日志继续补齐(常见是新增字号字体宏或资源文件问题)。