This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049C: Comparison of TI debug features with ARM ETM?

Part Number: TMS320F280049C


My customer asked the following:

What are the main differences between the Embedded Tracing Module (ETM) in ARM devices and the Embedded Real-Time Analysis and Diagnostics (ERAD) implemented in F28004x devices?

Do we have any comparison doc or similar?

Regards,
Frank

  • I’m not familiar with arm etm. I will research that a bit first. I can however answer any question you have on ERAD.

  • Do you have any specific questions about ERAD?

  • I studied a bit and the ETM module and ERAD are quite different. The ARM debug ETM, has different features such as:

    • tracing of 16-bit and 32-bit Thumb instructions

    • four EmbeddedICE watchpoint inputs

    • a Trace Start/Stop block with EmbeddedICE inputs

    • two external inputs

    • a 24-byte FIFO queue.

    While our ERAD module, has some similar and some very different features:

    The EBC unit has the following capabilities:


    • Generate hardware breakpoints
    • Generate hardware watch points
    • Generate trace tags for instruction fetch matches and generate RTOSINT
    • Monitor data read address buses, data write address buses, data write data bus, and generate
    RTOSINT
    • Generate an event output which can be used by other modules. This is done through monitoring any of
    the program address buses, Virtual Program Counter (VPC), or the Program Counter of the CPU

    The following features are not supported by the EBC units:


    • Chain breakpoints
    • Ability to monitor DMA transfers
    • Ability to monitor CLA buses

    The SEC units provide better system profiling, analysis, and debug capability. The SEC units contain
    counters which can enhance the debug and profiling process in various types of system scenarios such
    as:


    • Profiling code segments
    • Counting duration between specified memory reads and writes
    • Counting system events (such as interrupts)
    • Counting duration between system events
    • System timer
    • Measuring the number of wait states in code segments
    • Measuring the maximum amount of time spent in between a pair of events, measured over multiple
    iterations
    • Chaining counters in order to link events or create larger counters