zukker
Jan 27 2012, 07:11
Всем здравия!
Стоит WinCE на АРМ проце, можно ли из прикладной Dll получить доступ скажем к портам ввода вывода МК? или к аппартным прерываниям? вобщем задача стоит в задействовании SPI интерфейса в особом режиме. Хотелось бы обойтись без драйверов. Это возможно?
QUOTE (zukker @ Jan 27 2012, 11:11)

Всем здравия!
Стоит WinCE на АРМ проце, можно ли из прикладной Dll получить доступ скажем к портам ввода вывода МК? или к аппартным прерываниям? вобщем задача стоит в задействовании SPI интерфейса в особом режиме. Хотелось бы обойтись без драйверов. Это возможно?
Нет. Необходимо инсталлированть драйвер.
Типа так:
http://www.codeproject.com/Articles/10263/...ts-under-Win-NT
В общем случае зависит от конкретной сборки WinCE.
Чтоб получить доступ к портам нужны API мапирования памяти регистров портов в память процесса типа VirtualCopy и т.п. Чтоб работать с прерываниями нужен доступ к соотвествующему API: InterruptInitialize и т.п.. Увы в WinCE6 всё это функции режима ядра, не доступные из режима пользователя (в отличие от WinCE 5). Поэтому нужен либо драйвер, либо dll, загружаемая в режиме ядра.
В некоторых сборках CE6 (например Colibri) уже включен API для доступа из пользовательских приложений к мапированию памяти и прерываниям. В этом случае можно обойтись без написания драйвера.
Иначе проще всего написать потоковый драйвер, можно пользовательского режима. Нечего особо сложного, просто обычная dll с набором из нескольких стандартизованных вызовов.
Драйвера под WinCE имеют мало общего с драйверами для NT и т.п. ИМХО попроще.