On Friday 29 January 2010, Matthew Fletcher wrote:
> >Are you testing on a chip with an ICE that
> >does hardware stepping?
> 
> Its a phillips/NXP LPC2292, it does have EmbeddedICE but im
> not 100% sure in what mode of operation i've got it. 

So it's an ARM7TDMI.  Those don't have the hardware stepping
support.  Your Thumb single stepping is going to be figuring
out where the next instruction (or statement) starts, then
setting a breakpoint there.  Since it's ARM7TDMI it doesn't
have the BKPT instruction; it'll use a hardware breakpoint.

The Thumb single stepping bugfixes I recall were mostly in
that "where will the next instruction's address be?" logic.
(OpenOCD uses a small instruction set "simulator".)

Hardware stepping is a different mechanism than setting a
breakpoint before the next instruction ... the debugger can
actually tell the hardware "run just one instruction!" before
it resumes execution, and that's what the hardware does.

ARM9TDMI has it, as do some ARM9E-S parts (rev 1).  ARMv6-M
and ARMv7-M chips have it.  Higher end parts (ARM11, Cortex-A,
ARM9E-S rev2) seem not to have it; pipeline issues, I'd guess.
Some can set breakpoints on instruction address mismatch, which
acts like hardware single-step except in cases like loop-to-self
instructions or returning from some recursive subroutines.

- Dave
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to