Thanks everyone for response.
I will go with this solution. Thanks again.
My plan is to create my own program aka. BootLoader which will be only responsible for checking/testing and running newest plugin from SD card.
Each plugin will responsible for downloading new version and will be implementing interface ITestable
Test method gives me opportunity to test new plugin against the hardware.
If test pass then new version will be current, if not then restart and run previous.
I (plugin) need to be sure that everything is working fine. Devices will be distributed across whole country and I will not have the possibility to connect the device locally.
If assembly will be wrong and device hangs then watchdog restarts CPU and loader use previous version.
That’s the plan. I hope it will work in practice.