即使在一些写得很好的内核书籍中,我也找不到以下问题的正确答案:
他们说 ISR 不能休眠,因为它无法重新调度 ISR,因为它没有与任何进程连接,那么当更高优先级的中断抢占正在执行的中断时会发生什么?中断的 ISR 不会再次重新安排(执行)?如果是,如何以及谁来做这项工作?
很多时候我们会禁用中断(例如:1.在临界区 2. 当一个快速中断正在执行时,它将禁用当前处理器中的所有中断),那么当中断被禁用时发生的中断会发生什么?他们只是被丢弃了?还是将存储在某个地方以供以后执行?如果是,在哪里以及如何?
当一个 ISR 正在执行时,它将禁用当前 IRQ 行中的中断以避免重入(防止同一行上的另一个 ISR 被执行),但是为什么呢?如果 ISR 是可重入的,那有什么问题?
*ISR=中断服务程序
*他们=书的作者