I wanted to write a bootloader for the LPC2141 whilst running USB communications which are required during the write in my application. To do this, I ignored the suggestions about disabling interrupts during an IAP write, thinking that it will be ok as the area of code my USB interface is running in will not be overwritten during the procedure.
Normally I would agree that storing the interrupt service routines and associated code in ram and running them there during the write would be the safe thing to do, but I believe the whole USB stack would have to be moved, around 7kB of it, and there is only 4kB of available RAM.
After erasing one page of flash within the application section of memory without interrupts disabled, I am now unable to program the flash at all using uVision3. The download just times out.
I accept that the steps I took were careless, but any helpful suggestions as to how I can program the application space of an LPC214x device whilst operating the large USB stack, or even how to recover my lpc2141 from its inability to program at all will be greatly appreciated.
Thankyou.