码迷,mamicode.com
首页 > 其他好文 > 详细

中断标志位 IRQF_ONESHOT

时间:2018-04-27 13:49:21      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:thread   lag   注册   mask   完整   rup   需要   有一个   硬件   

one shot本身的意思的只有一次的,结合到中断这个场景,则表示中断是一次性触发的,不能嵌套。对于primary handler,当然是不会嵌套,但是对于threaded interrupt handler,我们有两种选择,一种是mask该interrupt source,另外一种是unmask该interrupt source。

一旦mask住该interrupt source,那么该interrupt source的中断在整个threaded interrupt handler处理过程中都是不会再次触发的,也就是one shot了。这种handler不需要考虑重入问题。

具体是否要设定one shot的flag是和硬件系统有关的,我们举一个例子,比如电池驱动,电池里面有一个电量计,是使用HDQ协议进行通信的,电池驱动会注册一个threaded interrupt handler,在这个handler中,会通过HDQ协议和电量计进行通信。对于这个handler,通过HDQ进行通信是需要一个完整的HDQ交互过程,如果中间被打断,整个通信过程会出问题,因此,这个handler就必须是one shot的。

中断标志位 IRQF_ONESHOT

标签:thread   lag   注册   mask   完整   rup   需要   有一个   硬件   

原文地址:https://www.cnblogs.com/linhaostudy/p/8961042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!