Hello,
I'm try using VICP in a codec run on the DSP using DM6446EVM.
I made initialization for thr VICP correctly without any problems, my problem is that after calling CPIS_start (because i'm using async mode) the application hanged and it never return after calling CPIS_start
This is my code trying to using the color space conversion function:
intSetup(CPIS_isr);
intEnable();
vicpInit.cacheWbInv = (Cache_wbInv) cacheWb;
vicpInit.staticDmaAlloc= 1;
vicpInit.maxNumProcFunc= 1;
vicpInit.memSize= CPIS_getMemSize(vicpInit.maxNumProcFunc);
vicpInit.mem= memAlloc(vicpInit.memSize);
CPIS_init(&vicpInit);
/* Initialize the call back function that the library will use to synchronize */
CPIS_setWaitCB(&CPIS_wait_Fxn, NULL);
#ifdef _DEBUG_VICP
IP_RUN_setDebugCB(&debugCB, &test);
#endif
for (i=0;i<9;i++)
Cparams.matrix[i] = (Int16)(rgb2yuvf[i]*32765.0);
Cparams.qShift= 15;
for (i=0;i<3;i++) {
Cparams.preOffset[i]= preOfst0[i];
Cparams.postOffset[i]= postOfst0[i];
Cparams.signedInput[i]= signedInput0[i];
Cparams.signedOutput[i]=signedOutput2[i];
}
Cparams.colorDsMode = CPIS_DS_NONE;
Cbase.srcFormat[0] = CPIS_RGB_P;
Cbase.srcBuf[0].ptr= (Uint8*)RPlane;
Cbase.srcBuf[1].ptr= (Uint8*)GPlane;
Cbase.srcBuf[2].ptr= (Uint8*)BPlane;
Cbase.srcBuf[0].stride= WIDTH; //720
Cbase.srcBuf[1].stride= WIDTH;
Cbase.srcBuf[2].stride= WIDTH;
Cbase.dstFormat[0] = CPIS_YUV_444P;
Cbase.dstBuf[0].ptr= (Uint8*)luma;
Cbase.dstBuf[0].stride= WIDTH;
Cbase.dstBuf[1].ptr= Cb;
Cbase.dstBuf[1].stride= WIDTH;
Cbase.dstBuf[2].ptr= Cr;
Cbase.dstBuf[2].stride= WIDTH;
Cbase.roiSize.width= WIDTH;
Cbase.roiSize.height= HEIGHT; //480
Cbase.procBlockSize.width= BLOCK_WIDTH; /16
Cbase.procBlockSize.height= BLOCK_HEIGHT;//16
for(i=0;i<345600;i++){
luma[i] = 0;Cb[i] = 0;Cr[i] = 0;}
/* Clear the cache */
cacheWbInvAll ();
/*
Call the module in asynchronous mode. This means only setup of
hardware is done. Execution will have to be triggered by CPIS_start
i = CPIS_colorSpcConv( // i checked it doesent return errors (doesn't return -1)
&Chandle,
&Cbase,
&Cparams,
CPIS_ASYNC
);
CPIS_start(Chandle); <<<<<< stuck here
CPIS_wait(Chandle);
CPIS_delete(Chandle);
CPIS_deInit();
intDisable();
Please help me
Regards