Аппаратные прерывания

Тема в разделе "Другие", создана пользователем netex, 8 мар 2006.

Статус темы:
Закрыта.
  1. netex

    netex Гость

    Немного поясню задачу. Хочу сделать обработчик физического прерывания.
    Сделать его не зависимым от Windows, т.е. пришло прерывание, процессор перешел по IDT, и никакие IRQL не мешали.
    Обработчик не на уровне ОС, а на уровне "железа" и работы процессора.
    Вот примерный план действий:
    В однопроцессорной системе делаем обработчик прерывания.
    Изменяем соответствующий вектор в IDT.(изменяем адрес обработчика, тип - шлюз прерывания)
    В обработчике НЕ разрешаем прерывания.(sti сделаем при выходе)

    Значит ли это, что система не сможет получить управление до команды sti? (т.е. Windows переключает задачи именно по таймеру irq0?)
    В случае аппаратного прерывания в APIC будут ли маскироваться прерывания с меньшим(таким же) приоритетом, что и текущее, которое мы обрабатываем?(в i8259A маскируются и после обработки нужно послать 20h в порт 20h)

    После обработки прерывания нужно ли что-то делать с APIC, как например с i8259A (послать 20h в порт 20h)?

    Можно ли вызывать из такого обработчика (с запрещенными прерываниями) вызывать функции ОС (например: поместить DPC в очередь или RaiseIRQL)?

    Если у вас есть другие идеи, расскажите о них, буду только благодарен.

    Вообще хотел получить побольше информации как сделать обработчик на многопроцессорной системе.
    Каким образом можно поправить все IDT на всех процессорах?
     
Загрузка...
Похожие Темы - Аппаратные прерывания
  1. AyratT18rus
    Ответов:
    0
    Просмотров:
    1.025
  2. deeeman
    Ответов:
    2
    Просмотров:
    5.374
Статус темы:
Закрыта.

Поделиться этой страницей