Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What's the difference between ETM and Debug?

In the ARM core such as cortex-R4, it has ETM and Debug so I want ask What's the difference between ETM and Debug?

CR4_diagram.PNG
  • Thanks very much for your answer!

    And I find the answer here:

    http://www.arm.com/zh/products/system-ip/debug-trace/trace-macrocells-etm/

    When it comes to debug or to optimize an embedded system, embedded developers
    have two main options available to them:

    1. Conventional debug: typically setting breakpoints and/or watch points
      to halt the processing unit and from there use a debug connection to examine or
      modify register or memory and single-step to understand how the program
      works.

      While enabling developers to control the execution and debug their
      code, conventional debug has several disadvantages:

      • Intrusive: debug halters the behavior of the system
      • Requirement to stop the processor, for some applications it may not
        be possible to stop the processor (e.g. hard-disk, automotive, …)
      • Non real-time: cannot be used to debug software operating real-time.
      • No performance visibility: cannot observe software performance.
    2. Real-time trace: when the system is running, trace macrocells collect
      instruction and / or data transfer, compress this information and deliver
      off-chip in real-time or on-chip for post processing.
      Trace is post-merged
      with source code in development workstation for later analysis.