免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2276 | 回复: 5
打印 上一主题 下一主题

问一个中断细节方面的问题 [复制链接]

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
1 [报告]
发表于 2011-08-11 15:21 |只看该作者
看来“有人”就是我了,
对于3。我只是说。因为LEVEL中断的不可丢失性可以比较直接的MASK。不会产生影响。没其他意思。

论坛徽章:
0
2 [报告]
发表于 2011-08-11 15:27 |只看该作者
回复 2# smalloc


   
    如果是edge方式,为何就不能mask?不是说PIC可以latch吗?

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
3 [报告]
发表于 2011-08-11 18:51 |只看该作者
回复 3# lymickey


    没说不能MASK,你这个估计是在新版本中才开始允许EDGE嵌套的

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
4 [报告]
发表于 2011-08-11 19:06 |只看该作者
回复 1# lymickey


    问题一,LEVEL必须MASK,如果不MASK,将持续发送中断。通过软件阻止嵌套是低效行为。
实际情况是处理器不停的处理中断,不停的检测没有任何实际任务执行。
问题2,不是很清楚。这个如果是个通用构架,可能MASK对有些中断无效,或者不能完全关闭。可能是个保守设计。
另外即使MASK,也有可能其他处理器已经在处理这个类型中断。ULK在讲IRQ_INPROGRESS时说这时本次中断不执行,而是留个前面那个处理去执行。

论坛徽章:
0
5 [报告]
发表于 2011-08-11 23:51 |只看该作者
回复 5# smalloc


   我看的 2.6.30版本,对__do_IRQ()与handle_edge_irq看起来差不多,代码中有这样一段说明:
503         /*
504          * Edge triggered interrupts need to remember
505          * pending events.
506          * This applies to any hw interrupts that allow a second
507          * instance of the same irq to arrive while we are in do_IRQ
508          * or in the handler. But the code here only handles the _second_
509          * instance of the irq, not the third or fourth. So it is mostly
510          * useful for irq hardware that does not mask cleanly in an
511          * SMP environment.
512          */

看来这就是答案了~level的mask是你说的防止不断中断,而edge这里设计的是用在允许两次中断嵌套的环境下,当然也可以加一个mask也没啥影响。

但还有一个问题没想明白,在mask的情况下,为何还要有对IRQ_INPROGRESS的判断?在mask的情况下PIC根本发不出同一种类型的irq

论坛徽章:
0
6 [报告]
发表于 2011-08-13 21:35 |只看该作者
在mask的情况下PIC根本发不出同一种类型的irq
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
不是不发生,而是暂时忽略它,不让新来的同种类型的中断处理,等待旧的中断处理完,再处理刚才pending的中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP