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.

ipc notify example unstable

Other Parts Discussed in Thread: SYSBIOS

hello everybody,

i am trying to learn IPC communication, when i try to run the example of notify single image for evm6474, i get weird behavior.

Sometimes the program run smoothly without problems, other times the program is blocked and no notifications are exchanged. And sometimes the core0 sends a notification to core1 and no other notifications are sent.

To run the program i load the program on three cores of a dsp, i hit ctrl and choose the three cores then i hit run.

i am using ipc1_21_02_23 with SYS/BIOS6_30_02_42 and CCS4.2.0.10018

is there any known bugs for theses versions, or what could be the problem?

regards

  • Mohammed,

    Could you describe in more details the steps you took in CCS?  Did you reset in-between runs?  I just tried this over and over with the pre-built executables on the evm6474 and it always passes for me.  I tried resetting sometimes and not-resetting others and it didn't make a difference for me.

    Judah

  • thanks judahvang for your reply,

    i did a complete update to my working environement and now i am working with the latest IPC 1_22_05_27, the program (the one provided by the old IPC) runs now without problems. however i guess there is a mistake in the multicore notify example provided by the new IPC (1_22_05_27) in the configuration script in the line 79:

    BIOS.heapSize = 0x8000;

    the compilation generates this error:    

    Severity and Description                                                                               Path   Resource                               Location                              Creation Time         Id
    XDC runtime error: ti.sysbios.BIOS: no element named 'heapSize'    lol    notify_multicore.cfg    ti.sysbios.BIOS:heapSize    1303210635234    1068

    i think the line must be :  Program.heap = 0x8000        unless the coder wanted to do something else.

    After setting the line 79, the program runs correctly  :-)

    i hope this helps.

    regards

     

  • oh! i have another question:

    i want to adapt the notify example to run only on 2 cores, i modified the lines concerning Notify_registerEvent() and Notify_sendEvent(). But i am pretty sure it isn't enough, since the synchronisation must involve only two cores. what further config i have to do?

    regards

  • BIOS.heapSize is a new parameter in BIOS 6.31.   You must still be using BIOS 6.30 which doesn't have that parameter.   If things are working, great.  But, you should eventually migrate to BIOS 6.31.04 and XDC 3.20.08.88.

  • Mohammed,

    If you really want only two core in your system, then you should constrained the nameList in the .cfg file to two cores:

    var nameList = ["CORE0", "CORE1"];

    If you want 3 cores in your system but only 2 talking to each other, then you need to remove the line in the .cfg file that does a synchronization of all cores:

    Ipc.procSync = Ipc.ProcSync_ALL;

    Furthermore, you would need to call Ipc_attach(remoteProcId), to explicitly attach to another core.

    Judah