Портирование драйвера с PPC2003 на WM6: ISR не вызывается - PullRequest
1 голос
/ 05 июня 2009

Я пытаюсь портировать драйвер, который я разработал, для пользовательского устройства, использующего порт CF iPAQ hx4700.

Цель - новый iPAQ 210, работающий под управлением Windows Mobile 6. Хотя WM6 (и Windows CE 5.0) перешли на новую архитектуру драйверов, она заявляет о поддержке устаревших драйверов.

Все работает нормально (регистрация, отображение памяти и т. Д.) , за исключением части обработки прерываний. Я регистрирую свой ISR с помощью CardRequestIRQ(), но когда генерируется IRQ, мой ISR никогда не вызывается.

Обратите внимание: я разрабатываю для четко определенной платформы (iPAQ 210), поэтому нет Platform Builder, OAL, ...

Кто-нибудь испытывал подобные вещи, которые могли бы помочь мне пролить свет на этот вопрос?

1 Ответ

0 голосов
/ 05 марта 2010

Оказалось, что, на удивление, это была аппаратная проблема.

Длительность импульса прерывания, генерируемого нашим пользовательским устройством, соответствует стандарту CF (Compact Flash). В конце концов, с iPAQ hx4700 все работало годами.

После исчерпания идей я решил поиграть с длительностью импульса и, о чудо, когда импульс был намного длиннее (100x), чем оригинал, IRQ был обработан правильно (ISR называется как и ожидалось).

Примечание: все было правильно настроено для импульсного IRQ (не уровня).

Иди на цифру.

...