Version 1 ColdFire Debug (CF1_DEBUG)
MCF51CN128 Reference Manual, Rev. 6
Freescale Semiconductor
20-61
010b4: 4e73 rte # pst = 07, 03, 05, 0d
# ddata = 29, 21, 2a, 22
# trg_addr = 2a19 << 1
# trg_addr = 5432
As the PSTs are compressed, the resulting stream of 6-bit hexadecimal entries is loaded into consecutive
locations in the PST trace buffer:
PSTB[*]=
1c, 1c, 05, 0d,
// interrupt exception
2a, 23, 28, 20, // branch target addr = 1074
1a,
// 10 sequential insts
13,
// 3 sequential insts
05, 12,
// taken_ 2 sequential
07, 03, 05, 0d,
// rte, entry into user mode
29, 21, 2a, 22
// branch target addr = 5432
Architectural studies on the compression algorithm determined an appropriate size for the PST trace
buffer. Using a suite of ten MCU benchmarks, a 64-entry PSTB was found to capture an average window
of time of 520 processor cycles with program trace using 2-byte addresses enabled.
20.4.3.4
Processor Status, Debug Data Definition
This section specifies the ColdFire processor and debug module’s generation of the processor status (PST)
and debug data (DDATA) output on an instruction basis. In general, the PST/DDATA output for an
instruction is defined as follows:
PST = 0x01, {PST = 0x0[89B], DDATA = operand}
where the {...} definition is optional operand information defined by the setting of the CSR, and [...]
indicates the presence of one value from the list.
The CSR provides capabilities to display operands based on reference type (read, write, or both). A PST
value {0x08, 0x09, or 0x0B} identifies the size and presence of valid data to follow in the PST trace buffer
(PSTB) {1, 2, or 4 bytes, respectively}. Additionally, CSR[DDC] specifies whether operand data capture
is enabled and what size. Also, for certain change-of-flow instructions, CSR[BTB] provides the capability
to display the target instruction address in the PSTB (2 or 3 bytes) using a PST value of 0x0D or 0x0E,
respectively.
20.4.3.4.1
User Instruction Set
shows the PST/DDATA specification for user-mode instructions. Rn represents any {Dn, An}
register. In this definition, the y suffix generally denotes the source, and x denotes the destination operand.
For a given instruction, the optional operand data is displayed only for those effective addresses
referencing memory. The DD nomenclature refers to the DDATA outputs.
Table 20-27. PST/DDATA Specification for User-Mode Instructions
Instruction
Operand Syntax
PST/DDATA
add.l
<ea>y,Dx
PST = 0x01, {PST = 0x0B, DD = source operand}
add.l
Dy,<ea>x
PST = 0x01, {PST = 0x0B, DD = source}, {PST = 0x0B, DD = destination}
adda.l
<ea>y,Ax
PST = 0x01, {PST = 0x0B, DD = source operand}