Arm core at least the arm 9 has a trace output option if you choose to
bond out the controls. Without that, the bus may not tell you much
about what the processor is doing.
I understand that they attempted to implement a multicore solution, but
I have not seen that implemented to study how it works. The multicore
was for a later core than I was working with at the time I was doing an
ARM debug product, but I had done the intel multi processor and multi
core debuggers, and can see what a pain the breakpoint coordination was
going to be for arm to implement. Their first try had so much skew it
was useless.
Intel has a solution that allows all cpu's to stop in a fashion that
makes the stop useful, which is all I'll say w/o getting in trouble.
The Arm stop as they ship it takes 32 or 33 jtag clocks to take affect,
during which time the other cores would still be running at core speed,
hence the skew.
this is just one of the debugging issues you have. This stop issue
applies if you are debugging other hardware and want to stop a processor
or set of processors at the time of a transgression.
Most bus speeds now are too fast to allow the analog circuitry to
interject the trace probe into the bus and not kill the system.
Again Intel has a solution that addresses that, but I don't know if it
is available outside Intel or how. At ghz speeds it is difficult to do
anything useful with the signals going by with a logic analyzer or with
a circuit which has logic to create breakpoints, and then propagate the
stop signal. And all processors have to have that logic, and coordinate
stops properly.
Debugger pods are still available for HP, but not for anything past a P3
or an Itanium 1. And HP did do a trace for the Itanium, which I have
the head end to, but it was around 400 channels of preprocessing into a
pile of 16700's.
Jim
On 3/18/2010 2:21 PM, Chuck Guzis wrote:
On 18 Mar 2010 at 19:33, Tony Duell wrote:
And a logic analyser will tell you different
things to a breakpoint.
OK, at a breakpoint (if the debugging hardware is designed sensibly),
you can exame CPU registers, etc. But it woun't necessarily tell you
how the code got to the breakpoint. A logic analyser will/
Hardly! Maybe on vintage CPUs, but not on anything made in the last
20 years. Caching, prefetch queues, scheduling hardware and
integrated peripherals make a logic analyzer of marginal use in
debugging program flow.
Times have changed and so have methods. For example, simulation is
used a lot more than it used to be for designs, as is on-chip
debugging support.
--Chuck