在编译TI usecase时可通过,但是通过sd卡启动时串口会报错误,程序运行也会卡死导致黑屏,错误信息如下:
[A15_0] Assertion @ Line: 231 in ipcOutLink_drv.c: pObj->createArgs.inQueParams.prevLinkQueId < pObj->prevLinkInfo.numQue : failed !!!
这是因为队列指针数量超过了定义的num,此时需要去对应的位置修改相应变量。
问题出在A5内核上,经排查发现是定义使用4个EVES,但未在代码中修改入栈指针数量。
解决方案:
找到ALG_tidlpreproc函数定义的位置
tidlODInit(pObj);
/* YUV420SP to planar RGB conversion */
pUcObj->Alg_tidlpreprocPrm.outPad = TIDL_MAX_PAD_SIZE;
pUcObj->Alg_tidlpreprocPrm.numOutputQueues = NUM_PIPELINES;
pUcObj->Alg_tidlpreprocPrm.procMode = TIDLPREPROC_LINK_PROCMODE_Y2R;
将宏NUM_PIPELINES 改为4即可!
此外还应注意EVE的定义也会导致问题的发生,在更改EVE核数量时应及时更改EVE定义及申名。