Background Debug Module (S12SBDMV1)
Table 5-5. Firmware Commands
Opcode
(hex)
Command(1)
Data
Description
READ_NEXT(2)
READ_PC
READ_D
62
63
64
65
66
67
42
16-bit data out Increment X index register by 2 (X = X + 2), then read word X points to.
16-bit data out Read program counter.
16-bit data out Read D accumulator.
READ_X
16-bit data out Read X index register.
READ_Y
16-bit data out Read Y index register.
READ_SP
WRITE_NEXT
16-bit data out Read stack pointer.
16-bit data in Increment X index register by 2 (X = X + 2), then write word to location
pointed to by X.
WRITE_PC
WRITE_D
WRITE_X
WRITE_Y
WRITE_SP
GO
43
44
45
46
47
08
16-bit data in Write program counter.
16-bit data in Write D accumulator.
16-bit data in Write X index register.
16-bit data in Write Y index register.
16-bit data in Write stack pointer.
none
none
none
none
Go to user program. If enabled, ACK will occur when leaving active
background mode.
GO_UNTIL(3)
TRACE1
0C
10
18
Go to user program. If enabled, ACK will occur upon returning to active
background mode.
Execute one user instruction then return to active BDM. If enabled,
ACK will occur upon returning to active background mode.
TAGGO -> GO
(Previous enable tagging and go to user program.)
This command will be deprecated and should not be used anymore.
Opcode will be executed as a GO command.
1. If enabled, ACK will occur when data is ready for transmission for all BDM READ commands and will occur after the write is
complete for all BDM WRITE commands.
2. When the firmware command READ_NEXT or WRITE_NEXT is used to access the BDM address space the BDM resources
are accessed rather than user code. Writing BDM firmware is not possible.
3. System stop disables the ACK function and ignored commands will not have an ACK-pulse (e.g., CPU in stop or wait mode).
The GO_UNTIL command will not get an Acknowledge if CPU executes the wait or stop instruction before the “UNTIL”
condition (BDM active again) is reached (see Section 5.4.7, “Serial Interface Hardware Handshake Protocol” last note).
5.4.5
BDM Command Structure
Hardware and firmware BDM commands start with an 8-bit opcode followed by a 16-bit address and/or a
16-bit data word, depending on the command. All the read commands return 16 bits of data despite the
byte or word implication in the command name.
8-bit reads return 16-bits of data, only one byte of which contains valid data.
If reading an even address, the valid data will appear in the MSB. If reading
an odd address, the valid data will appear in the LSB.
16-bit misaligned reads and writes are generally not allowed. If attempted
by BDM hardware command, the BDM ignores the least significant bit of
the address and assumes an even address from the remaining bits.
S12P-Family Reference Manual, Rev. 1.13
Freescale Semiconductor
141