Доступ к GPIO на атомной плате
На этой машине: http://www.nexcom.com/ProductModel.aspx?id=376f4fa5-64f3-41d1-afba-60ee48883465
Я пытаюсь получить доступ к gpio, но ни поддержка Nexcom, ни Intel не помогла.
Самое близкое, что я получил, - это сообщение в блоге, в котором говорится, что я должен написать свой собственный драйвер: http://geekswithblogs.net/BruceEitman/archive/2010/08/01/windows-ce-using-a-driver-to-readwrite-hardware-registers.aspx и запись-аппаратно-registers.aspx
В руководстве nexcom говорится, что порт gpio расположен в 0EE4H (0xEE4). Что я должен с этой информацией? Я действительно должен написать свой собственный драйвер?
редактировать: это должно работать на Windows XP встроенных и Windows 7 встроенных.
2 ответа
Вы не можете получить прямой доступ к аппаратным ресурсам (например, к контактам GPIO) из процессов пользовательского пространства, если нет драйвера, предоставляющего эту функцию. Это означает, что либо вы найдете подходящий драйвер (я понятия не имею, где искать такую вещь), либо вы пишете свой собственный.
ps Может также случиться так, что ваша ОС где-нибудь выставит контакты GPIO. На плате прототипов Linux, над которой я работал, было несколько файлов (IIRC /dev/gpioX, где X - номер булавки), на которые вы могли читать / писать, если у вас были соответствующие разрешения.
Вам нужен GIVEIO.SYS.
Это на самом деле исходит от Microsoft изначально.
когда вы устанавливаете его, вы указываете, какой адрес порта вы хотите.
тогда программа пространства пользователя может получить доступ к портам напрямую.
Вы unix bretheren можете просто вызвать ioperm() вместо этого с процессом, выполняющимся от имени root. Позор MS не сделал этого, но GIVEIO.SYS в порядке.