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.

Am3359 - Ethercat protocol

Other Parts Discussed in Thread: SYSBIOS

I am experiencing the sample application ecat_appl located in \am335x_sysbios_ind_sdk_1.0.0.6\sdk\protocols\ethercat_slave\   In tiescappl.c there is the handling of the interrupt coming from Ethercat master:

 Void PDItask(UArg arg1, UArg arg2)
{
    Task_sleep(10*OS_TICKS_IN_MILLI_SEC);
#if AL_EVENT_ENABLED
    while(1)
    {
        PRUSSDRVPruWaitEvent(HOST_AL_EVENT);
        /* ISR processing */
        HW_EcatIsr();
    }
#endif
}

It seems to me that the interrupt from PRU is polled, so I kindly ask if someone knows the way to handle the interrupt in a faster and more deterministic way, accessing directly a HWI. Thans in advance Lamberto.

 

  • Lamberto,

    no, this is interrupt based. Have a look at the source for the WaitEvent here and the TI ESC layer. We are using a semaphore.

    However you may use the PRU interrupt driver with a more direct call to an ISR if needed. Different stacks may use implement different methods.This is only an example using the Beckhoff SSC with a minimal amount of changes.

    Regards.