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: IPC example issue with DSP

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS

Hi,

My customer is using the following example, but actually it did not work properly.

ipc_3_47_00_00/examples/DRA7XX_linux_elf/ex02_message/dsp1

As per from our customer, it seems like the the following lines had to be commented out from ipc_3_47_00_00/examples/DRA7XX_linux_elf/ex02_message/dsp1/Dsp1.cfg to work correctly.

 var Idle = xdc.useModule('ti.sysbios.knl.Idle');            

 var Deh = xdc.useModle('ti.deh.Deh');        

 Idle.addFunc('&ti_deh_Deh_idleBegin');       

 

I just looked at the code about Deh and to me, I seemed the code was not actually taken account for DSP1. For example, please take a look at the following code:

Void Watchdog_idleBegin(Void)
{
    Int core = 0;

#ifdef SMP
    core = Core_getId();

    if (core != 0) {
        Watchdog_stop(core);
    }
    else
#endif
    {
        Watchdog_kick(core);
    }
}


/*
 *  ======== Watchdog_kick ========
 *  Refresh/restart the watchdog timer
 */
Void Watchdog_kick(Int core)
{
    volatile Watchdog_TimerRegs *timer = Watchdog_module->device[core].baseAddr;

    if ((Watchdog_module->status[core] == Watchdog_Mode_ENABLED) && timer) {
        while (timer->twps & WATCHDOG_TIMER_TWPS_W_PEND_TGRR);
        timer->ttgr = 0;
    }
}

I think SMP definition is not applicable to AM572x, so the above "core" variable might be always 0. And I`m wondering if this might be the root cause. Can you comment on this ?

Best Regards,
NK