This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

GateMP_open failed with -5 when using hyperlink for evm6678

I am developing software for C6678 platform and now using two evm6678 modules linked by a hyperlink cable. The core0 is used for hyperlink setup, it also creates GateMP objects, which will be opened by the other cores. My hyperlink setup code closely follows that of the MCSDK with added interrupt support. When only core0 is is in the play everything is fine. I can DMA data from one DSP to the other and generate interrupt from one DSP to the other. When the other cores come into the play I find that they cannot open the GateMP created by core0. The function call GateMP_open() returns -5, which means that it cannot find the named GateMP object. Here I need to mention that GateMP_open() call is in a loop together with Tas_sleep(1). The loop's break condition is that the call's return value is greater or equal to zero.

I have narrowed the code that starts making this problem happens, and it is the following block of code in hyplnkExampleSysSetup() of hyplnkLLDIF.c:

   CSL_BootCfgUnlockKicker();

   CSL_BootCfgSetVUSRConfigPLL (hyplnk_EXAMPLE_VUSR_PLL);

   while (((*(volatile unsigned int *)0x2620160) & 1) == 0);

   CSL_BootCfgLockKicker();

 

Could any one tell me why it behaves like this and/or help me to resolve the problem? Thank you.

 

Dongning