
Functional Description and Application Information
S12S Debug (S12SDBGV1) Module
MM912F634
Freescale Semiconductor
242
4.31.4.7.2
Breakpoints Generated Via the TRIG Bit
If a TRIG triggers occur, the Final State is entered whereby tracing trigger alignment is defined by the TALIGN bit. If a tracing
session is selected by the TSOURCE bit, breakpoints are requested when the tracing session has completed, thus if Begin
aligned triggering is selected, the breakpoint is requested only on completion of the subsequent trace (see
Table 317). If no
tracing session is selected, breakpoints are requested immediately. TRIG breakpoints are possible even if the DBG module is
disarmed.
4.31.4.7.3
Breakpoint Priorities
If a TRIG trigger occurs after Begin aligned tracing has already started, then the TRIG no longer has an effect. When the
associated tracing session is complete, the breakpoint occurs. Similarly if a TRIG is followed by a subsequent comparator
channel match, it has no effect, since tracing has already started.
If a forced SWI breakpoint coincides with a BGND in user code with BDM enabled, then the BDM is activated by the BGND and
the breakpoint to SWI is suppressed.
4.31.4.7.3.1
DBG Breakpoint Priorities and BDM Interfacing
NOTE
When program control returns from a tagged breakpoint using an RTI or BDM GO command
without program counter modification, it will return to the instruction whose tag generated
the breakpoint. To avoid a repeated breakpoint at the same location, reconfigure the DBG
module in the SWI routine, if configured for an SWI breakpoint, or over the BDM interface,
by executing a TRACE command before the GO to increment the program flow past the
tagged instruction.
Breakpoint operation is dependent on the state of the BDM module. If the BDM module is active, the CPU is executing out of
BDM firmware, thus comparator matches and associated breakpoints are disabled. In addition, while executing a BDM TRACE
command, tagging into BDM is disabled. If BDM is not active, the breakpoint will give priority to BDM requests over SWI requests,
if the breakpoint happens to coincide with a SWI instruction in user code. On returning from BDM, the SWI from user code gets
executed.
BDM cannot be entered from a breakpoint unless the ENABLE bit is set in the BDM. If entry to BDM via a BGND instruction is
attempted and the ENABLE bit in the BDM is cleared, the CPU actually executes the BDM firmware code, checks the ENABLE,
and returns if ENABLE is not set. If not serviced by the monitor, then the breakpoint is re-asserted when the BDM returns to
normal CPU flow.
If the comparator register contents coincide with the SWI/BDM vector address, then an SWI in user code and DBG breakpoint
could occur simultaneously. The CPU ensures that BDM requests have a higher priority than SWI requests. Returning from the
BDM/SWI service routine, care must be taken to avoid a repeated breakpoint at the same address.
Should a tagged or forced breakpoint coincide with a BGND in user code, then the instruction that follows the BGND instruction
is the first instruction executed when normal program execution resumes.
Table 318. Breakpoint Mapping Summary
DBGBRK
BDM Bit (DBGC1[4])
BDM Enabled
BDM Active
Breakpoint Mapping
0
X
No Breakpoint
1
0
X
0
Breakpoint to SWI
X
1
No Breakpoint
1
0
X
Breakpoint to SWI
1
0
Breakpoint to BDM