关闭

void disable_irq(int irq); void disable_irq_nosync(int irq); void enable_irq(int irq)的区别

标签: 编程
2547人阅读 评论(0) 收藏 举报
分类:

调用这些函数中的任何一个都会更新可编程中断控制器(PIC)中指定中断的掩码,因而,这样就可以在所有的处理器上禁止或者启动 IRQ。对这些函数的调用是可以嵌套的――如果 disable_irq 被成功调用两次,在 IRQ 真正重新打开之前,需要执行两次 enable_irq 调用。从一个中断处理程序中调用这些函数是可以的,但是在处理某个 IRQ 时使能这个 IRQ,并不是一个好习惯。

首先enable_irq是使能IRQ.

disable_irq是禁止IRQ.不但会禁止给定的中断,而且也会等待当前正在执行的中断处理程序完成

 disable_irq_nosync 是立即返回的。这样,使用后者将会更快,但是可能会让你的驱动程序处于竞态下。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:127344次
    • 积分:1466
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:48篇
    • 译文:2篇
    • 评论:23条
    最新评论