PQIII Debugger | 13
©
1989-2021 Lauterbach GmbH
Breakpoints on Program Addresses
The debugger sets software and on-chip breakpoints to the effective address. If a breakpoint is set on a
program address, the debugger will first try to set a software breakpoint. If writing the software breakpoint
fails (translation error or bus error), then an on-chip breakpoint will be set instead. If a memory range must
not be written by the debugger, it can be declared for on-chip breakpoint usage using MAP.BOnchip.
Alternatively, it is also possible to force a single breakpoint to on-chip using the command Break.Set with
option /Onchip:
Two on-chip program address breakpoints can be combined to an address range:
Breakpoints can be configured to stop if the break event occurred a given number of times.
Breakpoints on Data Addresses
Data address breakpoints cause a debug event when a certain address or address range is read or written
by the core. A data address breakpoint to a single address has a granularity of 1 byte.
Equal to program address breakpoints, data address breakpoints can be configured to stop if the break
event occurred a given number of times:
Data address breakpoint limitations:
Map.BOnchip 0xFFFC0000--0xFFFFFFFF ;use on-chip breakpoints in FLASH
Break.Set 0xFFFFF064 ;debugger sets on-chip breakpoint
Break.Set my_func1 ;debugger sets on-chip or sw breakp.
Break.Set my_func1 /Onchip ;debugger sets on-chip breakpoint
Break.Set 0x00000000--0x00002000 /Onchip
Break.Set IVOR0_Handler--IVOR15_Handler /Onchip
;stop on the 20th call of function foo
Break.Set foo /Onchip /COUNT 20.
Break.Set 0xC3F80004 /Read ;break when core reads from 0xC3F80004
Break.Set 0xC3F80004 /Write ;break when core writes to 0xC3F80004
Break.Set 0xC3F80004 /ReadWrite ;break on read or write access
Break.Set 0xC3F80000--0xC3F80023 /Write ;break address range
Var.Break.Set counter /Write ;break on variable write access
;stop on the 8th write to arrayindex
Break.Set arrayindex /Write /COUNT 20.