System Debug
11-30
Copyright © 2005-2008 ARM Limited. All rights reserved.
ARM DDI 0337G
Non-Confidential
Unrestricted Access
11.6
ITM
The ITM is a an optional application driven trace source that supports printf style
debugging to trace
Operating System
(OS) and application events, and emits diagnostic
system information. The ITM emits trace information as packets. There are three
sources that can generate packets. If multiple sources generate packets at the same time,
the ITM arbitrates the order in which packets are output. The three sources in decreasing
order of priority are:
•
Software trace. Software can write directly to ITM stimulus registers. This emits
packets.
•
Hardware trace. The DWT generates these packets, and the ITM emits them.
•
Time stamping. Timestamps are emitted relative to packets. The ITM contains a
21-bit counter to generate the timestamp. The Cortex-M3 clock or the bitclock
rate of the
Serial Wire Viewer
(SWV) output clocks the counter.
11.6.1
Summary and description of the ITM registers
Note
TRCENA of the Debug Exception and Monitor Control Register must be enabled
before you program or use the ITM, see
Debug Exception and Monitor Control Register
on page 10-8.
Table 11-19 lists the ITM registers.
Note
You can configure any of the ITM registers to be present or not present. Any register
that is configured as not present reads as zero.
Table 11-19 ITM register summary
Name
Type
Address
Reset value
Description
Stimulus Ports 0-31
Read/write
0xE0000000
-
0xE000007C
-
See
ITM Stimulus Ports 0-31
on page 11-32
Trace Enable
Read/write
0xE0000E00
0x00000000
See
ITM Trace Enable Register
on
page 11-32
Trace Privilege
Read/write
0xE0000E40
0x00000000
See
ITM Trace Privilege Register
on
page 11-33