arm中断嵌套一定要切换模式吗?

zhang223   2009-9-19 00:04 楼主
我看arm的irq中断处理程序中
都是在汇编代码中处现场保护,然后修改cpsr,把I_bit清零,然后从IRQ模式切换到sys模式,然后跳转到c处理程序,然后出栈……

我想问的是,如果我在中断处理函数中,不切换模式,一直停留在IRQ模式,是不是即使把I_Bit清零了,就算高优先级的中断来了,也是不能响应,不能中断嵌套?

也就是说,如果arm处在IRQ模式中,且CPSR的I_Bit=0(可以相应中断),来了一个更高优先级的中断,arm核能够暂停正在处理的中断,而去响应新到得高优先级的中断不?

先不要管 如果不切换模式会造成寄存器破坏从而不能正常返回,我只是想知道arm核响应中断的机制

回复评论 (3)

也就是说,如果arm处在IRQ模式中,且CPSR的I_Bit=0(可以相应中断),来了一个更高优先级的中断,arm核能够暂停正在处理的中断,而去响应新到得高优先级的中断不?

keyi
点赞  2009-9-19 09:24
确定吗?
http://blog.eeworld.net/libaizhang/archive/2009/07/02/4317141.aspx
我看这篇文章说的,好像在IRQ模式下,如果来了中断,除非是FIQ否则不会暂停的
点赞  2009-9-19 10:33
他那个写的有些模糊,你再找其他资料看看
点赞  2009-9-19 10:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复