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.