Записать значение в регистр параллельного порта - PullRequest
0 голосов
/ 28 декабря 2010

Я пытаюсь записать в свой регистр lpt функцию outb(0x378,val);хорошо .. Я пытался отладить с помощью вызова int ret=inb(0x378); Я всегда получаю ret=255 независимо от того, какое значение я вставляю с outb раньше.

* Я пишу в режиме ядра, так как моя программаэто драйвер, поэтому я не использовал ioperm() и т. д.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 28 декабря 2010

У вас есть параметры outb, функция неверна, правильный порядок:

outb(value, port)

, поэтому вам нужно изменить код на:

outb(val, 0x378)

Для более подробной информации, пожалуйста,читать Linux I/O Programming Howto.

0 голосов
/ 28 декабря 2010

inb (0x378) не требуется для возврата написанного; по крайней мере я видел фишки, которые ведут себя так. Ну, так как вы в какой-то момент позвонили outb, вы знаете, что происходит.

0 голосов
/ 28 декабря 2010

Знаете ли вы, что на этот адрес установлен параллельный порт?

Получите себе небольшой слаботочный светодиод.Прикрепите длинный конец одного из контактов 2 (LSB) к контакту 9 (MSB), а короткий конец - к контакту 25 (заземление).

Попробуйте ввести различные значения и посмотрите, сможете ли вы изменить светодиод набитовое значение того, что вы пишете.

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

Также обратите внимание, что большинство USB-адаптеров для принтеров не предоставляют вам побитовый доступ к регистру.У чего-то, свисающего с PCI или PCMCIA и т. Д., Также могут быть проблемы с прямым доступом к регистру по старому адресу порта.Есть хорошие чипы параллельного интерфейса USB, такие как FT245 и их преемники, которые вы можете использовать, если у вас нет «истинного» параллельного порта, висящего на чипсете.

0 голосов
/ 28 декабря 2010

Вы установили регистр направления? Если он установлен как вход, то вы будете читать, что находится на порту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...