I built the OMAP-L138 StarterWare 1.10.03.03 ipc_interrupt project under CCS v5.1, and ran it on an OMAP-L138 embedded in a custom board. The ARM wouldn't respond to the initial interrupt from the DSP, so the project didn't work.
However, I can get it to work by adding one line of IPC polling code to the ARM code's wait_event():
void wait_event(void)
{
int i = 0;
// ADDED THIS LINE:
iAssert (Notify_waitEvent(IPC_DSP0, IPC_DSP0_INTLINE));
while (!evtRcvd)
i++;
evtRcvd = 0;
}
The DSP part of the project doesn't need any such change to receive and respond to interrupts from the ARM. So, what's going on here? Does the ARM not respond to the interrupt line the project uses? That won't matter for the application I'm working on, but I wondered.