[comp.realtime] Port bit twiddling for profiling

westley@aardvark.uucp (Terry J. Westley) (12/08/89)

In article <41649@srcsip.UUCP> sbrandt@src.honeywell.com (Scott Brandt) writes:

>  I used a very primitive yet 
>extremely effective trick to monitor process times etc.  What I did was
>have my various processes toggle bits on a data port at different places
>in their execution.  I then connected an oscilloscope to the data lines
>and watched my processes execute and interact.

Effective variations of this I have used are:

1) Toggle several bits in one or more ports and use a logic analyzer to
   see what is happening.  This also allows you to see a stream of data
   over a period of time (so would a storage scope with multiple channels).

2) Output a different D/A level for each point in the code when you have
   D/As, but no parallel ports (or no logic analyzer).


Terry J. Westley
Arvin/Calspan Advanced Technology Center
P.O. Box 400, Buffalo, NY 14225
planck!hercules!westley@cs.buffalo.edu

isr@rodan.acs.syr.edu ( ISR group account) (12/09/89)

In article <1989Dec7.173534.27769@planck.uucp> westley%hercules@planck.UUCP (Terry J. Westley) writes:
>In article <41649@srcsip.UUCP> sbrandt@src.honeywell.com (Scott Brandt) writes
>>  I used a very primitive yet 
>>extremely effective trick to monitor process times etc.  What I did was
>>have my various processes toggle bits on a data port at different places
>>in their execution.  I then connected an oscilloscope to the data lines
>>and watched my processes execute and interact.
>Effective variations of this I have used are:
>1) Toggle several bits in one or more ports and use a logic analyzer to
>   see what is happening.  This also allows you to see a stream of data
>   over a period of time (so would a storage scope with multiple channels).
>2) Output a different D/A level for each point in the code when you have
>   D/As, but no parallel ports (or no logic analyzer).

I've found the above extremely useful for determining placement of
68881 cod when interlacing it in amongst 68020 code. It's a great way
of finding out if the change did anything to improve speed. Changing 
D/A level according to how many iterations of a process have ocurred
is useful for rough checking on synchronizations of another process that
is suppossed to happen say, every 100 or so, just watch to see if it's
at the same ramp point each time when the other process occurs.




-- 
 Mike Schechter, Institute for Sensory Research, Syracuse Univ.
InterNet: isr@rodan.syr.edu  msschech@rodan.syr.edu  Bitnet: SENSORY@SUNRISE