Other Parts Discussed in Thread: OMAPL138, OMAP-L138, TMS320C6748
Hi Experts,
I have some issues with the shared memory between the ARM-DSP subsystems (Omap L138 ).
Psuedo code of my problem.
---------------------------------------
ARM side
-------------------------
#define ARM_UPDATED_MEM (volatile int *)0x80000040
void armTsk (void)
{
*ARM_UPDATED_MEM = 0x1;
interruptDsp();
}
------------------------
DSP Subsystem
---------------------------
void DspISR (void)
{
if( *ARM_UPDATED_MEM == 1)
LOG_printf("&trace, "Arm has signalled mem updation\n")
}
After the Arm has updated the shared memory it signals an interrupt to the DSP and in the DSP ISR it checks the status of the updated memory by reading the same memory location updated by the ARM. Though the arm has updated the memory, when Dsp reads the memory inside the ISR, it doesn not match with 0x1 ie it does not get updated. But from the memory dump on the dsp side, it shows that the value is 1.
I think this could be due to some cache issue, I dont know how to solve this problem, Can any one kindly guide me on how to flush the cache which i feel is the actual problem.
Thanks in advance.
gs.