Поиск адреса памяти параллельного порта в Linux

Я пытаюсь найти базовый (память) адрес параллельного порта, который я подключил к своему ноутбуку через карту PCI Express. Бег lspci -v показывает, что мой компьютер распознает параллельный порт и выдает порты ввода / вывода (1000 и 1008), но не адрес памяти (другие записи имеют как порты, так и места в памяти… эта карта является единственной записью без адреса памяти). Кроме того, когда я смотрю в /proc/ioports Я получаю те же порты, которые указаны в lspci. Однако, когда я пытаюсь использовать любой из этих адресов в программе, которую я запускаю (EMC2 для управления шаговыми двигателями), он не находит параллельный порт по этому адресу.

Что было бы действительно здорово, если бы существовал аналог диспетчера устройств Windows -> Порты -> Ресурсы. Есть ли способ сделать это в Ubuntu? Существует ли стандартное расположение памяти для устройств PCI e?

Изменить: выход из lspci -v

04:00.0 Parallel controller: Oxford Semiconductor Ltd Device c110 (prog-if 02)
Subsystem: Oxford Semiconductor Ltd Device c110
Flags: bus master, fast devsel, latency 0, IRQ 18
I/O ports at 1000 [size=8]
I/O ports at 1008 [size=4]
Capabilities: [40] Power Management version 3
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [70] Express Legacy Endpoint, MSI 00
Capabilities: [100] Device Serial Number 10-01-00-11-11-e0-30-00
Capabilities: [110] Power Budgeting <?>
Kernel driver in use: parport_pc
Kernel modules: parport_pc

И для справки, еще одна запись, которая показывает расположение в памяти:

0c:03.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 61) (prog-if 10)
Subsystem: Agere Systems FW322/323
Flags: bus master, fast Back2Back, medium devsel, latency 248, IRQ 19
Memory at 8c000000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Kernel driver in use: ohci1394
Kernel modules: firewire-ohci, ohci1394

2 ответа

Решение

Пытаться cat /proc/ioports | grep parport фильтровать вывод ioports.

Быстрый ответ: нет места в памяти для параллельного порта. Параллельным портам назначаются только порты ввода-вывода. Именно так интерфейсы параллельных портов работали на протяжении десятилетий, и никто не чувствовал необходимости создавать несовместимый интерфейс с отображением памяти, для которого потребовались бы специальные драйверы.

Теперь я должен спросить, почему вы собираетесь найти место в памяти порта? Что ты хочешь с этим делать?

Другие вопросы по тегам