为什么主 PIC 的中断结束会导致三重故障(重新启动)?
题
好吧,在学校我们正在开发一个操作系统。我的项目是开发 ATA 硬盘驱动器。当我的教授指出我只向从 PIC 而不是主 PIC 发送中断结束命令时,我以为我的中断服务例程工作得很好。
我的问题是,每当我向主 PIC 发送中断结束时,它都会导致三重故障,然后导致我的系统重新启动。现在我已经取消/注释了一堆行,看来每当将中断结束发送到主 PIC 的函数留在代码中时,我都会遇到三重错误。
现在我非常确定以下几点:
- 进入 ISR 后中断被禁用
- 我正确发送中断结束字节(已测试类)
- 我不会重新确认相同的中断
这引起了巨大的挫败感,所以我希望有人可以给我一些指导,而无需查看我们的代码。
谢谢!
解决方案
我只能猜测这一点。以下是一些需要检查的事项。
- 意向书 (EOI) 是否超出了您的细分限制?
- EOI 是否位于只读页面?
- 您的中断处理程序是否具有访问 EOI 的正确权限级别?
- 您使用的是正确的段寄存器吗?
其中任何一个都可能导致故障。如果描述符表损坏或一开始设置不当,这可能会导致双重或三重错误。
不隶属于 StackOverflow