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.

66AK2H12: IPC Concept

Part Number: 66AK2H12

Hi

I am thinking to use IPC or Global flag for multicore programming, TI recommends that the user should use IPC, IPC consumes some memory, and need to work with LLD,

But the global flag uses memoryless than IPC and doesn't need to work with LLD.

Please, explain for me why IPC is better than the global flag and TI recommend using IPC?

Best Regards

  • Hi, Dariush,

    Are you trying to communicate between DSP cores or between ARM and DSP cores? What OS's will be running on ARM and DSP cores?

    Rex

  • Hi, Rex

    I'm trying to communicate between DSP cores, I am working on DSP cores only and I use SYS/BIOS.

    Regards

  • Hi, Darius,

    IPC is provided as an example for reference and is not a must use. You can have different implementation to pass the data between DSP cores. I don't know what you meant global flag using memoryless. Each DSP core runs independently. So, if this global flag is what I think it is and a software variable, then I don't know how one DSP core knows the other's flag. A global flag is only local to that core.

    I'll see if the DSP IPC expert has any more to add to this.

    Rex

  • Hi

    For example, Core 0 wants to send data to core 1, the programmer declares a software flag in MSMC RAM, Core 1 poll on this flag until cre0 sets the software flag value to 1, next core 1 notify that data from core 0 is available in the predefined memory.

    When the program uses IPC, the programmer must reserve some memory for IPC in the *.cfg file.

    Best Regards

  • Hi, Darius,

    If data is small enough to fit in MSMC and not performance sensitive, it may work. Using either interrupt or polling, that's overall system design and developer's decision. IPC bundles buffer management, queuing, interrupt, etc. in one package to hopefully provide an example for reference and ease of use. If you have better solution, feel free to use the one fit your design.

    Rex