Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我的 MIPS32 异常处理程序中,我想确定异常是否由 I/O 中断引起。必须检查原因寄存器位 2-6(含)。确定这一点的 MIPS 汇编代码是什么?
您必须屏蔽每个位以检查中断的来源。异常处理程序过程如下所示: 您可以查看您的硬件手册,其中说明了中断来自何处,并且您通常可以将错误代码加载到寄存器中并与 EPIE 寄存器进行比较,以查看异常是陷阱还是中断,请记住在从错误返回之前重置 EPIE(错误状态寄存器)并启用处理器控制寄存器中的中断位以允许硬件进行中断。
这是我在为 Nios II 编写异常处理程序时使用的方案,该过程应该与 MIPS32 类似。
MIPS 汇编语言,MIPS:中断和异常第 22 页