Just a friendly update.
It is possible to write a bootloader with ethercat that handles all the update functionality in the bootloader alone, without having any application dependencies.
There is only one EEPROM location in flash, but a few changes to some of the files generated by DAVE can fix this, making the bootloader stick with it's original EEPROM content i.e. completely ignoring the EEPROM information in flash.
This removes the option of the master writing to the EEPROM when in the bootloader, but I have yet to find a reason why you would want to change this in something as static as a bootloader.
Going from bootloader to application can cause some headaches, depending on implementation.
I'm not going the advocate for any solution, but having a button or switch on the pcb for controlling if the bootloader should just start the application or stay active and receive an update over EtherCAT is probably the simplest solution.
It is possible to write a bootloader with ethercat that handles all the update functionality in the bootloader alone, without having any application dependencies.
There is only one EEPROM location in flash, but a few changes to some of the files generated by DAVE can fix this, making the bootloader stick with it's original EEPROM content i.e. completely ignoring the EEPROM information in flash.
This removes the option of the master writing to the EEPROM when in the bootloader, but I have yet to find a reason why you would want to change this in something as static as a bootloader.
Going from bootloader to application can cause some headaches, depending on implementation.
I'm not going the advocate for any solution, but having a button or switch on the pcb for controlling if the bootloader should just start the application or stay active and receive an update over EtherCAT is probably the simplest solution.