0

На этой машине: http://www.nexcom.com/ProductModel.aspx?id=376f4fa5-64f3-41d1-afba-60ee48883465Доступ GPIO на борту атома

Я пытаюсь получить доступ к GPIO, но ни поддержка Nexcom или Intel была очень полезной.

Ближайший я пришел этот пост в блоге, который говорит, что я должен написать свой собственный драйвер: http://geekswithblogs.net/BruceEitman/archive/2010/08/01/windows-ce-using-a-driver-to-readwrite-hardware-registers.aspx

В руководстве Nexcom говорится GPIO порт расположен в 0EE4H (0xEE4). Что я должен с этой информацией? Я действительно должен написать свой собственный водитель?

Редактировать: должен работать на windows xp embedded и windows 7 embedded.

ответ

3

Вы не можете напрямую обращаться к аппаратным ресурсам (например, контактам GPIO) из процессов пользовательского пространства, если только драйвер не предоставляет эту функцию. Это означает, что либо вы найдете подходящего драйвера (я не знаю, где искать такую ​​вещь), либо вы сами пишете.

p.s. Возможно также, что ваша ОС выставляет контакты GPIO где-то. На прототипной плате linux, на которой я работал, было несколько файлов (IIRC/dev/gpioX, где X - число контактов), которые вы могли бы прочитать/записать, если у вас есть соответствующие разрешения.

+0

Знаете ли вы, что окна выставляют контакты? –

+0

Я очень сомневаюсь. По крайней мере, что касается NT. – CAFxX

+0

Я нахожу очень проблематичным то, что поставщики оборудования чувствуют, что могут уйти, не поставляя драйверы для функций, поддерживаемых платой. К счастью, мне не придется писать драйвер, так как мы используем внешний модуль io по другим причинам. –

0

Вам нужен GIVEIO.SYS.

Фактически это происходит от Microsoft.

Когда вы его устанавливаете, вы указываете, какие адреса портов вы хотите.

тогда программа пользовательского пространства может напрямую обращаться к портам.

Вы, Unix Bretheren, можете просто вызвать ioperm(), а процесс выполняется как корень. Позор MS не сделал этого, но GIVEIO.SYS в порядке.

Смежные вопросы