问题描述:
在调试mipi接口的显示屏的时候出现如下两种情况,
(1)在设备树arch\arm\boot\dts\rk3128-box-rk88.dts中配置在uboot阶段显示logo,会出现程序跑飞。
(2) 在在设备树arch\arm\boot\dts\rk3128-box-rk88.dts中配置在uboot阶段显示logo后,出现显示异常,颜色过度不自然,颜色不纯有色块等,并且通过PQ调试也无法解决。
阶段uboot阶段显示logo设备树配置如下:
&fb {
rockchip,disp-mode = <NO_DUAL>;
rockchip,uboot-logo-on = <1>;
};
问题1解决方案:
针对程序跑飞,最后发现从Log无法提供有用信息,但是通过开关uboot-logo-on发现只有开启uboot-logo-on才会出现该问题。最后通过网上资料查询得知,如果mipi发送的cmds参数太长会导致局部数组溢出导致程序跑飞。最后修改如下:
index 7679e52..368aa1f 100755
--- a/u-boot/drivers/video/screen/lcd_mipi.c
+++ b/u-boot/drivers/video/screen/lcd_mipi.c
@@ -27,6 +27,10 @@
#include "../transmitter/mipi_dsi.h"
#endif
+/*added by liangzhentao*/
+#define CMD_LEN 256
+/*end of adding*/
+
#ifdef CONFIG_RK32_DSI
#define MIPI_SCREEN_DBG(x...) //printf(x)
#elif defined CONFIG_LCD_MIPI
@@ -354,7 +358,7 @@