Хорошо, в школе мы разрабатываем операционную систему. Мой проект заключался в разработке драйвера жесткого диска ATA. Я подумал, что моя подпрограмма обработки прерываний работает достаточно хорошо, когда мой профессор указал, что я посылаю только команды окончания прерывания подчиненному PIC, а не ведущему устройству.
Моя проблема в том, что всякий раз, когда я посылаю конец прерывания на главный PIC, это вызывает тройной сбой, который затем приводит к перезагрузке моей системы. Теперь я удалил / прокомментировал несколько строк, и кажется, что всякий раз, когда функция, отправляющая конец прерывания ведущему PIC, остается в коде, я получаю тройную ошибку.
Теперь я совершенно уверен в следующем:
- прерывания отключаются при входе в мой ISR
- Я правильно отправляю байт конца прерывания (класс проверен)
- Я не подтверждаю то же самое прерывание
Это вызвало огромное разочарование, поэтому я надеюсь, что кто-то может дать мне некоторые рекомендации, не требуя просмотра нашего кода.
Спасибо!