找回密码
 注册
关于网站域名变更的通知
查看: 388|回复: 1
打印 上一主题 下一主题

瞧瞧disable_irq与disable_irq_nosync的使用场景

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-22 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
disable_irq与disable_irq_nosync使用场景
1 Q! [% B/ T6 v" }5 y6 g2 u9 C$ q5 J& d) w
    Linux设备驱动,关于中断屏蔽有两个接口:disable_irq和disable_irq_nosync,该两接口使用场景如下:
3 H2 z( \8 Y8 `6 M. p. i" R1 h7 P; B: S) H
    1、disable_irq:在非中断处理函数中使用,会阻塞;
  l3 F. c( w2 G' L( U
4 H( Y6 y% s: P2 M    2、disable_irq_nosync:在中断处理函数中使用,不会阻塞;用于屏蔽相应中断;
1 {( r; [* I, C# \( n$ Q
: W* ~4 X7 ]/ R4 J 一、为什么要屏蔽中断?  
3 F3 D1 q/ R9 _$ _0 N: y# n+ z( L: Y# J' q5 h# l8 p; y5 [" D
    使能中断后,一旦触发中断,系统会进入中断处理函数;如果下一个中断触发的时候,前一个中断处理函数已经完成,这是理想状态,不会发生异常;如果前一个中断处理函数还未完成,那么就会导致中断嵌套。为了不出现中断嵌套,必须在中断处理函数中屏蔽中断,待中断处理完成后,再主动使能中断。
# ]+ \+ u" a) h1 i( R6 S) V. E3 j) A5 l/ e! P- k
二、disable_irq不能放在中断处理函数中
. B5 [8 H- f3 N7 X
游客,如果您要查看本帖隐藏内容请回复
; c( B  N- D# ^" j

; M7 x, U; D+ L! |8 O. L4 i; U. `0 V5 x9 i5 S; Q

5 G# R4 ]! x+ R5 A/ ~/ _7 {( M
7 t$ d! G' [+ z8 Z

! C8 k3 I1 x9 t" _4 V+ _) Q( B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:53 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表