Re: Interrupts

From: Paul G. Tobey [eMVP] (ptobey)
Date: 09/15/04


Date: Wed, 15 Sep 2004 08:41:27 -0700

Let's go back to what you're trying to achieve, rather than how you're
trying to achieve it. Obviously, timing something like an interrupt in the
emulator is *completely* worthless. No meaning whatsoever. Waste of time.

So you're trying to find out what? The time from the hardware interrupt
until entry into the IST? If so, delegate some sort of I/O from your
processor or whatever you have available to indicate the you've entered the
IST. Right after the WaitForSingleObject() in the IST that you are trying
to test, set that output high. At the end of the IST, just before the loop
goes back to WaitForSingleObject(), set the output back low. So, now you
have a nice hardware signal with which you can measure timing. Now, you
just need to instrument the hardware...

Connect your logic analyzer to the interrupt signal which you are using. If
it's the serial port, this will be the INTA or INTB signal out of the 16550
chip. Also, connect up the hardware indicator from the IST set up in SW
above. Set the logic analyzer to trigger on the INTx signal going high.
Start the acquisition and launch the WinCE OS on the device. Each time a
serial interrupt occurs, you can look at the time from the rising edge of
INTx to the rising edge of the hardware IST output and, bingo, you've got
the IST latency.

Paul T.

"Javi Barrio" <JaviBarrio@discussions.microsoft.com> wrote in message
news:CB0689D6-0D37-4247-902F-49F7C1ED2383@microsoft.com...
> Hi:
> I've read the article "cats, toast, and interrupts on Windows CE", trying
> to
> find a way to start the programming of interrupts. But I'm still a bit
> lost.
>
> I want to get the timing of the interrupts (if I make them work one day),
> and I'm force to use the Emulator, as the CEPC board I have, only works
> with
> Windows CE 3.0 and doesn't work the "remote kernel tracker" tool, which I
> want to use. So I have used the Platform Builder4.2 to build
> "MyInternetAppliance" image and then use the emulator to test the
> programs.
>
> I'll try to program a simple application with an IST to manage a interrupt
> coming from the serial port. Here it comes the trouble...I don't know the
> way
> to link the character that comes through the serial port with the
> interrupt,
> how to convert that arriving character in a interrupt? How to know which
> is
> the IRQ in the emulator? Maybe use the WaitCommEvent function and when
> receiving the character... pulse the event that the IST is waiting for?
>
> I could try the interruption with a tick of timer, or a press key from the
> keyboard. But the problem is the same, how to link the interruption...
>
> I would really appreciate your help with this...Thanks very much,
> Javi.



Relevant Pages

  • Re: Polling loop good here???
    ... The "vertical retrace interrupt" was IRQ 2... ... In today's hardware - as has been mentioned - they've almost certainly ... it...make use of the drivers... ...
    (alt.lang.asm)
  • RE: Polling For 100 mbps Connections? (Was Re: Freebsd Theme Song)
    ... >> polling is less ... It depends on the hardware. ... >has built-in hardware interrupt throttling (such ...
    (freebsd-questions)
  • Re: how can a bit be off in memory?
    ... So, what are the opinions - did I run into a hardware glich, or was ... Two bytes were FF on a file loaded from the floppy disk. ... It turned out to be a timing issue: At a given point the DMA was doing ... Every 4-5 hours the machine would crash when a timer interrupt ...
    (comp.os.linux.misc)
  • Re: how can a bit be off in memory?
    ... So, what are the opinions - did I run into a hardware glich, or was ... Two bytes were FF on a file loaded from the floppy disk. ... It turned out to be a timing issue: At a given point the DMA was doing its ... Every 4-5 hours the machine would crash when a timer interrupt interrupted ...
    (comp.os.linux.misc)
  • Re: how can a bit be off in memory?
    ... So, what are the opinions - did I run into a hardware glich, or was ... Two bytes were FF on a file loaded from the floppy disk. ... It turned out to be a timing issue: At a given point the DMA was doing its ... Every 4-5 hours the machine would crash when a timer interrupt interrupted ...
    (comp.os.linux.misc)