TCC8900 調試(四) --LCD

 TCC8900 BSP V2.0 跟V1.91的LCD 驅動有些變化,致使我碰到了一個問題:不加後視LCD顯示正常,加上後視LCD顯示不正常?

對於這個問題我曾一度以爲是後視的原因造成的,後面經過我仔細查看代碼,發現原來我犯了個錯誤了,引起這個問題的根源在LCD初始化上面,

LCD的初始化一般是在BOOTLOAD裏面完成的,TCC8900 V1.91裏面是通過BOOT\LCD.H裏面的如下配置實現的。

static lcd_cfg_t lcd_cfg[3] = {

////// W  H  DIV  VPW  VBP  VFP  HPW  HBP  HFP  PWDX FREQ//

// [TCCXXXX_LCD_4.8WVGA&24B_SV0.1]
 { 800, 480, 3,  3,  5,  5,  3,  13,  8,  0xC, 60 },

// [CLAA104XA01CW 10"4 Color TFT LCD (LVDS)]
 { 1024, 768, 1,  1,  1,  36,  1,  1,  318, 0xC, 60 },

// [HT121WX2-103 12"1 Color TFT LCD (LVDS)]
 { 1280, 800, 1,  1,  3,  20,  1,  10,  150, 0xC, 60 },
};

但BSP V2.0裏面因爲後視被加到驅動裏面了,是通過Magellan.bat中的宏開關:set REAR_CAM_VIQE=1或0來實現開啓與關閉後視功能。

當set REAR_CAM_VIQE=0時表示關閉後視。

IF not "%REAR_CAM_VIQE%" == "1" goto NORMAL_ENV_SETTINGS
@ECHO ENTER REAR_CAM_VIQE_ENV
set LCD_NEWDRIVER=1
set BSP_CAMERA_MODULE=1
set BSP_VIDEO_DECODER=1
set P2_SDMMC_SLOT=0
set P5_SDMMC_SLOT=1
goto END_REAR_CAM_ENVSETTING

這段不被執行,宏TCA_LINK沒有被定義,LCD初始化還是按V1.91來方式來實現。

當set REAR_CAM_VIQE=1時表示開啓後視。

IF not "%REAR_CAM_VIQE%" == "1" goto NORMAL_ENV_SETTINGS
@ECHO ENTER REAR_CAM_VIQE_ENV
set LCD_NEWDRIVER=1
set BSP_CAMERA_MODULE=1
set BSP_VIDEO_DECODER=1
set P2_SDMMC_SLOT=0
set P5_SDMMC_SLOT=1
goto END_REAR_CAM_ENVSETTING

上面這段代碼被使用。

set LCD_NEWDRIVER=1 被設置

我們可以通過查看BOOT與DISP裏面的SOURCE文件。可以看出TCA_LINK.宏被定義了。再接合BOOT\LCD.C--》init_disp()

{

.....

LMODE.LCDCTRL = LCDCTRL[dispdev];
  LMODE.LCDCTIMING = lcd_timing[dispdev];

  tca_lcdc_initialization(ARG_LCDCGUICTRL, dispdev,&LMODE, ARG_LCDCGUICH, DISP_WIDTH, DISP_HEIGHT, DISP_MEM_PHYBASE, imgfmt);
  lcd_disp_on(dispdev);

.....

}

可以看出初始化是調用tcc_lcdc_bl.lib裏面的函數,由\magellan\Src\LIB\SOC\LCDC編譯面來。

lcd 初始配置是由下面這個表實現(TCA_LCDC.H)

static stLTIMING    lcd_timing[4] = {

//hpw lpc hfp hbp vdb vdf ,vpw flc vfp vhp
//    {3,800,8,13,0,0,3,480,5,5,3,480,5,5 },
{  2, 800, 13, 8,0,0,2, 480,  4,4,2, 480,  4,4 },  

  {  1,1024, 168, 1,0,0,1, 768,318,1,1, 768,318,5 },
    { 43,1919,148,88,0,0,4,1079, 35,3,4,1079, 35,3 },
    {211, 720, 32,32,0,0,5, 486, 27,4,5, 485, 28,3 },

};

當然在DISP驅動裏面也做了一些修改。

1、將放到gpBOOTARGS裏面的一些顯示參數,放到了註冊表裏面。
2、切換圖層、圖層基地址設置、圖層大小設置等功能實現,都是調用\tcc_lcdc_bl.lib裏面的函數。

暫時瞭解了這些。謝謝!

歡迎你加入:149818111  一起學習TCC8900.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章