我看arm的irq中断处理程序中
都是在汇编代码中处现场保护,然后修改cpsr,把I_bit清零,然后从IRQ模式切换到sys模式,然后跳转到c处理程序,然后出栈……
我想问的是,如果我在中断处理函数中,不切换模式,一直停留在IRQ模式,是不是即使把I_Bit清零了,就算高优先级的中断来了,也是不能响应,不能中断嵌套?
也就是说,如果arm处在IRQ模式中,且CPSR的I_Bit=0(可以相应中断),来了一个更高优先级的中断,arm核能够暂停正在处理的中断,而去响应新到得高优先级的中断不?
先不要管 如果不切换模式会造成寄存器破坏从而不能正常返回,我只是想知道arm核响应中断的机制
也就是说,如果arm处在IRQ模式中,且CPSR的I_Bit=0(可以相应中断),来了一个更高优先级的中断,arm核能够暂停正在处理的中断,而去响应新到得高优先级的中断不?
keyi
确定吗?
http://blog.eeworld.net/libaizhang/archive/2009/07/02/4317141.aspx
我看这篇文章说的,好像在IRQ模式下,如果来了中断,除非是FIQ否则不会暂停的