Currently the IPC module defaults to using Hwi 5. How would one go about modifying it?
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.
Currently the IPC module defaults to using Hwi 5. How would one go about modifying it?
Depending on what platform you are on (assuming c6000), You can modify it in you *.cfg file by doing something like the following:
var NotifySetup = xdc.useModule('ti.sdo.ipc.family.c647x.NotifySetup');
NotifySetup.dspIntVectId = x; // x must be an interrupt vector between 4-15
Judah
That did it! Many thanks Judah!
Looking forward though we plan to have separate applications running on separate cores and for proprietary reasons we plan to use different IPC interrupts on each IPC using core.
Would this mean that we'll need a different IPC/Notify build for each core? Or is there a way to use a single shared binary and at run time inform the IPC/Notify module which interrupt to use?
As Judah implied, please tell us which device you are using and which type of core you are specifically asking about. Also, the SYS/BIOS version may be helpful and whether you are using the MCSDK.
The Wiki app note Using DSP/BIOS on Multi-Core DSP Devices may not directly apply to IPC and your device, but it discusses some of the issues and tradeoffs with using a shared binary image.
Regards,
RandyP
It is common to use the same interrupt vector. After the HWI_dispatcher is commonly an IPC dispatcher that routes each IPC code to a different function. The IPC dispatcher could also check the register DNUM to determine if the code is running on Core0 or Core1, and then it can call from a different set of function pointers depending on which core is running. The MCSDK / IPC may already contain this functionality, but I do not know.
Regards,
RandyP
The short answer to your question is "Yes". The way the IPC interrupt is currently setup, you would need to build a different binary for each for. Specifying the different Interrupt for the different core in your *.cfg file.
The long answer is...If you write your own NotifySetup module, then you can check at runtime. This would allow you to create a single binary. Your NotifySetup module could be almost like the one located at ti/sdo/ipc/family/c647x/NotifySetup except it would use DNUM to check which core its running on at runtime and use the appropriate interrupt vector id.
Judah