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.