Part Number: AM2434
Hi,
i am developing an EtherCAT slave application using the Full TI Stack on the Sitara AM2434 with AM243x INDUSTRIAL COMMUNICATIONS SDK 11.00.00.
I am currently running the EtherCAT slave stack on the ICSSG PRU (as provided in the Industrial Communications SDK examples). The initialization of the stack and firmware loading works as expected and the slave operates correctly in the EtherCAT network.
However, I am facing an issue regarding the controlled shutdown and restart of the EtherCAT slave:
Use Case
I need to:
- Properly stop/deactivate the running EtherCAT slave
- Deinitialize all related resources (PRU, drivers, stack, memory, etc.)
- Subsequently reinitialize and restart the EtherCAT stack again within the same application runtime
-> The goal is to enable runtime restart capability without rebooting the system
Problem Description
- The initial startup works fine
- However, after attempting to:
- stop the EtherCAT stack
- deinitialize ICSSG/PRU and stack components a clean reinitialization is not reliably possible
- It seems that not all resources are fully reset, or some internal state persists (possibly in the PRU firmware, shared memory, or driver layer)
Questions
-
Is there an official or recommended sequence for:
- stopping the EtherCAT slave stack
- unloading or resetting the PRU firmware
- deinitializing ICSSG/driver components
- and performing a clean restart?
-
Are there any specific APIs in the Industrial Communications SDK for:
- EtherCAT stack deinitialization
- PRU/ICSSG reset (beyond basic driver close calls)?
-
Does a proper restart require:
- a full ICSSG subsystem reset, or
- even a device reset, or should this be achievable purely in software?
-
Are there known limitations in the current SDK (11.00.00) regarding multiple init/deinit cycles for EtherCAT?
Any guidance, recommended sequence, or reference example would be highly appreciated.
Best Regards
Andreas