問題描述:
在除錯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
;
問題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 @@ static
intrk_mipi_screen_init_dt
(struct mipi_screen *screen)
struct list_head *pos;
struct property *prop;
enum of_gpio_flags flags;
- u32 value, i, debug, gpio, ret, cmds[25]
, length;
+ u32 value, i, debug, gpio, ret, cmds[cmd_len]
, length;
memset
(screen,0,
sizeof
(*screen));
@@ -
612,7+
616,
7 @@ export_symbol
(rk_mipi_get_dsi_clk)
;static
intrk_mipi_screen_init_dt
(struct mipi_screen *screen)
#endif
#ifdef config_lcd_mipi
cmds =
kmalloc
(0x400
, gfp_kernel);if
(!cmds)
#endif
list_for_each
(screen_pos,
&screen->cmdlist_head)
//printf("\n"); //傳送一行後分割
mipi_screen_dbg
("dcs_cmd.name:%s\n"
,dcs_cmd->dcs_cmd.name);if
(dcs_cmd->dcs_cmd.type == lpdt)..
....
}}
最後想到應該也是一些陣列溢位訪問的問題,果然發現結構體mipi_dcs_cmd_ctr_list中的成員變數申請的陣列個數是32個,這樣說明為何每次都是第33個開始出錯了。最後修改如下:
index f4d77a0.
.089a672 100755
--- a/u-boot/drivers/video/transmitter/mipi_dsi.h
+++ b/u-boot/drivers/video/transmitter/mipi_dsi.h
@@ -
255,12+
255,
17 @@ struct mipi_dsi_screen
;
rk3128 如何讀取 flash id
2019 06 14 關鍵字 mmc 唯一id flash 唯一識別碼 在 android 的系統中,預設是會將 flash 的唯一識別碼對映到檔案系統中的。它的預設路徑為 sys bus mmc devices 在這個路徑下通常你的板子上有多少塊儲存晶元,就會有多少個檔案。例如,筆者的開發板中它的...
rk3128網路機頂盒一些測試結果
1 rk3128的開機速度是23s。由於是裡面預裝了一大批軟體,很多是沒有必要的。最終版本的rom,我有把握做到18s。3 rk3128加入我們自己的機頂盒介面系統,反應速度效果不錯。我們的介面系統,呼叫rk3128的一些系統介面,基本上2天對接好。其介面比較規範好找。我們做的rom,優化了非常多的...
rk3128 lcd 驅動除錯記錄
最近剛除錯了基於rk3128平台的lcd驅動,順便記錄總結一下,有不足之處,望各位不吝賜教!1.架構 drivers video rockchip transmitter rk32 mipi dsi.c mipi 驅動主體檔案 rk32 mipi dsi.h 暫存器以及結構體的定義 mipi dsi...