T5AI_BOADE_EYES开启ENABLE_TUYA_UI配置以后,开机播报语音和点亮屏幕时间从4秒变成了7秒左右,3.13.3和3.13.6都存在这个问题,3.12.25几乎不受影响,请有没有什么方法可以缩短时长?
T5_3.13.3开启ENABLE_TUYA_UI配置后开机时间过长
Re: T5_3.13.3...
test reply verification
Re: T5_3.13.3和3.13.6开机时间过长
您好!
这个问题的根因在于 T5AI_BOARD_EYES 板型在 3.13.x 版本中开启 ENABLE_TUYA_UI 后,会初始化双屏显示,从而增加了约 23 秒的开机时序。
根因分析
在 src/miscs/gui/display/tuya_ai_display.c 的 tuya_gui_lcd_driver_init() 函数中:
Code: Select all
#if defined(T5AI_BOARD_EYES) && T5AI_BOARD_EYES == 1
info->exp_type = TUYA_SCREEN_EXPANSION_V_EXP; // 双屏垂直扩展
info->lcd_num = 2; // 2 个屏幕(SPI2 + SPI3)
#else
info->exp_type = TUYA_SCREEN_EXPANSION_NONE;
info->lcd_num = 1;
#endif
tuya_gui_lcd_open() 会对两个屏幕分别调用 tal_display_open(),每次 SPI ST7735S 初始化(reset pulse + 寄存器配置时序)需约 11.5 秒,两路串行初始化合计增加约 23 秒。3.12.25 版本该双屏路径尚未存在,因此开机时间增量不明显。
排查方法
先在 tuya_gui_poweron_page_quick_start() 中加时间戳确认瓶颈:
Code: Select all
PR_NOTICE("lcd_driver_init start: %d ms", tal_system_get_millisecond());
rt = tuya_gui_lcd_driver_init((VOID *)&info);
PR_NOTICE("lcd_driver_init end: %d ms", tal_system_get_millisecond());
rt = tuya_gui_lcd_open((VOID *)&info);
PR_NOTICE("lcd_open end: %d ms", tal_system_get_millisecond());
优化方法(三选一)
将第二路屏幕的 tal_display_open() 改为在独立线程中执行,主屏初始化完成后无需等待从屏即可点亮背光播报语音,从屏后台继续初始化,可节省约 11.5 秒。
缩短 LCD 复位脉冲时间:在 ST7735S 驱动中找到 reset 低电平保持时间(通常 10100 ms),ST7735S datasheet 要求最短 10 us,可将其缩短至 15 ms,两屏共节省约 20200 ms。
如果 3.12.25 版本开机时间可以接受,可暂时锁版本,等官方 SDK 优化该双屏串行初始化路径后再升级。
如有进一步问题欢迎继续讨论!