Hello,
I'm using Concerto M3 with TI-RTOS, C28X without OS.
I want M3 to comunicate with C28X,
so I use raw IPC register in this way for M3
uint32 Ipc_Generic(uint32 command, uint16 address, uint32 value)
{
Semaphore_pend(Ipc_Semaphore, BIOS_WAIT_FOREVER);//lock
// write COMMAND, ADDRESS, VALUE
HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCCOM)= (uint32)command;
HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCADDR)= (uint32)address;
HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCDATAW)= (uint32)value;
//read RESULT
uint32 result = Ipc_GetResult();
Semaphore_post(Ipc_Semaphore);//unlock
return(result);
}
I use a Semaphore beacause more task calls this routine.
In particular I have a task that comunicate with PC via UART (and read some value from C28X)
and a task that save data to uSD from C28X. I call them TASK1 and TASK2.
When TASK2 calls Ipc_Generic TASK1 begins to doesn't work.
can someone help me ?