MSP432 Training Series - TI Training

MSP432™ MCUs Training
Part 14: Serial Wire Output Trace
1
What is Serial Wire Output (SWO) Trace?
• A set of debugging tools based on ARM hardware components
that allow users to trace the flow of data from a big picture
perspective
• Not related to EnergyTrace+
– Both use the PC for data
– Share the same COM port
2
ARM CoreSight Components
3
MSP432 Cortex-M4F Components
4
Data Watchpoint and Trace Unit (DWT)
• Contains 3 configurable comparators:
– Hardware watchpoint
– PC sampler event trigger
– Data address sampler event trigger
• Counters including:
–
–
–
–
–
Clock cycles (CYCCNT)
Folded instructions
Load Store Unit (LSU)
Sleep cycles
Interrupt overhead
5
Instrumentation Trace Macrocell (ITM)
• Generates packets of information
• Sends packets to Serial Wire Output (SWO)
• DWT creates the hardware-based packets
– Watchpoints for variables
– PC sampler event trigger
– Clock cycle counter
• Software packets generated by user via code
– Creates packets when data is sent to ITM ports
– ITM library can be used to send data to ports
6
IDE Implementations
Feature
Keil uVision
IAR Embedded
Workbench
Texas Instruments
Code Composer
Studio
Required
Hardware
Keil ULINK2, Keil
ULINKpro, or Segger
J-Link
Segger J-Link,
Segger J-Trace, or
IAR i-Jet
XDS110 (LaunchPad)
or XDS200
•
•
•
•
• Statistical Function
Profiling
• Data Variable Trace
• Interrupt Profiling
• Custom Core Trace
Trace
• Code Coverage
Functions • Performance
Analyzer
• Execution Profiler
• Logic Analyzer
PC sampling
Interrupt logs
Data log events
ITM Stimulus Ports
7
CCS Usecases
• Statistical Function Profiling
– Periodically checks PC
– PC determines which function
• Data Variable Tracing
– Tracks reads/writes to memory location
• Interrupt Profiling
– Interrupts noticed by DWT
– Logged and outputted by ITM
• Custom Core Trace
– Tracks writes to ITM ports
– Can be configured with additional triggers
8
CCS Usecases
• Statistical Function Profiling
– Shows functions called and frequency of each
– Which functions are more crucial
• Data Variable Tracing
– Big picture view of changes to a variable over time
• Interrupt Profiling
– Understand priorities and preempting of interrupts
– Observe when interrupts were entered and exited
• Custom Core Trace
– Similar to printf style debugging, so more user control
– Allows use of more than one of the other usecases at the same time
9
Out of Box Experience Demo
10
Out of Box Experience Demo
11
Out of Box Experience Demo
12
Out of Box Experience Demo
13
Statistical Function Profiling
• Leave the default configuration
• Start the program
• Let the red LED blink 10 times
• Suspend the program
14
Data Variable Trace
• Set the variable address to “&taps”
• Start the program
• Push SW1 as many times as you want
• Suspend the program
15
Interrupt Profiling
• No configuration necessary
• Start the program
• Let the red LED blink 10 times
• Suspend the program
16
Interrupt Profiling
• No configuration necessary
• Start the program
• Toggle switches randomly and quickly
• Suspend the program
17
Custom Core Trace
• Include the ITM library
• Insert the following code
18
Custom Core Trace
• No configuration necessary
• Start the program
• Wait a few seconds
• Suspend the program
19
Configuring Custom Core Trace
• Custom Core Trace  Advanced Settings
• Create new triggers
• Use hardware counters
and triggers to make
events happen
20
Configuring Custom Core Trace
• Replicate the three defined usecases with these trigger settings
• Allows user to use multiple defined usecases at the same time
• Can trace multiple variables at the same time
21
Summary
• SWO Trace allows you to maximize use of MSP432 hardware components
• Provides users with a big-picture view of software
• Easy to use with LaunchPad; no additional hardware required
• CCS offers:
– Three easy to use defined usecases
– Custom Core Trace for advanced configuration
• References:
– TI Application Note: http://www.ti.com/lit/pdf/slaa674
– ARM Application Note: http://www.keil.com/uvision/db_anl.asp
– IAR Application Note:
http://supp.iar.com/FilesPublic/UPDINFO/005405/arm/doc/EWARM_UserGuide_Add
On1.ENU.pdf
22