views:

52

answers:

1

I'm trying to port the driver I've developed for a custom device that uses the CF port of the iPAQ hx4700.

The target is the new iPAQ 210 that runs Windows Mobile 6. Although WM6 (and Windows CE 5.0) switched to a new driver architecture, it claims to support legacy drivers.

Everything is working fine (registration, memory mapping, etc) except the interrupt handling part. I register my ISR with CardRequestIRQ() but when the IRQ is generated my ISR is never called.

Please note: I'm developing for a well-defined platform (the iPAQ 210), so no Platform Builder, OAL, ...

Is there anybody experienced with this kind of things that could help me shed some light on this matter?

A: 

It turned out that, surprisingly, it was a hardware problem.

The duration of the interrupt pulse generated by our custom device complied with the CF (Compact Flash) standard. After all, everything worked fine for years with the iPAQ hx4700.

After running out of ideas, I decided to play with the pulse duration and, lo and behold, when the pulse was much longer (100x) than the original, the IRQ was processed correctly (ISR called as expected).

Note: the whole thing was correctly configured for pulsed IRQ (not level).

Go figure.

Mau