TI E2E Community
Digital Signal Processors (DSP)
C6000 Multicore DSP
Keystone Multicore Forum (C66, 66A, AM5)
How Inter-Processor Interrput works?
In the document "INTC for KeyStone Devices UG", it says that when set the IPCG of IPCGRx, the corex's interrupt works.(Am i right ?). In this document, it also introduces IPCGR and INCAR (registers), SRCS and SRCC(bits). I don't know if i want to use Inter-Processor Interrupt, what pre-work and post-work should be done. Can anybody give detail information? Thank you!
IPC is used for interrupt communication between core to core within DSP and can also be used to communicate with external host.
You can find some more information in the IPC section of CSL document as the follows file:
You can see how those registers are being affected in the descriptions of each function.
The usage of IPC interrupt is similar as the other interrupt generation. We have to enable CorePac INTC to accept the interrupt first and clear pending status after triggering.
I also attached one simple example that Core0 and Core1 generate IPC interrupts to each other. You can load the same output file to both of the cores and execute the two cores simultaneously (need to make sure the CorePac INTC has been setup completely in two cores before they trigger the interrupts, you can add more delay in the source code ).
Hope those information helps.
Please click the Verify Answer button on this post if it answers your question.
I have tried to run the example you've provided without success.
The problem is that the interrupts are never fired, which means it halts on the first while loop in the main-function.
I'm running on a C6616 device, but the event id seems to be correct from what I could find in the documentation.
Any idea what I could be missing?
please check this post.
I also attached a project that triggers an IPC from core 0 to core 1. There's synchronization in the code that makes sure everything is set up properly before the IPC interrupt is being triggered. You can load the same .out file to core 0 and 1 ...
This was targeted for the C6678 but should work for C6670 as well ...
one and zero
You can also follow me on Twitter: http://twitter.com/oneandzeroTI
Do you want to read interesting multicore articles? Check out our Multicore Mix
one and zero,
That example worked, thank you.
The part that was missing in the example in this thread was that the bootcfg wasn't unlocked, when I added that to the first example, that too worked as expected.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.