On Monday 19 April 2010, [email protected] wrote:
> (xscale debug hardware only supports hardware breakpoints on a single
> address).

That's not what the XScale Core Developer's Manual says:


When DBR1 is programmed as a data address mask, it is used in conjunction with 
the address in
DBR0. The bits set in DBR1 are ignored by the processor when comparing the 
address of a
memory access with the address in DBR0. Using DBR1 as a data address mask 
allows a range of
addresses to generate a data breakpoint. When DBR1 is selected as a data 
address mask, it is
unaffected by the E1 field of DBCON. The mask is used only when DBR0 is enabled.
When DBR1 is programmed as a second data address breakpoint, it functions 
independently of
DBR0. In this case, the DBCON.E1 controls DBR1.
A data breakpoint is triggered if the memory access matches the access type and 
the address of any
byte within the memory access matches the address in DBRx. For example, LDR 
triggers a
breakpoint if DBCON.E0 is 0b10 or 0b11, and the address of any of the 4 bytes 
accessed by the
load matches the address in DBR0.

Use address masking matches multiple addresses.  Also  on non-XScale HW.


The processor does not trigger data breakpoints for the PLD instruction or any 
CP15, register
7,8,9,or 10 functions. Any other type of memory access can trigger a data 
breakpoint. For data
breakpoint purposes the SWP and SWPB instructions are treated as stores - they 
will not cause a
data breakpoint if the breakpoint is set up to break on loads only and an 
address match occurs.
On unaligned memory accesses, breakpoint address comparison is done on a 
word-aligned address
(aligned down to word boundary).

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to