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.