有关中断的问题,请指导下
中断处理程序能被打断吗?
如果能被打断,那么怎么恢复?
如果不能被打断,那么in_irq()又如何返回非0呢?
求指导。3Q
[解决办法]
中断也是可以被打断的。如果你设计的是嵌套式中断结构,那么保存重要的数据是必须的(一般存在SVC模式下的堆栈中)。如果设计为不可嵌套结构,那么进入中断之后应第一时间关闭所有中断,处理完毕之后再行打开。
无论中断是否可以被打断,ARM处理器在两个过程中做的一样的事情,保存当前被打断指令的地址+8(也就是下两条指令),压入堆栈以待返回。希望能对你有帮助
[解决办法]
linux下不允许被打断。
剩下的可以看下Linux内核源码