当前位置: 技术问答>linux和unix
linux arm IRQ中断 何时打开
来源: 互联网 发布时间:2017-04-24
本文导语: 本帖最后由 xintong2010 于 2013-08-26 15:42:47 编辑 我的疑问是这样的: 我们知道arm在发生中断之后,arm处理器会自动置位SPSR的I标志位,关闭所有IRQ中断。但是在linux内核的中断处理中,是在什么时候清除掉了I位,...
我们知道arm在发生中断之后,arm处理器会自动置位SPSR的I标志位,关闭所有IRQ中断。但是在linux内核的中断处理中,是在什么时候清除掉了I位,打开IRQ中断的呢?
希望高手能够回答一下。
万分感谢。
|
在发生中断前,当然这句话本身就暗示了中断IRQ是使能的嘛,那说明CPSR中,I=0,IRQ使能。
发生中断时,硬件系统有5个动作,我也记不太详细,但记得硬件会自动把CPSR保存到IRQ模式下的SPSR下,同时把新的CPSR中I=1,禁能IRQ中断,也就是说CPU默认不开启中断嵌套。在处理完中断ISR后,在最后返回时,会把SPSR恢复到CPSR中,从中断中退出后,中断自然又使能。
这里I=0是使能还是禁能,我可能记反了,但流程应该没记错。希望能帮到你。
发生中断时,硬件系统有5个动作,我也记不太详细,但记得硬件会自动把CPSR保存到IRQ模式下的SPSR下,同时把新的CPSR中I=1,禁能IRQ中断,也就是说CPU默认不开启中断嵌套。在处理完中断ISR后,在最后返回时,会把SPSR恢复到CPSR中,从中断中退出后,中断自然又使能。
这里I=0是使能还是禁能,我可能记反了,但流程应该没记错。希望能帮到你。
|
是的!