请帮忙分析一下:
在DM8148EVM板子上面运行 System_linkStart(displayId); 失败
错误打印:
[m3vpss ] 58230: DISPLAY: Start in progress !!!
[m3vpss ] 58231: Assertion @ Line: 1380 in links_m3vpss/display/displayLink_drv.c: status == FVID2_SOK : failed !!!
status = FVID2_start(pObj->displayHndl, NULL);
程序运行:
Chains_displayCtrlInit(chainsCfg->displayRes); -----> 执行通过
System_linkCreate(displayId, &displayPrm, sizeof(displayPrm)); -----> 执行通过
System_linkStart(displayId); -----> 失败
代码配置:
Void Chains_singleChGrpx(Chains_Ctrl *chainsCfg)
{
CaptureLink_CreateParams capturePrm;
CaptureLink_VipInstParams *pCaptureInstPrm;
CaptureLink_OutParams *pCaptureOutPrm;
DisplayLink_CreateParams displayPrm;
UInt32 captureId;
UInt32 displayId;
CHAINS_INIT_STRUCT(CaptureLink_CreateParams,capturePrm);
CHAINS_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);
captureId = SYSTEM_LINK_ID_CAPTURE;
displayId = SYSTEM_LINK_ID_DISPLAY_0;
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
{pCaptureInstPrm = &capturePrm.vipInst[0];pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP7002_DRV;pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;pCaptureInstPrm->standard = SYSTEM_STD_720P_60;pCaptureInstPrm->numOutput = 1;pCaptureOutPrm = &pCaptureInstPrm->outParams[0];pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;pCaptureOutPrm->scEnable = FALSE;pCaptureOutPrm->scOutWidth = 0;pCaptureOutPrm->scOutHeight = 0;pCaptureOutPrm->outQueId = 0;}
capturePrm.outQueParams[0].nextLink = displayId;
displayPrm.inQueParams[0].prevLinkId = captureId;
displayPrm.inQueParams[0].prevLinkQueId = 0;
displayPrm.displayRes = VSYS_STD_720P_60;
System_linkCreate(captureId, &capturePrm, sizeof(capturePrm));
chainsCfg->displayRes[0] = VSYS_STD_720P_60;
chainsCfg->displayRes[1] = VSYS_STD_720P_60;
chainsCfg->displayRes[2] = VSYS_STD_720P_60;
Chains_displayCtrlInit(chainsCfg->displayRes);
System_linkCreate(displayId, &displayPrm, sizeof(displayPrm));
Chains_memPrintHeapStatus();
{
System_linkStart(displayId);
System_linkStart(captureId);
while(1)
{
ch = Chains_menuRunTime();
if(ch=='0')
break;
if(ch=='p') {
System_linkControl(captureId, CAPTURE_LINK_CMD_PRINT_ADV_STATISTICS, NULL, 0, TRUE);
System_linkControl(displayId, DISPLAY_LINK_CMD_PRINT_STATISTICS, NULL, 0, TRUE);
}
}
System_linkStop(captureId);
System_linkStop(displayId);
}
System_linkDelete(captureId);
System_linkDelete(displayId);
Chains_displayCtrlDeInit();
}
请大家帮忙分析一下,非常的感谢!