Re: Preferred method to get interrupts



Thanks for your XXX_Deinit sequence, it is a little different from ours and
I will give it a try when I get a chance. Are you saying that you have
perfect port communications on the X51 just your ISR is not being called?

We first use CreateFile to point to the COM resource (XXX) which in turn
calls the XXX_Open routine that looks like this:

LoadLibrary
CardRegisterClient
CardRequestWindow
CardMapWindow
InterlockedIncrement

If we were using ISR then I assume we would have put CardRequestIRQ in this
XXX_Open routine. One of the problems we have is that WM 5.0 no longer
appears to support CardMapWindow so I'm not sure how we're suppose to map
the COM port anymore for data transfers.

I think the X51 CF problem stems from Dell trying to implement the new PC
CARD structure, instead of what HP did and remove it from the OS. You can
see this in the registry keys between 2003 vs HP 5.0 vs X51.

Here is a very long shot to solve your problem, it is a patch that was
written for GPS CF card manufactures, but I have no idea what it does.
http://www.buygpsnow.com/support/issue_view.asp?ID=3704

Cheers,
Thomas










"morehouse" <richard@xxxxxxxxx> wrote in message
news:1157067271.887958.123880@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi Thomas,

On the x51, it does appear as the card does remain powered up. In
2003, I had to do the CardRequestConfiguration call to power up the
card. On the x51, the card is powered up as soon as I insert it even
without the CardRequestConfiguration call.

But I am able to enter the XXX_Init function every time I insert the
card on both the iPAQ hx2495 and the x51.I'm don't get any problems
with not being able to remove the driver .dll.

In my XXX_Deinit function the sequence is as follows:

1. CardDeregisterClient
2. LocalFree
3. InterlockedDecrement
4. InterlockedCompareExchange


I guess that's where we differ a little bit . I had problems with
interrupts
right from the start with 2003. So I quickly went to a polled IO and
moved
on. Polling works fine for us and I never looked back.

On the X51 when the card is inserted, the card is powered up, but stays
powered. Did you notice this?, then XXX_Init is called as usual and the
XXX_Deinit is called when the card is removed. Here is the kicker, when
you
insert the card a second time XXX_Init is never called again. On the X50
(WM2003) every time I insert and remove the card XXX_Init and XXX_Deinit
are
being called accordingly, but on the X51(WM5.0) XXX_Init is only being
called the first time the card is inserted.

We got are driver to load in a similar fashion to yourself but what I
found
was that it appears as though the driver is being locked by another
application, because after I insert and remove the card, my driver dll
can
never be erased from the \Windows directory or over written until I do a
reset (Pop-up window says sharing violation), however, the driver doesn't
show up as running in Process Viewer or as an active key.

Also the Kernel Tracker in eVC does not function which makes the whole
problem tough to troubleshoot.

Strange stuff. I'm not convinced that simply solving your interrupt
problem
will be your last problem on the X51. Let's hope I'm wrong.

Thomas

"morehouse" <richard@xxxxxxxxx> wrote in message
news:1156982818.375151.207140@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi Thomas,

I have an IPAQ hx2495 but have been unable to get interrupts on that
device also.

How far did you get on the x51? It seems as though I got to the point
where the driver is successfully loaded. It's just that the ISR is
never called more than once. To get the driver loaded i just put a key
under HKLM\Drivers\PCMCIA\<CardName>-<PnP ID>. Under this key I put
the prefix and the name of the driver .dll file. I put all of my card
initialization inside inside of the xxx_Init function and removed it
from the CE_CARD_INSERTION callback from Pocket PC 2003. All of these
steps seem to get the driver loaded on both the x51 and the iPAQ 2495.

The remaining issue I have is how to get the interrupts.

What steps did you have to take to get the interrupts on the iPAQ
2190? I could possibly follow them on the hx2495.

Did you use the CardRequestIRQ(...)/CardRequestConfiguration(...)
method or the InterruptInitialize(...) method?

Any comments or leads in this matter would be greatly appreciated.

Regards,
Richard



Thomas Magma wrote:
Having problems with the PCMCIA (CF) port on the Axim X51 are we? We
have
be
down that lonely, lonely road before, just to find out it leads to
darkness
and despair. Do a Google groups search on "XXX_Init only being called
once"
for one of the threads that we discussed on the topic. We found our
solution
in the HP2190, they implemented the their port drivers correctly. We
would
like to use the Dell so please let me know if you find a solution to
your
problem.

Thomas

"morehouse" <richard@xxxxxxxxx> wrote in message
news:1156264848.221667.163980@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hello All,

What is the preferred method to get interrupts in WM 5.0?

From what I have seen, there are two possibilities.

1. Use CardRequestIRQ and CardRequestConfiguration to register the
ISR.
2. Register an event using InterruptInitialize, then start an IST
which blocks on the event using WaitForSingleObject?

What are the differences between the two?





.



Relevant Pages

  • Fwd: Re: [RFC] pata_icside driver
    ... we need to disable the interrupts from the port ... on the card if no drives are found, ... This driver continues to have the so far ignored issue concerning ... * Purpose: disable interrupts from card ...
    (Linux-Kernel)
  • Re: Preferred method to get interrupts
    ... I had problems with interrupts ... On the X51 when the card is inserted, the card is powered up, but stays ... We got are driver to load in a similar fashion to yourself but what I found ...
    (microsoft.public.windowsce.platbuilder)
  • device driver race conditions problems (kernel 2.4)
    ... I'm working in a device driver for kernel 2.4 to use with our new CTI ... My driver must be able to manage more than one card using the same ISR ... interrupt cannot interrupts the other but when one reaches another, ... static inline void inc_pointer_signal(volatile unsigned int *index, ...
    (comp.os.linux.development.system)
  • Re: Udp sending performance in Gbit Ethernet
    ... If the number of interrupts increases by a factor of 3 as you describe, ... such as the maximum DMA block size or alike, which forces the driver to ... split frames into several DMA transfers. ... Try different versions of the driver for the card. ...
    (microsoft.public.development.device.drivers)
  • Re: Preferred method to get interrupts
    ... On the x51, it does appear as the card does remain powered up. ... without the CardRequestConfiguration call. ... We got are driver to load in a similar fashion to yourself but what I found ...
    (microsoft.public.windowsce.platbuilder)