>>Hello and welcome to this Video-Tutorial
>>my name is Ralf Kopsch - I am Senior Support Engineer for Keil Microcontroller Software Development Tools
>>Let me give you a brief overview of the Cortex-M Trace functionality
>>an outstanding feature of ARM Cortex-M based microcontrollers and the Keil MDK-ARM toolset
>>The limits of Run-Stop Debugging are apparent when testing time-critical control applications
>>like motor control or communication stacks
>>Single-stepping or breakpoints change the dynamic behavior
>>Frequently software problems can only be detected in the active or running system
>>Trace lets you analyze the running system
>>ARM Cortex M processors integrate the CoreSight Debug & Trace Logic
>>that offers the following features
>>The Breakpoint Unit allows run-stop debugging with up to 8 breakpoints
>>Memory Access allows monitoring of variables buffers and peripherals
>>while application code is running at full speed.
>>Data Watchpoints trace memory accesses with data value and program address
>>Optional program execution can be stopped
>>Exception- and Instrumented Trace communicate important program events via debug channels
>>Instruction Trace streams the complete program execution for recording and analysis
>>The various Trace types can be selectively enabled and contain timing information
>>Let me exemplify the usage of these trace features in the uVision Debugger
>>The Logic Analyzer uses Data Watchpoints and provides a graphical display of variable changes
>>You may choose up to 4 variables and select different display
>>modes to show state changes or an analogue signal
>>Data Watchpoints allow also Trace Recording of memory accesses
>>ITM Trace communicates for example details about interrupt execution
>>It shows how often interrupts are executed
>>and provides information about minimum and maximum execution time of the interrupt function.
>>ITM Trace displays also RTOS thread execution over time in the Event Viewer
>>and may be used with code instrumentation
>>It even enables a printf-style debug output
>>The Performance Analyzer uses Instruction Trace
>>While your application is running you can identify performance bottlenecks
>>and time-consuming hotspots in order to optimize the algorithms
>> Instruction Trace enables also Code Coverage to fulfill certification requirements
>> and In-depth analysis of the execution history to identify sporadic executions errors
>> In this application example most of the time is spend in the getkey() function polling a status bit
>>Interrupt driven I/O may be used to eliminate this
>>Lets us explore the various physical connection interfaces to the Trace Unit
>>Evaluation Kits frequently offer two standardized debug connectors in a small 0.05” pitch
>>The 10-pin debug connector allows run-control and serial wire trace output with the SWO pin
>>The 20-pin debug ETM connector is a superset of the 10-pin connector
>>and offers full instruction trace output
>> Almost every Cortex-M3/M4 microcontroller device offers the Serial Wire or SWO trace output
>>SWO delivers data watchpoints,exception and instrumented trace
>>However, SWO does not allow instruction trace
>>Many Cortex-M3/M4 microcontrollers have an additional 5-pin trace port interface
>>that delivers the full instruction trace stream
>>Trace information can be selectively enabled to adjust the type of information that interests you
>> With Trace Port you can have the full range of trace information
>>that includes data watchpoints, exceptions, instrumented and instruction trace
>>Some Cortex-M3/M4 microcontrollers provide an ETB or the Embedded Trace Buffer
>>ETB streams the trace information in an on-chip RAM
>>that can be read via the normal run-control interface.
>>In this mode, no additional trace pins are required
>>but the amount of trace information is limited by the on-chip RAM
>>Therefore it is important that your debugger offers triggering of trace information based on program conditions
>>Even the smallest ARM processor, the Cortex-M0+
>> offers trace via the MTB or the Micro Trace Buffer
>>Besides run-control debugging the Cortex-M0+ provides instruction trace that is streamed to an on-chip RAM
>>This solution is a good compromise for small-form factor devices that have pin-limitations
>>since MTB trace can be read even via the 2-pin SWD debug interface
>>Now let’s take a look to ARM’s debug adapter and development tools
>>A full-featured trace solution requires the following components
>>MDK-ARM that includes uVision the integrated development environment
>>with a Debugger and various trace analysis features
>>ULINKpro which connects to your target hardware
>>and streams the complete trace information to your development workstation
>>ULINKpro connects via 10-pin or 20-pin debug connectors to the target hardware
>>Remember that only the 20-pin Debug/ETM connector provides the full instruction trace stream
>>The ULINKpro is the ARM Debug and Trace adapter that is specifically designed for Cortex-M microcontrollers.
>>It offers connectivity to all Cortex-M microcontrollers and supports all trace variants
>>Full instruction trace with ULINKpro’s streaming trace technology
>>that records the complete program execution and overcomes trace buffer limitations
>>It is required for non-intrusive program analysis
>>and provides full code coverage and performance analysis without compromises
>>The ULINKpro debug and trace adapter is used with the Keil MDK-ARM® microcontroller development kit
>>Please refer to keil.com for detailed information about the usage of this powerful trace solution
>>Thank you for your attention!
>>In case of further questions please contact our Sales- and Support team