linux - 中断句柄
问题描述
在<<understanding Linux kernel>>中提到,当中断处理程序运行时,相应的IRQ行会被暂时忽略。所以我想知道为什么IRQ线需要被忽略,要保护什么?谢谢。
换句话说,为什么“在相应的中断处理程序终止之前不应该发生中断”。
解决方案
如果是电平触发中断,则至少在其源被处理程序清除之前必须忽略它,否则中断会重复发生,直到堆栈溢出。并且不管电平触发还是边沿触发,在特定的中断处理程序仍在处理中断时重新进入通常是没有好处的;无论如何,实际的中断程序(上半部分)应该很短。另见上半部分和下半部分概念说明。
推荐阅读
- c# - 在实体 context.cs 中维护自定义代码自动创建的代码
- c++ - 读取、写入和 as_bytes 函数
- vuejs2 - Element UI 对话框组件第一次可以打开,第二次打不开
- macos - 在 Mac (Catalina) 上安装 Azure 存储资源管理器不起作用
- qt - 自定义 QQuickPaintedItem 中的渲染质量差
- javascript - 如何在 Javascript 中连接对象和数组?
- python - 如何让我的函数处理异常?
- r - igraph,创建网络图
- python - 用单个标签替换字符串中与列表中的条目匹配的任何单词(python)
- sql - 将两个不同的表与公共列上的公共第三个表连接起来