Chapter 5 Background Debug Controller (S12ZBDCV2)
S12ZVHY/S12ZVHL Family Reference Manual Rev. 1.05
Freescale Semiconductor
177
If the handshake protocol is disabled, the access is always independent of free cycles, whereby BDC has
higher priority than CPU. Since at least 2 bytes (command byte + data byte) are transferred over BKGD
the maximum intrusiveness is only once every few hundred cycles.
After decoding an internal access command, the BDC then awaits the next internal core clock cycle. The
relationship between BDCSI clock and core clock must be considered. If the host retrieves the data
immediately, then the BDCSI clock frequency must not be more than 4 times the core clock frequency, in
order to guarantee that the BDC gains bus access within 16 the BDCSI cycle DLY period following an
access command. If the BDCSI clock frequency is more than 4 times the core clock frequency, then the
host must use a suitable delay time before retrieving data (see
). Furthermore, for stretched read
accesses to external resources via a device expanded bus (if implemented) the potential extra stretch cycles
must be taken into consideration before attempting to obtain read data.
If the access does not succeed before the host starts data retrieval then the NORESP flag is set but the
access is not aborted. The NORESP state can be used by the host to recognize an unexpected access
conflict due to stretched expanded bus accesses. Although the NORESP bit is set when an access does not
succeed before the start of data retrieval, the access may succeed in following bus cycles if the internal
access has already been initiated.
5.4.10
Single Stepping
When a STEP1 command is issued to the BDC in active BDM, the CPU executes a single instruction in
the user code and returns to active BDM. The STEP1 command can be issued repeatedly to step through
the user code one instruction at a time.
If an interrupt is pending when a STEP1 command is issued, the interrupt stacking operation occurs but
no user instruction is executed. In this case the stacking counts as one instruction. The device re-enters
active BDM with the program counter pointing to the first instruction in the interrupt service routine.
When stepping through the user code, the execution of the user code is done step by step but peripherals
are free running. Some peripheral modules include a freeze feature, whereby their clocks are halted when
the device enters active BDM. Timer modules typically include the freeze feature. Serial interface modules
typically do not include the freeze feature. Hence possible timing relations between CPU code execution
and occurrence of events of peripherals no longer exist.
If the handshake protocol is enabled and BDCCIS is set then stepping over the STOP instruction causes
the Long-ACK pulse to be generated and the BDCCSR STOP flag to be set. When stop mode is exited due
to an interrupt the device enters active BDM and the PC points to the start of the corresponding interrupt
service routine. Stepping can be continued.
Stepping over a WAI instruction, the STEP1 command cannot be finished because active BDM cannot be
entered after CPU starts to execute the WAI instruction.
Stepping over the WAI instruction causes the BDCCSR WAIT and NORESP flags to be set and, if the
handshake protocol is enabled, then the Long-ACK pulse is generated. Then the device enters wait mode,
clears the BDMACT bit and awaits an interrupt to leave wait mode. In this time non-intrusive BDC
commands are possible, although the STEP1 has actually not finished. When an interrupt occurs the device
leaves wait mode, enters active BDM and the PC points to the start of the corresponding interrupt service
routine. A further ACK related to stepping over the WAI is not generated.