hi everyone,
I'm integrating openem into my own project.But now all cores stuck at the line below in ti_em_dispatch_once:
#ifndef TI_EM_DIST_SW_SCHED /* Normal behavior : the scheduler is centralized either on a PDSP or on a DSP core */
{
// We pop event from head of the PF Queue to get a PF Event or an AP Event
lvEventDscPtr = (volatile Cppi_HostDesc*) (*(uint32_t *)(Emti_gvDcb.pfQueueRegDPtr));
if (lvEventDscPtr == NULL)
return (em_status_t) EM_ERR_NOT_FOUND;
}
the lvEventDscPtr is NULL all the time which means cores failed to get an event from the queue. I already checked that events are successfully sent to queues since em_send returns EM_OK. But I'm not sure whether it is because the event is not transmitted to the receive queue or its the pdsp is off working so an arrived event doesn't trigger an interrupt to a core.
I check the Emti_gvDcb in Expression window once running my project and once running Example_0 demo.
below is what shows when running the demo which should be the correct situation:
But when I running my own project, the pecb part is all 0x00000000.
I wonder what could be the possible operations that make pecb all zero ?
How can I correct it and make sure cores can get a popped event ?
Thank you.