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.

Invalid Multiproc Id

I'm using EZSDK on the C6A8168 DDR3 EVM and I get the following error after building my code with -O2, but not with -O3:

ti.sdo.ipc.ipc: line 99: assertion failure: A_invalidMultiProcId: Invalid MultiProc Id

I  have MultiProc setup as is done in the Syslink samples:

var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
MultiProc.setConfig("DSP", ["DSP", "VIDEO-M3", "VPSS-M3", "HOST"]);

Syslink 2.00.03.82

IPC.1.23.03.31

Lee

 

  • Lee,

    We'll see if we can reproduce the problem here.  Just to be clear, you are seeing this issue only with your own app?  Have you also tried to reproduce it in your environment using the stock examples?

    Dave

  • David Friedland said:
    Just to be clear, you are seeing this issue only with your own app?  Have you also tried to reproduce it in your environment using the stock examples?

    Yes, I'm seeing this error in my code.  I haven't tried the examples in many months, they were working fine.

    Lee

     

  • Lee,

    How are you calling Ipc_attach() in your code?  The line of code in Ipc.c where the assertion is firing is this:

        Assert_isTrue(remoteProcId < ti_sdo_utils_MultiProc_numProcessors,
                ti_sdo_utils_MultiProc_A_invalidMultiProcId);

    It is in the Ipc_attach() function.  The ti_sdo_utiils_MultiProc_numProcessors variable is autogenerated,  You can find it buried under the package/cfg/ directory in a .c file. For example, the syslink dsp side of the MessageQ example built for ti816x, you would find it in this file (under syslink/samples/rtos/messageQ:

        package/cfg/ti_syslink_samples_rtos_platforms_ti816x_dsp/debug/messageq_ti81xx_dsp_pe674.c

    If you look in this file, you should see something like this:

    /* numProcessors__C */
    __FAR__ const CT__ti_sdo_utils_MultiProc_numProcessors ti_sdo_utils_MultiProc_numProcessors__C = (xdc_UInt16)0x4;

    Could you please verify that?

    Best regards,

        Janet

  • janet said:
    How are you calling Ipc_attach() in your code? 

     do {
            status = Ipc_attach(hostId);
      } while (status < 0);
       

    I found the problem.  I was setting hostId via a global in the .cfg file and had this after the ipc attach, not before, explaining why the code worked with -O3 optimization, but not -O2.

    Lee