本帖最后由 小浪先生 于 2024-9-29 16:26 编辑
在main函数中加入lvgl的初始化以下三行代码,屏蔽三行代码程序能正常执行,放开就报错Illegal instruction
- lv_init();
- lv_port_disp_init();
- lv_port_indev_init();
复制代码 已经在工程中添加以下三个文件,编译没有报错,有人知道怎么解决吗
程序串口出现以下情况
刚刚又仔细排查了一下,具体是加入了
程序就不再执行了
继续排查,是到了` disp_init();`中的
- lcd_clear((lcd_color_t *)draw_buf_3, LCD_COLOR_RGB(0x00, 0x00, 0x00));
- lcd_init((lcd_color_t *)draw_buf_3);
复制代码 发现draw_buf_3好像没有定义,定义的条件如下:
- #if defined(CONFIG_PSRAM)
- static lv_color_t draw_buf_3[LCD_W * LCD_H] ATTR_NOINIT_PSRAM_SECTION __attribute__((aligned(64)));
- static volatile lv_color_t *last_disp_buff_p = (void *)(uintptr_t)draw_buf_3;
- static volatile lv_color_t *last_lvgl_flush_p = NULL;
- #else
- #error "No config psram!"
- #endif
复制代码 但是我已经在proj.conf中使能为1
最终定位执行到以下函数时,程序崩溃
- lcd_init((lcd_color_t *)draw_buf_3);
复制代码 下面来说一下暂时的解决方法,我把例程中的AiPi-Eyes-Rx关于USB等的程序全部屏蔽调了,发现lvgl程序正常执行,我把SDK中的lvgl程序编译通过下载到板子中仍然是不能运行,报错一致,lvgl配置文件完全一致。突然发现用的board文件不一样,我把AiPi-Eyes-Rx工程中的board文件复制到自己的工程,并修改Makefile文件,编译自己工程中的borad文件,程序就可以执行了。
可能是SDK提供的board文件和AiPi-Eyes-Rx有点区别,我还没仔细看
|