
Kevin Cuzner writes:
As my final installment for the posts about my LED Wristwatch project I wanted to write about the self-programming bootloader I made for an STM32L052 and describe how it works. So far it has shown itself to be fairly robust and I haven’t had to get out my STLink to reprogram the watch for quite some time.
The main object of this bootloader is to facilitate reprogramming of the device without requiring a external programmer.
More details on Projects & Libraries’ homepage.

I find the choice to default to the bootloader on any reset except power on a highly questionable one. As long as there is some reliable way to invoke the bootloader you generally want the code to keep trying to do whatever it was supposed to – in most cases the uncertainty of it potentially failing again is far outweighed by the guaranteed alternative of a functionally bricked device sitting idly in its bootloader until it gets power cycled.