4

在我的 MIPS32 异常处理程序中,我想确定异常是否由 I/O 中断引起。必须检查原因寄存器位 2-6(含)。确定这一点的 MIPS 汇编代码是什么?

4

1 回答 1

2

您必须屏蔽每个位以检查中断的来源。异常处理程序过程如下所示:ExcHandler 您可以查看您的硬件手册,其中说明了中断来自何处,并且您通常可以将错误代码加载到寄存器中并与 EPIE 寄存器进行比较,以查看异常是陷阱还是中断,请记住在从错误返回之前重置 EPIE(错误状态寄存器)并启用处理器控制寄存器中的中断位以允许硬件进行中断。

这是我在为 Nios II 编写异常处理程序时使用的方案,该过程应该与 MIPS32 类似。

MIPS 汇编语言MIPS:中断和异常第 22 页

于 2010-05-27T20:21:23.630 回答