在編譯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定義及申名。