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

Difference between ITM and ETM and why we go for ETM

Recently, I came to know about ETM(Embedded Trace Macrocell). This is to trace instruction of program to know the bugs.
The same can be achieved by ITM(Instrumentation Trace Macrocell) by using printf() statement.We can know the bugs by using ITM also. This is not using any controller ports.

Then what is the importance of ETM? Can anyone tell? I couldn't understand it. Debuggers with ETM are higher in cost. What's the purpose of that?

Parents
  • Without ETM your debugger will never see any instruction trace other than when using the simulator. And the simulator can't simulate a full chip and may not know to add additional clock cycles when the processor core stalls on some I/O or waiting for instructions from the flash.

    With other options you may get some background reads of memory content but then you need breakpoints and single-stepping to see what the processor is doing.

Reply
  • Without ETM your debugger will never see any instruction trace other than when using the simulator. And the simulator can't simulate a full chip and may not know to add additional clock cycles when the processor core stalls on some I/O or waiting for instructions from the flash.

    With other options you may get some background reads of memory content but then you need breakpoints and single-stepping to see what the processor is doing.

Children
No data