![](http://datasheet.mmic.net.cn/90000/MC68330FC16_datasheet_3506366/MC68330FC16_189.png)
MOTOROLA
MC68330 USER'S MANUAL
5- 85
5.7.2.3 ENTERING BDM. When the processor detects a breakpoint or a double bus fault,
or decodes a BGND instruction, it suspends instruction execution and asserts the
FREEZE output. FREEZE assertion is the first indication that the processor has entered
BDM. Once FREEZE has been asserted, the CPU enables the serial communication
hardware and awaits a command.
The CPU writes a unique value indicating the source of BDM transition into temporary
register A (ATEMP) as part of the process of entering BDM. A user can poll ATEMP and
determine the source (see Table 5-22) by issuing a read system register command
(RSREG). ATEMP is used in most debugger commands for temporary storage — it is
imperative that the RSREG command be the first command issued after transition into
BDM.
Table 5-22. Polling the BDM Entry Source
Source
ATEMP [31:16]
ATEMP [15:0]
Double Bus Fault
SSW*
$FFFF
BGND Instruction
$0000
$0001
Hardware Breakpoint
$0000
*SSW is described in detail in 5.6.3 Fault Recovery.
A double bus fault during initial SP/PC fetch sequence is distinguished by a value of
$FFFFFFFF in the current instruction PC. At no other time will the processor write an odd
value into this register.
5.7.2.4 COMMAND EXECUTION. Figure 5-30 summarizes BDM command execution.
Commands consist of one 16-bit operation word and can include one or more 16-bit
extension words. Each incoming word is read as it is assembled by the serial interface.
The microcode routine corresponding to a command is executed as soon as the command
is complete. Result operands are loaded into the output shift register to be shifted out as
the next command is read. This process is repeated for each command until the CPU
returns to normal operating mode.
5.7.2.5 BACKGROUND MODE REGISTERS. BDM processing uses three special-
purpose registers to track program context during development. A description of each
register follows.
5.7.2.5.1 Fault Address Register (FAR). The FAR contains the address of the faulting
bus cycle immediately following a bus or address error. This address remains available
until overwritten by a subsequent bus cycle. Following a double bus fault, the FAR
contains the address of the last bus cycle. The address of the first fault (if one occurred) is
not visible to the user.
5.7.2.5.2 Return Program Counter (RPC). The RPC points to the location where fetching
will commence after transition from background mode to normal mode. This register
should be accessed to change the flow of a program under development. Changing the
RPC to an odd value will cause an address error when normal mode prefetching begins.
5.7.2.5.3 Current Instruction Program Counter (PCC). The PCC holds a pointer to the
first word of the last instruction executed prior to transition into background mode. Due to
instruction pipelining, the instruction pointed to may not be the instruction which caused
the transition. An example is a breakpoint on a released write. The bus cycle may overlap