request_irq函数

#include  <linux/sched.h> 
int request_irq(unsigned int irq, 
void (*handler)(int irq,void dev_id,struct pt_regs *regs), 
unsigned long flags, 
const char *device, 
void *dev_id); 
void free_irq(unsigned int irq, void *dev_id); 
参数说明: 
  参数irq表示所要申请的硬件中断号。handler为向系统登记的中断处理子程序,中 
断产生时由系统来调用,调用时所带参数irq为中断号,dev_id为申请时告诉系统的设备 
标识,regs为中断发生时寄存器内容。device为设备名,将会出现在/proc/interrupts 
文件里。flag是申请时的选项,它决定中断处理程序的一些特性,其中最重要的是中断 
处理程序是快速处理程序(flag里设置了SA_INTERRUPT)还是慢速处理程序(不设置SA 
_INTERRUPT),快速处理程序运行时,所有中断都被屏蔽,而慢速处理程序运行时,除 
了正在处理的中断外,其它中断都没有被屏蔽。在LINUX系统中,中断可以被不同的中断 
处理程序共享,这要求每一个共享此中断的处理程序在申请中断时在flags里设置SA_SH 
IRQ,这些处理程序之间以dev_id来区分。如果中断由某个处理程序独占,则dev_id可以 
为NULL。request_irq返回0表示成功,返回-INVAL表示irq>15或handler==NULL,返回- 
EBUSY表示中断已经被占用且不能共享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
devm_request_irq函数是Linux内核中的一个函数,用于请求并注册一个中断处理程序。它的函数原型如下: int devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id); 该函数request_irq函数类似,但是使用了devm_前缀,表示该函数是通过设备模型管理的。dev参数是指向设备结构体的指针,irq参数是中断号,handler参数是中断处理函数,irqflags参数是中断标志,devname参数是设备名称,dev_id参数是设备标识。 通过调用devm_request_irq函数,可以方便地请求并注册一个中断处理程序,并且在设备释放时自动释放中断资源,避免了手动释放中断资源的繁琐过程。 #### 引用[.reference_title] - *1* [linux devm_request_threaded_irq 函数接口说明](https://blog.csdn.net/lizhijun_buaa/article/details/130843035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux 的中断](https://blog.csdn.net/u014134180/article/details/125036846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Linux 驱动开发】内核中断](https://blog.csdn.net/weixin_43589750/article/details/126282901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值