Content originally posted in LPCWare by amrbekhit on Mon Oct 11 03:45:27 MST 2010
I've just figured out a way that this could be possible. As I understand it, on reset, the bootloader is always run first and the first thing it does is calculate the checksum of all the interrupt vectors at the bottom of memory and compare it to a value held in flash somewhere. If the checksums match, then it knows that there is a valid program and runs it, otherwise, it remains in bootloader mode. So, all my software needs to do is to write an invalid checksum value and reset. That should fool the bootloader into thinking that there is no program and staying there.
Of course, once the checksum has been modified, the chip will always remain in bootloader mode until new firmware is programmed.