* Notes:
x = Undefined at reset.
•
MTB_POSITION field descriptions
Field
Description
31–3
POINTER
Trace Packet Address Pointer[28:0]
Because a packet consists of two words, the POINTER field is the address of the first word of a packet.
This field contains bits[31:3] of the RAM address where the next trace packet is written. Therefore, it
points to an unused location and is automatically incremented.
A debug agent can calculate the system memory map address for the current location in the MTB using
the following "generic" equation:
Given mtb_size = 1 << (MTB_MASTER[MASK] + 4),
systemAddress = MT (((MTB_POSITION & 0xFFFF_FFF8) + (mtb_size - (MTB_BASE &
(mtb_size-1)))) & 0x0000_7FF8);
For this device, a simpler expression also applies. See the following pseudo-code:
if ((MTB_POSITION >> 13) == 0x3) systemAddress = (0x1FFF << 16) + (0x1 << 15) + (MTB_POSITION &
0x7FF8); else systemAddress = (0x2000 << 16) + (0x0 << 15) + (MTB_POSITION & 0x7FF8);
NOTE: The size of the RAM is parameterized and the most significant bits of the POINTER field are
RAZ/WI.
For these devices, POSITION[31:15] == POSITION[POINTER[28:12]] are RAZ/WI. Therefore, the active
bits in this field are POSITION[14:3] == POSITION[POINTER[11:0]].
2
WRAP
This field is set to 1 automatically when the POINTER value wraps as determined by the
MTB_MASTER[MASK] field in the MASTER Trace Control Register. A debug agent might use the WRAP
field to determine whether the trace information above and below the pointer address is valid.
Reserved
This field is reserved.
This read-only field is reserved and always has the value 0.
18.3.1.2 MTB Master Register (MTB_MASTER)
The MTB_MASTER register contains the main program trace enable plus other trace
controls. This register can be modified by the explicit programming model writes.
MTB_MASTER[EN] and MTB_MASTER[HALTREQ] fields are also automatically
updated by the MTB hardware.
Before MTB_MASTER[EN] or MTB_MASTER[TSTARTEN] are set to 1, the software
must initialize the MTB_POSITION and MTB_FLOW registers.
If MTB_FLOW[WATERMARK] is used to stop tracing or to halt the processor,
MTB_MASTER[MASK] must still be set to a value that prevents
MTB_POSITION[POINTER] from wrapping before it reaches the
MTB_FLOW[WATERMARK] value.
Chapter 18 Micro Trace Buffer (MTB)
KL02 Sub-Family Reference Manual, Rev. 2.1, July 2013
Freescale Semiconductor, Inc.
231