ULINK: RESET BEHAVIOUR ON PHILIPS LPC2000 DEVICES
Information in this article applies to:
When I use the RESET command during ULINK debugging in the µVision Debugger, the LPC2000 peripherals are not set to the RESET state defined in the data sheet. And, it appears that the Debugger starts executing the user application.
How can I perform a true device RESET?
Yes. The µVision RESET button is a true device RESET (using the Chip Reset pin on the JTAG connector). However, the ARM Embedded ICE typically does not allow stopping immediately after a RESET (only some devices support such a feature).
On the Philips ARM devices, a JTAG halt command must be issued to stop program execution after a RESET. ULINK attempts to issue this command to stop the device immediately after RESET, but due to the serial nature and the high execution speed of the LPC2000 devices, it is likely that the startup code is already executed and peripherals are initialized.
In any case, ULINK sets the program counter back to zero (in the RESET case). In this way, you may track the initialization code, but some of that initialization code may already be executed.
There are the following solutions to this problem:
When testing programs in RAM (by modifing the PC), the device may still execute existing code in the on-chip Flash ROM. Therefore it is important that you erase the Flash or program an endless loop into the on-chip Flash ROM.
The following Discussion Forum threads may provide information related to this topic.
Last Reviewed: Thursday, September 18, 2008