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

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

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

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

先不要管 如果不切换模式会造成寄存器破坏从而不能正常返回,我只是想知道arm核响应中断的机制
...全文
462 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywmen 2011-06-04
  • 打赏
  • 举报
回复
09年的帖子还没结贴哦。。。
天亮后说晚安 2011-06-04
  • 打赏
  • 举报
回复
必须切换模式
frankyzhang1984 2011-06-04
  • 打赏
  • 举报
回复
好像必须切换模式,否则只有FIQ才能打断。
ProgrammerNO1 2009-09-19
  • 打赏
  • 举报
回复
他那个写的有些模糊,你再找其他资料看看
liuwei_sir 2009-09-19
  • 打赏
  • 举报
回复
确定吗?
http://blog.csdn.net/libaizhang/archive/2009/07/02/4317141.aspx
我看这篇文章说的,好像在IRQ模式下,如果来了中断,除非是FIQ否则不会暂停的
ProgrammerNO1 2009-09-19
  • 打赏
  • 举报
回复
也就是说,如果arm处在IRQ模式中,且CPSR的I_Bit=0(可以相应中断),来了一个更高优先级的中断,arm核能够暂停正在处理的中断,而去响应新到得高优先级的中断不?

keyi

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧