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.

AM5728: Change IPC interrupt in the cfg file

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS

How do I change the interrupt used by IPC on DSP1 when running on AM5728?

I'm migrating from 66AK2G to AM5728. I have an application running under Linux on the ARM processor sending messages to and receiving messages from an application on DSP1 via MessageQ.

On my 66AK2G applications, I used the following statements in the DSP project cfg file to change the IPC interrupt:

var IpcInterrupt = xdc.useModule('ti.sdo.ipc.family.tci663x.Interrupt');

IpcInterrupt.ipcIntr = 8;

Something similar to this does not appear to be available for AM5728, or it's not obvious how to do.

On 66AK2G, I had to change the interrupt because the default used by IPC (interrupt 5) interfered with the interrupts used by the Event Combiner.

On AM5728, it appears I have to do the same because I can get the message queues open on both the Linux/ARM side and SysBios/DSP side, and messages can be sent from the Linux side but they don't seem to be received on the DSP side.

Thanks.

  • So my problem was not with IPC interrupt configuration. It was with MultiProc configuration.

    I had copied over from the previous cfg file for the 66AK2G project the following line:

    var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');

    MultiProc.setConfig("DSP1", ["HOST", "DSP1"]);

    The MultiProc.setConfig line needs to be changed to the following for AM5728:

    MultiProc.setConfig("DSP1", ["HOST", "IPU2", "IPU1", "DSP2", "DSP1"]);

    After making this change and recompiling, I now get reliable communication between the application running under Linux on the ARM processor and the DSP application.

    It looks like the lines related to IPC interrupts are not needed and can be removed for AM5728.

    var IpcInterrupt = xdc.useModule('ti.sdo.ipc.family.tci663x.Interrupt');
    IpcInterrupt.ipcIntr = 8;