为什么主PIC的中断结束会导致三重故障(重启)?

时间:2009-05-20 15:22:42

标签: x86 interrupt hobby-os

好的,在学校我们正在开发一个操作系统。我的项目是开发ATA硬盘驱动程序。当我的教授指出我只是将中断结束命令发送到从属PIC而不是主控制器时,我认为我的中断服务程序工作得很好。

我的问题是每当我将中断结束发送到主PIC时,它会导致三重故障,然后导致我的系统重启。现在我已经取消/评论了一堆行,看起来无论何时将中断结束发送到主PIC的函数留在代码中,我都会得到三重错误。

现在我非常确定以下内容:

  1. 进入我的ISR时禁用中断
  2. 我正在发送中断结束字节(经过类测试)
  3. 我没有重新确认相同的中断
  4. 这引起了巨大的挫败感,所以我希望有人可以给我一些指导,而无需查看我们的代码。

    谢谢!

1 个答案:

答案 0 :(得分:0)

我只能猜到这一点。以下是一些需要检查的事项。

  • 您的分段限制之外的EOI是否超出?
  • EOI是否在只读页面上?
  • 您的中断处理程序是否处于正确的权限级别以访问EOI?
  • 您使用的是正确的段注册吗?

任何一个都可能导致错误。如果描述符表被破坏或者设置不正确,那么反过来可能会导致双重或三重错误。