ZHCAEZ2 February 2025 AM62P
从 POR 到显示画面出现的时间约为 180ms。该测量是通过使用一个默认处于低电平状态的 GPIO 引脚进行的。该引脚通过 CSL_dssVpSetGoBit() 函数使用 gpio_set_high() API 设置为高电平。OSPI NOR 被用作测试时的引导介质。
dss_display 共享示例。对该示例进行了修改,以实现通过 SBL 流程演示的无闪烁切换。
图 5-5 SysConfig 设置dss_display_share.c 中定义 API,将 GPIO 引脚设置为高电平,如下所示:void gpio_set_high(void *args) {
uint32_t gpioBaseAddr, pinNum;
DebugP_log("GPIO LED started ...\r\n");
/* Get address after translation translate */
gpioBaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(GPIO_LED_BASE_ADDR); pinNum = GPIO_LED_PIN;
GPIO_setDirMode(gpioBaseAddr, pinNum, GPIO_LED_DIR);
GPIO_pinWriteHigh(gpioBaseAddr, pinNum);
DebugP_log("GPIO LED HIGH!!\r\n");
}CSL_dssVpSetGoBit() 中的 API,如下所示:diff --git a/source/drivers/dss/v0/hw_include/V3/csl_dssVideoPort.c b/source/drivers/dss/v0/hw_include/V3/csl_dssVideoPort.c
index f882d54..ee18b95 100755
--- a/source/drivers/dss/v0/hw_include/V3/csl_dssVideoPort.c
+++ b/source/drivers/dss/v0/hw_include/V3/csl_dssVideoPort.c
@@ -183,6 +183,8 @@ void CSL_dssVpEnable(CSL_dss_vpRegs *vpRegs, uint32_t enable)
CSL_REG32_WR(&vpRegs->CONTROL, regVal);
}
+extern void gpio_set_high(void *args);
+
void CSL_dssVpSetGoBit(CSL_dss_vpRegs *vpRegs)
{
uint32_t regVal;
@@ -192,6 +194,7 @@ void CSL_dssVpSetGoBit(CSL_dss_vpRegs *vpRegs)
DSS_VP1_CONTROL_GOBIT,
CSL_DSS_VP1_CONTROL_GOBIT_VAL_UFPSR);
CSL_REG32_WR(&vpRegs->CONTROL, regVal);
+ gpio_set_high(NULL);
}
void CSL_dssVpSetLcdTdmConfig(CSL_dss_vpRegs *vpRegs,