request_threaded_irq()参数

 

int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn,

unsigned long irqflags, const char *devname, void *dev_id) ;
  • irq:表示申请的中断号。

  • handler:表示中断服务例程。

  • thread_fn:中断线程化,此处传递的是NULLNULL表示没有中断线程化。

    Linux 中,中断具有最高的优先级。不论在任何时刻,只要产生中断事件,内核将立即执行相应的中断
    处理程序,等到所有挂起的中断和软中断处理完毕后才能执行正常的任务,因此有可能造成实时任务得不
    到及时的处理。中断线程化之后,中断将作为内核线程运行而且被赋予不同的实时优先级,实时任务可以
    有比中断线程更高的优先级。这样,具有最高优先级的实时任务就能得到优先处理,即使在严重负载下仍
    有实时性保证。but,并不是所有的中断都可以被线程化,比如时钟中断,主要用来维护系统时间以及定时器
    等,其中定时器是操作系统的脉搏,一旦被线程化,就有可能被挂起,这样后果将不堪设想,所以不应当
    被线程化。 

     

  • irqflags:表示中断标志位。

  • devname:表示请求中断的设备的名称。

  • dev_id: 对应于request_irq()函数中所传递的第五个参数,可取任意值,但必须唯一能够代表发出中断请求的设备,通常取描述该设备的结构体。 共享中断时所用。

 

status = request_threaded_irq(cdfinger->irq, (irq_handler_t)cdfinger_interrupt_handler_up, NULL,
IRQF_TRIGGER_RISING | IRQF_ONESHOT , "cdfinger-irq", cdfinger);

 

  

 

转载于:https://www.cnblogs.com/pw-fan/p/11244740.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值