Keil Logo

Technical Support

On-Line Manuals

µVision User's Guide

About µVision User Interface Creating Applications Debugging Using the Debugger Simulation Start Debugging Application Program Execution Debug Windows and Dialogs Breakpoints Window Call Stack and Locals Window Code Coverage Command Window Component Viewer Disassembly Window Event Recorder Filter Component Levels Setup Event Recorder Event Viewer Execution Profiler Instruction Trace Window System Analyzer Restrictions Logic Analyzer Setup Setup in Detail Restrictions Cortex-M Trace Configuration Memory Map Memory Window Performance Analyzer Registers Window Serial Window Symbols Window System Viewer Adding System Viewer Windows System and Thread Viewer Thread States Toolbox Trace Data Window Trace Navigation Watch Window Core Peripherals Cortex-M0 and Cortex-M0+ Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports (Cortex-M0+ only) Cortex-M3, Cortex-M4, and Cortex-M7 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Cortex-M23 and Cortex-M33 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Security Attribution Unit Expressions Constants System Variables Peripheral Variables I/O Ports Serial Ports Program Variables (Symbols) Fully Qualified Symbols Non-Qualified Symbols Literal Symbols Using Symbols Line Numbers Bit Addresses Type Specifications Operators Differences between µVision and C Expression Examples Code and Data Trace (Cortex-M) Trace Features Tracepoint Expressions Tracepoint Intrinsics Tracepoint Limitations Configuring the Trace Hardware Tracepoint Marks Tips and Tricks Review Peripherals and CPU Configuration Simulate I/O Ports Simulate Interrupts and Clock Inputs Simulate external I/O Devices Assign Serial I/O to a PC COM Port Check Illegal Memory Access Command Input from File Preset I/O Ports or Memory Contents Write Debug Output to a File Keyboard Shortcuts TPIU Initialization after RESET (Cortex-M) Prevent Opening Files Show Japanese Messages Code Coverage Export MTB Trace Import for Code Coverage Debug Commands Debug Functions Simulation Flash Programming Dialogs Utilities Command Line Example Programs Appendix

Tracepoint Limitations

Hardware Limitations

Defining Tracepoints

  • Tracepoints are supported by Cortex-M3 and Cortex-M4 processor based devices that get debugged with ULINKpro.
  • For Cortex-M3 prior to revision r2p0, all tracepoints defined for a data memory are triggered on read and write accesses. A distinction between the two access types is not possible.
  • The commands TraceRun, TraceSuspend, and TraceHalt require the Embedded Trace Macrocell (ETM). The ETM is an optional CoreSight component integrated by the vendor.
  • The maximum number of Tracepoints is the same as the number of DWT comparators. A common Cortex-M device comes with four DWT comparators, hence supporting four tracepoints.
    • Exactly one enabled tracepoint can perform a data match. This is because of a Cortex-M3/M4 DWT coming with exactly one DWT comparator with value matcher.
    • Either one complex or two simple "Halt" tracepoints are allowed to be enabled at a time. This is the maximum number of DWT comparators that can be connected to the corresponding logic in the ETM.
  • DWT resources are shared with other debugging features. As a consequence, each of the below features reduces the amount of enabled tracepoints and vice versa:
    • Memory Access Breakpoints: Each enabled Memory Access Breakpoint uses one DWT comparator.
    • A Memory Access Breakpoint that matches for equality uses two DWT comparators, of which one has a value matcher. Thus, a tracepoint that uses the value matching feature cannot be set or enabled.
    • Logic Analyzer Signals: Each defined Logic Analyzer signal uses one DWT comparator.
  • The memory range needs to match the DWT range mask constraints. To overcome this limitation, tracepoint commands adjust the memory range automatically to fit this scheme. Define a memory range as narrow as possible.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.