Tool/software:
Hi,
i am developing an EtherCAT slave application using the Full TI Stack on the Sitara AM2434.
I need to use DC-Clocks to synchronize the application with the master and other slaves for cycle times down to 250µs.
In every cycle I need to get the latest incoming packet, do some processing, and prepare the output packet.
In my understanding, i can put this logic into the ApplicationRun-Function, which will be called in every cycle when the Sync0 triggers.
This should be independent of the EtherCAT-Loop-Task, which in DC-Mode only handles the non-time critical acyclic communication (SDO-Access etc.)
Therefore I thought i can setup some other FreeRTOS Tasks for some other low-prio stuff like terminal etc.
However, i now stumbled over this thread:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/511290/configuring-ethercat-distributed-clocks-using-hwi-instead-of-tasks-on-am335x
Do i understand this correctly, in the TI Full Stack, there is some background task which busy-waits on the Sync0-Event? And another which waits on the PDI-Event?
I had expected that the Sync0-Event triggers an interrupt, which either directly handles the processing, or unblocks a task to do so.
Or has this changed since then / for the new AM243X?
If this is actually busy-wait in some background task, which will be swapped in and out regularly by the scheduler, then it is expected to show large non-deterministic jitter on the event reaction time.
I would appreciate some clarification on this topic!
Best Regards
Stefan Schlee