【发布时间】:2017-12-19 03:04:16
【问题描述】:
根据上半部和下半部的指导方针,当任何中断发生时,它由两半处理。所谓的上半部分是实际响应中断的例程——你注册到 request_irq 的那个例程。下半部分是由上半部分安排的例程,稍后在更安全的时间执行。上半部分处理程序和下半部分之间的最大区别在于,在下半部分执行期间所有中断都被启用——这就是它在更安全的时间运行的原因。在典型场景中,上半部分将设备数据保存到特定于设备的缓冲区,调度其下半部分,然后退出:此操作非常快。然后下半部分执行任何其他需要的工作,例如唤醒进程、启动另一个 I/O 操作等等。此设置允许上半部分在下半部分仍在工作时服务新的中断。
但是如果中断是由下半部分在更安全的时间处理的,那么从逻辑上讲,当中断到来时,它必须等到下半部分找到一些更安全的时间来执行中断,这将限制系统并且必须等到中断处理完毕,例如:如果我正在做一个项目,以在温度高于特定限制时给出 LED 闪烁指示,在这种情况下,如果在一些安全时间可用时完成中断处理(根据下半部分概念),那么闪烁操作将被延迟...... .请澄清我的疑问,所有的中断是如何处理的????
【问题讨论】:
-
这对于课堂/培训课程来说似乎是一个完美的问题,对于 SO 来说并不多。
-
抱歉从我的问题@Gerhardh 中删除了“C”标签
标签: linux interrupt-handling top-halves