> My question is how do I make one bin file that can be booted from either slot? I guess what I mean is position independent code. Or is this unrealistic goal and I should just deliver two update images with SP and PC for both image addresses?
I never tried that, and neither heard of any commercial implementation.
I would avoid such an endeavor on an MCU without MMU, I'm not even sure if the toolchains support it all the way through.
You could use a fallback image instead, in case the new version (or the Flash update) fails. Or more than one image versions, all linked to the same start address.