порты из IRQ

Тема в разделе "WASM.OS.DEVEL", создана пользователем Nable, 19 ноя 2008.

  1. Nable

    Nable New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2008
    Сообщения:
    14
    Зная IRQ и номер прерывания для него, можно ли узнать порты ввода вывода?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Ты сам то понял чего сказал?
     
  3. Nable

    Nable New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2008
    Сообщения:
    14
    ага :)
    например
    Клавиатура. IRQ1, Прерывание Int 93 - использует порты 60 и 64.
    Теперь IRQ 19, Прерывание (непомню сейчас) - как узнать какие порты используются.
    Естественно програмно, а не из диспечера устройств :)
     
  4. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    В винде это заглушка, а не хэндлер прерываний клавиатуры. На будущее, уточняйте по какой оси вопрос, это по досу вопрос или хз..
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Nable
    Ну дизассемблируешь прерывание смотришь какие порты использует.

    А вообще в любом прерывании можно использовать любые порты ввода/вывода.
     
  6. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    % кофэ пьём :)))
     
  7. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Nable
    Линия запроса прерывания от клавиатуры с интерфесом PS/2 -- действительно IRQ 1. Вектор (номер) прерывания -- вовсе не обязательно 93, он задаётся программированием контроллера прерываний. Что ж до портов, то лишь у немногих устройств порты являются фиксированными, в большинстве случаев их адреса настраиваются программно либо BIOSом, либо осью.
     
  8. Nable

    Nable New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2008
    Сообщения:
    14
    Дык я и хочу "программно" узнать какие порты на конкретной машине, ось/bios или дрова выдали фиксированому прерывание(irq).
    Как узнать номер в idt по irq я знаю. А вот как порты, не знаю.
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Они не связаны. Нужно знать и то и другое.
    Есть таблицы в инете какие наиболее часто используемые девайсы какие порты используют, в документации к девайсу должно быть это написано тоже.
    А универсально для произвольного девайса.. по-моему, никак.

    Порты не "выдаются". Порты использует устройство аппаратно и никто и ему не выдает, оно само к ним подключено.
     
  10. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Great
    Ну, не совсем так... Несколько упрощая, всё железо можно разделить на три группы:

    1) "Унаследованная" (legacy) аппаратура, которая существовала уже на PC/AT. Она использует известные фиксированные адреса портов и номера линий запросов прерываний (IRQ). Это клава и мыша PS/2; COM- и LPT-порты; стандартные контроллеры прерываний (PIC) и прямого доступа к памяти (DMA); контроллеры гибких (FDC) и в жёстких дисков стандарта IDE (ATA). Некоторые устройства (COM и LPT, например) могут использовать те или иные порты и линии IRQ в зависимости от их настройки в BIOS Setup, но все эти данные можно узнать, вызывая соответствующие функции BIOS. Контроллеры жёстких дисков SATA могут "притворяться" обычными ATA, но по каким адресам они будут находиться, я не знаю -- не проверял.

    2) Новая аппаратура материнской платы, не подпадающая под стандарты, связанные с теми или иными шинами (о них ниже). Главным образом это "хитрые" устройства, связанные с управлением электропитанием. Обнаружить и сконфигурировать их можно в соответствии со стандартом ACPI.

    3) Аппаратура, подключенная к стандартизированным шинам и конфигурируемая с помощью средств, предусмотренных стандартами на эти шины. Наиболее яркий пример -- PCI и PCI Express.