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?
I think all pro developerd should go for a real trace solution. I hardly ever use a debugger and instead rely on instrumented code that is permanently inserted.
But sometimes it's possible to get stuck with some lockup where the real-time requirements doesn't allow instrumentation or single-stepping in a debugger. Then it's good to be able to capture instruction traces.
The cost of the ulink pro is low compared to the Lauterbach units that people many times could only afford to rent for a number of days/weeks.
You are likely operating at a whole different level, and a billable day of your time approaches that of the pod. I remember when a real ICE cost as much as a car, and mechanically challenging to mount in the system.
I see it as being particularly useful when a bunch of people with a broken project show up at my door expecting me to fix it yesterday. But they also likely lack any debug/instrumentation strategy.
Debugging skills are highly valuable.
People who always posts their bugs on forums to get help never gets the chance to learn how to analyze code and by just experience and a bit of thinking be able to fingerpoint with a high probability exactly which function or group of code lines that is likely to produce the unwanted result.
It takes skill to write good code. And it takes skill to debug efficiently.
Lots of jokes about a person just walking up and looking at a screen of code and then point at a bug. But in reality, it's not much different from a traditional code review. It doesn't take many seconds to spot code lines that smells and needs further analysis. The biggest problem is if all code looks like a rat nest - there is no easy way to say that the code might possibly work but should be thrown out or seriously rewritten.
In the end, it's all about having a suitable toolbox. Some tools are just mental - experience from past projects, best practices, memorized check lists. Some are helpful software or hardware. In some cases it might just be the skill of how to describe the problem clearly to someone else - formulating the problem is a major part of solving it.
For some problems, many different tools might work well. For some problems, you really want a very specific tool because it's so much better than the alternatives for that specific problem. Ulink Pro is a tool that is seldom needed but can pay itself quickly for some specific problems.
Ok..thanks for everyone...Ulinkpro is good..I also accept...now I am facing another problem with my KEIL IDE.
To see the trace data we have to use INSTRUCTION TRACE WINDOW but it is not available in my KEIL Vesrion.
KEIL version: MDK-PLUS 5.22
Then how can I see the data..Only trace exceptions and event counters are available.
Is there any need to change any configuration or dll file?
If instruction trace window is not showing then there is no use of using ULINKpro.
Please give solution to my problem (if anyone knows)