中断标志位 IRQF_ONESHOT

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的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏源码之家

DZ重置ucenter密码的解决方法

15350
来自专栏中国白客联盟

Android动态调试(三)Xposed hook

14420
来自专栏Python小屋

使用Python批量提取并保存docx文档中的图片

如果实在看不懂上面的代码,但是又有同样的功能需要,可以把test.docx文件复制一份并把扩展名改为zip,文件名为“test_副本.zip”,然后解压缩,可以...

25420
来自专栏郭耀华‘s Blog

linux下安装git提示”无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够)“

如图所示,输入命令:apt-get install git后提示权限不够 解决方法,在命令前加 sudo即可 sudo apt-get install git ...

43860
来自专栏Timhbw博客

Centos安装PHP的IMAP模块

2017-04-1612:32:42 发表评论 353℃热度 学习记录一些 Linux 上的东西: ? 1.首先 ssh 连接上你的服务器:然后执行以下代码:...

40040
来自专栏不想当开发的产品不是好测试

多次grep 没有看到输出

tail -f xxx.log | grep aaaa | grep bbbb 发现没有日志输出 但log中的那条记录包含aaaa 和 bbbb,就是说tail...

24480
来自专栏移动端周边技术扩展

github中存放预览网页

9010
来自专栏Java成神之路

Idea_学习_09_Idea 方法自动生成参数默认名

生成方法后,还空着参数,可以使用 ctrl + alt + 空格 ,列出参数,然后选择参数即可。

13740
来自专栏喵了个咪的博客空间

PhalApi-RabbitMQ基于PhalApi专业队列拓展

PhalApi-RabbitMQ基于PhalApi专业队列拓展 ? 前言 RabbitMQ一直都是队列中的标杆,这次有幸PhalApi也能啃上RabbitMQ真...

32670
来自专栏pangguoming

使用 nvm 管理不同版本的 node 与 npm

使用 nvm 管理不同版本的 node 与 npm 补充说明:Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启...

58870

扫码关注云+社区

领取腾讯云代金券