request_threaded_irq

本文详细介绍了函数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要在内核线程中调用的函数
irqflags在驱动中是中断触发类型
devname 
dev_id 

输出参数:0表示成功执行,负数表示各种错误原因。

中断号:在驱动中,一般会由中断的gpio号得到,如 irq_num = gpio_to_irq(bdata->irq_gpio);

handler:中断处理函数,在驱动中一般这个参数是NULL,为NULL时使用默认的处理,这个相当于中断的上半段。

thread_fn:中断发生时,如果handler为NULL,就直接将thread_fn扔到内核线程中去执行。

irqflags:类似于IRQF_ONESHOT | IRQF_TRIGGER_LOW表示中断触发方式为低电平触发。

 

这个函数将中断线程化,中断将作为内核线程运行,可被赋予不同的实时优先级。在负载较高时,中断线程可以被挂起,以避免某些更高优先级的实时任务得不到及时响应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值