大家好
我使用link api编写了一个小程序,创建了3个Link,其中1个是Host A8上的,另外2个Link 位于DSP,目前Host上的Link可以创建成功,但DSP上的Link create之后,无任何反应,直接停在调用的位置,不知是何原因?
下面是主要代码
IpcBitsOutLinkHLOS_CreateParams ipcBitsOutHostPrm;
UInt32 ipcBitsOutHostId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
UInt32 ipcBitsInDspId = SYSTEM_DSP_LINK_ID_IPC_IN_0;
ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink = ipcBitsInDspId;
ipcBitsOutHostPrm.baseCreateParams.notifyNextLink = FALSE;
ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcBitsOutHostPrm.baseCreateParams.noNotifyMode = TRUE;
ipcBitsOutHostPrm.baseCreateParams.numOutQue = 1;
ipcBitsOutHostPrm.inQueInfo.numCh = 1;
OSA_printf("in dsp test 2\n");
IpcBitsInLinkRTOS_CreateParams ipcBitsInDspPrm;
UInt32 helloWorldDspId = SYSTEM_LINK_ID_HELLOWORLD_0;
ipcBitsInDspPrm.baseCreateParams.inQueParams.prevLinkId = ipcBitsOutHostId;
ipcBitsInDspPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcBitsInDspPrm.baseCreateParams.outQueParams[0].nextLink = helloWorldDspId;
ipcBitsInDspPrm.baseCreateParams.noNotifyMode = TRUE;
ipcBitsInDspPrm.baseCreateParams.notifyNextLink = TRUE;
ipcBitsInDspPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcBitsInDspPrm.baseCreateParams.numOutQue = 1;
HelloWorldLink_CreateParams helloPrm;
helloPrm.inQueParams.prevLinkId = ipcBitsOutHostId;
helloPrm.inQueParams.prevLinkQueId = 0;
helloPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;
OSA_printf("in dsp test 3 ipcBitsOutHostId %x\n", ipcBitsOutHostId);
System_linkCreate(ipcBitsOutHostId, &ipcBitsOutHostPrm, sizeof(ipcBitsOutHostPrm)); //可以执行成功
OSA_printf("in dsp test 4\n");
System_linkCreate(ipcBitsInDspId, &ipcBitsInDspPrm, sizeof(ipcBitsInDspPrm)); //程序执行到这,无任何反应
OSA_printf("in dsp test 5\n");
System_linkCreate(helloWorldDspId, &helloPrm, sizeof(helloPrm));