Обработчики прерываний
Обработчики прерываний обслуживают прерывания аппаратной части компьютерной системы; реагируют на аппаратные прерывания и управляют на нижнем уровне передачей данных между компьютером и внешними устройствами.
Физически обработчики прерываний формируются как часть стандартного процесса QNX (например, драйвера), но они всегда выполняются асинхронно с процессом, в котором содержатся.
Обработчик прерываний:
- запускается удаленным вызовом, а не прямо прерыванием (лучше писать его на языке Си, а не на ассемблере);
- выполняется внутри процесса, в который встроен, поэтому имеет доступ ко всем глобальным переменным процесса;
- выполняется только для разрешенных прерываний и приоритетно обслуживает прерывания более высокого уровня;
- не взаимодействует непосредственно с контроллером прерываний (микросхемой 8259). Это делает операционная система.
По одному прерыванию (если это поддерживается аппаратно) могут запускаться несколько процессов. При возникновении физического прерывания каждому обработчику прерываний передается управление. В каком порядке обработчики прерываний разделяют обработку этого прерывания - не определено.
Если вы хотите | Используйте |
Установить аппаратное прерывание | Функцию qnx_hint_attach() |
Удалить аппаратное прерывание | Функцию qnx_hint_detach() |