看伪中断看的云山雾绕,请教大侠用通俗的说法解释下伪中断,及其处理方法。
下面是书上写的:
例如,假设正在执行下面的代码:
MRS r0, cpsr
ORR r0, r0, # I_Bit : OR : F_Bit ;禁止IRQ和FIQ中断
MSR cpsr_c, r0
如果在执行 MSR 指令时接收到 IRQ中断,则执行以下操作:
z 保存 IRQ中断;
z 执行 MSR cpsr , r0 指令来完成 CPSR 中 I 位和 F 位的设置;
z 响应 IRQ中断,因为 CPSR 的 I 位被置位前内核将对中断异常进行处理;
z CPSR(I 位和 F 位已被置位)的内容移入 SPSR_irq。
这就意味着,在 IRQ中断服务程序的入口,人们可以看到 IRQ中断被处理的异常效果,
SPSR 的 I 位被置位。在上面的例子中,CPSR 和 SPSR 的 F 位都置位。表明在 IRQ 服务程
序的入口处 FIQ 被禁止,FIQ 将一直被禁止直到重新被使能。FIQ 不能通过 IRQ 返回来自
动重新使能。
后面这段不懂啊,哪位大侠能解释下,谢啦! |