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

Linux中的中断是怎样处理的

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq(),7 d" ]  ]/ y( i- g
1 g7 u! T  M' R) J
request_irq()的原型为:# Y- Z& B! R) J* Z9 }/ p! w
& s( ], A1 J+ ^5 W" @
int request_irq(unsigned int irq,
  V, _* l- m4 @' p8 I4 S8 x% X6 k2 i
4 Q  _! b7 t8 E" V2 c# u4 C+ W& [void (*handler)(int irq, void *dev_id, struct pt_regs *regs),5 ]% l- ^* B. j% H) w" P$ S

8 z9 k0 q# F8 p9 h* |- y* j, l- kunsigned long irqflags,6 E/ i( N* ~  V8 l) P; o
0 n5 ?, c/ N# Z" D3 u# b+ k
const char * devname,) Y) Y; z4 Z" Q5 g9 ]8 M$ S( d7 N

( y" h# N# q" mvoid *dev_id);1 z3 `/ {: Q, A" q4 e. c* e
6 x4 J) C, r' E) w" I1 v' c
irq是要申请的硬件中断号;
/ D1 b- T( f5 h( d: w4 r# \
, W" h4 f+ M4 L* z+ H8 N9 fhandler是向系统登记的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数,dev_id参数将被传递;8 l3 l2 Y2 @7 R! @$ o; u3 M
, g, r& f; ~. E  Q+ H5 i1 x# t
irqflags是中断处理的属性,若设置SA_INTERRUPT,标明中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程 序不屏蔽;若设置SA_SHIRQ,则多个设备共享中断,dev_id在中断共享时会用到,一般设置为这个设备的device结构本身或者NULL。( m( D& F; N4 k9 k8 i3 ~( r

0 m- Z& M2 c" G  Tfree_irq()的原型为:- B2 m8 C  Q- e; h$ Y+ m
7 K8 k: [4 O& C' H" O4 C
void free_irq(unsigned int irq,void *dev_id);
7 L3 X; R, W6 D4 z# x& v0 l4 ]. o4 `7 k% O2 ~( d
游客,如果您要查看本帖隐藏内容请回复
. Y: N6 r! c- Z
1 X* d- d0 C% `+ ?& W! h1 V
" L# d( z, E; ^' j* q6 q: {

. y! r3 P8 L/ r, ~( i) D* _1 L- X8 g% b% P8 B3 |$ F  f
' }8 G4 h8 \0 s% Z  z* P6 _

该用户从未签到

2#
发表于 2019-8-22 18:26 | 只看该作者
谢谢楼主分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 23:26 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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