2009-05-20 37 views
4

好的,在学校我们正在开发一个操作系统。我的项目是开发一个ATA硬盘驱动器。我认为我的中断服务程序工作得很好,当时我的教授指出我只发送中断结束命令给slave PIC,而不是master。为什么主PIC的中断会导致三重故障(重启)?

我的问题是,无论何时将中断结束发送给主PIC,它都会导致三重故障,从而导致我的系统重新启动。现在我已经解开/评论了一堆行,并且似乎只要将代码结束发送给主PIC的功能留在代码中,就会出现三重故障。

现在我敢肯定如下:

  1. 中断是在进入我的ISR
  2. 我正确发送端中断的最字节(类测试)
  3. 我不是残疾人重新确认相同的中断

这一直造成巨大的挫折,所以我希望有人可以给我一些指导,而无需看到我们的代码。

谢谢!

+2

旧帖子,但也许作者还活着?如何处理一些代码? – Earlz 2010-05-11 21:09:00

回答

0

我只能猜这个。这里有一些事情要检查。

  • 该EOI是否超出了您的细分限制?
  • EOI是只读页面吗?
  • 您的中断处理程序是否处于正确的权限级别以访问EOI?
  • 您是否使用了正确的段寄存器?

任何这些都可能导致故障。如果描述符表损坏或者设置不当,则可能导致双重或三重错误。