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

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

现在我非常确定以下几点:

  1. 进入 ISR 后中断被禁用
  2. 我正确发送中断结束字节(已测试类)
  3. 我不会重新确认相同的中断

这引起了巨大的挫败感,所以我希望有人可以给我一些指导,而无需查看我们的代码。

谢谢!

有帮助吗?

解决方案

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

  • 意向书 (EOI) 是否超出了您的细分限制?
  • EOI 是否位于只读页面?
  • 您的中断处理程序是否具有访问 EOI 的正确权限级别?
  • 您使用的是正确的段寄存器吗?

其中任何一个都可能导致故障。如果描述符表损坏或一开始设置不当,这可能会导致双重或三重错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top