linux驱动中关于disable_irq和enable_irq的用法问题

老衲开心用飘柔 2016-05-17 04:31:55
为什么执行disable_irq期间屏蔽掉的中断信号,会在我执行enable_irq后继续触发,我现在想,在屏蔽期间的所有中断,都不再触发,该怎么办,在线等,谢谢哪位帮看下~
...全文
2132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪头三小队长 2017-08-11
  • 打赏
  • 举报
回复
你关闭中断之后,中断状态只是暂存,而不是清除。如果你想要在关闭中断期间的所有中断以后也得不到响应,你只能挨个清除。
jklinux 2017-08-03
  • 打赏
  • 举报
回复
引用 楼主 a1028732302 的回复:
为什么执行disable_irq期间屏蔽掉的中断信号,会在我执行enable_irq后继续触发,我现在想,在屏蔽期间的所有中断,都不再触发,该怎么办,在线等,谢谢哪位帮看下~
具体情况是怎样的?用的是什么中断信号? 我也是经常这样用,有这种状况是硬件的中断信号太频繁了, 如有些按键的抖动, 如果disable_irq后,经过一段比较久的时间后再enable_irq这样就不会. 也有可能是你用的方案,厂家在内核里的清中断的操作没写好。曾经在一些垃圾方案商里遇到过,它有些外部中断控制器在内核里没驱动好.
melo_fang 2017-08-03
  • 打赏
  • 举报
回复
我也是新手,但是对于你说的“执行disable_irq期间屏蔽掉的中断信号,会在我执行enable_irq后继续触发“ 逻辑上来说,那就是存在一个类似于链表之类的容器把这些信号保存住了 我没有遇到过这种情况,感觉可以往这个里面抓一下。

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧