User guide
Debug
ARM DDI 0337I Copyright © 2005-2008, 2010 ARM Limited. All rights reserved. 7-9
ID072410 Non-Confidential
7.3 About the Flash Patch and Breakpoint Unit (FPB)
The FPB:
• implements hardware breakpoints
• patches code and data from Code space to System space.
A full FPB unit contains:
• Two literal comparators for matching against literal loads from Code space, and
remapping to a corresponding area in System space.
• Six instruction comparators for matching against instruction fetches from Code space, and
remapping to a corresponding area in System space. Alternatively, you can configure the
comparators individually to return a Breakpoint Instruction (
BKPT
) to the processor core
on a match, to provide hardware breakpoint capability.
A reduced FPB unit contains:
• Two instruction comparators. You can configure each comparator individually to return a
Breakpoint Instruction to the processor on a match, to provide hardware breakpoint
capability.
7.3.1 FPB functional description
The FPB contains both a global enable and individual enables for the eight comparators. If the
comparison for an entry matches, the address is either:
• remapped to the address set in the remap register plus an offset corresponding to the
comparator that matched
• remapped to a
BKPT
instruction if that feature is enabled.
The comparison happens dynamically, but the result of the comparison occurs too late to stop
the original instruction fetch or literal load taking place from the Code space. The processor
ignores this transaction however, and only the remapped transaction is used.
If an MPU is present, the MPU lookups are performed for the original address, not the remapped
address.
You can remove the FPB if no debug is required, or you can reduce the number of breakpoints
it supports to two. If the FPB supports only two breakpoints then only comparators 0 and 1 are
used, and the FPB does not support flash patching.
Note
• Unaligned literal accesses are not remapped. The original access to the DCode bus takes
place in this case.
• Load exclusive accesses can be remapped. However, it is Unpredictable whether they are
performed as exclusive accesses or not.
• Setting the flash patch remap location to a bit-band alias is not supported and results in
Unpredictable behavior.