Archive for March, 2005

Windows CE Real-time 1

March 31, 2005

I am intersted in real-time performance of Windows CE; especially when under load from .NET Compact Framework applications.  .NET is not hardware friendly; especially no Real-time.

 To access hardware from .NET you have to do platform invokes which requires marshalling of data, which puts a load on the system.  .NET runs as managed code which makes use of the .NET Framework, runs garabage collection in background, provides type checking at run-time, and provides common functionality such as debugging.  When a PInvoke occurs its runs as Unmanaged code.

Over the last few days I have have been checking out real-time supportin  Windows CE 5 (Platform Builder).  There are various tools in PB for investaigating RT performance.  One in particular is iLTiming application that uses system ticks to launch interrupts.  It times how long it takes for the interrupt to start and how long before the handler starts.  I have been checking out the code with a view to using INT 5 (LPT2) instead of timer ticks.  This way I can physically measure these times and compare to iLtimer.

I have been able to do this in part but some interaction with timer ticks.  I had to eventaully reinstall CE5 and I am redoing this so I will blog my progress.

So far I can genearte external signals on LPT1 when every the ISR starts.

– One version did a binary count over successive interupts
– The next vesrion just outputs a pulse on LPT.0

To code this I enter in-line x86 code in fwpc.c  <PB Root>\Platform\Coomon\SRC\x86\Common\intr (Source Files)  in Function: PeRP()

More later.

Advertisements