MIPS汇编如何判断硬件I/O中断是否发生?

4

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

1个回答

2
您需要屏蔽每个位以检查中断来源。以下是异常处理程序过程:ExcHandler 您可以查看硬件手册,其中说明了中断的来源,通常还会有错误代码,您可以将其加载到寄存器中并与EPIE寄存器进行比较,以查看异常是否为陷阱或中断。请记得在返回错误前重置EPIE(错误状态寄存器),并在处理器控制寄存器中启用中断位,以允许硬件进行中断。
这是我在为Nios II编写异常处理程序时使用的方案,对于MIPS32来说,该过程应该是类似的。
参考链接:MIPS汇编语言MIPS:中断和异常 第22页

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接