If you're downloading the runtime code And the IDE has a debugger: include an ESN programming code module that can only be accessed in the debugger. Write a "stall" at the end (infinite loop), set the ESN in RAM, put the program counter at the module & run it. About as fast as you can hit break, it'll already be done & stalled.
This adds the time to run the debugger & programming module, so only a low volume method.
I use this to initialize parameters the runtime code copies in from flash in one project. Stuff like current position, initial low & high limit values, etc, that are overwritten on powerdown with the values at powerdown. Works for me...<<<)))