社区
驱动开发/核心开发
帖子详情
request_irq返回-22是什么回事
jiuge1989
2011-10-23 08:58:30
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,(void *)i);
搞了好几天了,都没弄出来。求大牛帮忙!!
...全文
1326
13
打赏
收藏
request_irq返回-22是什么回事
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,(void *)i); 搞了好几天了,都没弄出来。求大牛帮忙!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zpershuai1989
2013-11-01
打赏
举报
回复
请问你的-16解决啦吗 我的也出现这个问题
jjlmonkey
2011-10-25
打赏
举报
回复
应该是触发中断方式没有设置,如果是共享中断,两个中断方式应该设置一致。
ezword
2011-10-24
打赏
举报
回复
看不出来,自己打印下各个参数比较下吧
jiuge1989
2011-10-24
打赏
举报
回复
哪个参数不对哈?求解
ezword
2011-10-24
打赏
举报
回复
参数不对
jiuge1989
2011-10-24
打赏
举报
回复
[Quote=引用 9 楼 zhangzhaocap 的回复:]
-16表示Device or resource busy
可能的你的IRQ已经有其它内核代码已经申请了。
[/Quote]
但已经设为IRQF_SHARED中断共享了啊
jiuge1989
2011-10-24
打赏
举报
回复
[Quote=引用 8 楼 ezword 的回复:]
明显4楼那是有问题的,&i每次都一样。改成&button_irqs[i].name呢?
[/Quote]
给buttons_interrupt传的是i,不是name.所以不能改为&button_irq[i].name
皮CaPr
2011-10-24
打赏
举报
回复
-16表示Device or resource busy
可能的你的IRQ已经有其它内核代码已经申请了。
ezword
2011-10-24
打赏
举报
回复
明显4楼那是有问题的,&i每次都一样。改成&button_irqs[i].name呢?
jiuge1989
2011-10-24
打赏
举报
回复
[Quote=引用 4 楼 lq651659889 的回复:]
引用楼主 jiuge1989 的回复:
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,(void *)i);
搞了好几天了,都没弄出来。求大牛帮忙!!
最后那个参数(void *)&i
[/Quote]
更改之后,返回却是-16.
xg1410
2011-10-24
打赏
举报
回复
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,(void *)i);
的最后一个参数是buttons_interrupt函数的第二个参数。
ezword
2011-10-24
打赏
举报
回复
按楼上的应该不对,应该改成以下形式
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,&button_irqs[i].name);
lq651659889
2011-10-24
打赏
举报
回复
[Quote=引用楼主 jiuge1989 的回复:]
request_irq(button_irqs[i].irq,buttons_interrupt,IRQF_SHARED,button_irqs[i].name,(void *)i);
搞了好几天了,都没弄出来。求大牛帮忙!!
[/Quote]
最后那个参数(void *)&i
[Q&A23101]调用 devm_
request
_threaded_
irq
() 函数申请中断
返回
-
22
如何解决调用 devm_
request
_threaded_
irq
() 函数申请中断
返回
-
22
linux内核 sin头文件,Linux内核中中断
request
_
irq
详解--中断共享问题解决
。函数原型如下:2.4 内核int
request
_
irq
(unsignedint
irq
,void (*handler)(int,void*,structpt_regs*),unsignedlongfrags,constchar*device,void*dev_id);2.6 内核
request
_
irq
(unsignedint
irq
,
irq
_handler_thandler,unsignedlo...
request
_
irq
()
原文地址:http://blog.csdn.net/wealoong/article/details/7566546 一、中断注册方法 在Linux内核中用于申请中断的函数是
request
_
irq
(),函数原型在Kernel/
irq
/manage.c中定义: int
request
_
irq
(unsigned int
irq
,
irq
_handler_t handler,
linux关机api,中断机制 – Linux内核API
request
_
irq
request
_
irq
函数功能描述:函数
request
_
irq
( )在实现过程中调用了函数
request
_threaded_
irq
( ),实现动态地申请注册一个中断。函数
request
_threaded_
irq
( )首先对传入的参数进行安全检查,根据传入的
irq
号获得数组
irq
_desc中以
irq
为下标的元素,然后动态地创建一个
irq
action描述符,根据传入的参数初始化新生成的
irq
actio...
Linux驱动:内核的中断机制之二--
request
_threaded_
irq
函数使用
内核开始支持中断线程(threaded interrupt handler),使用接口
request
_threaded_
irq
;原来的
request
_
irq
也继续支持。使用时可根据实际情况选择合适的接口,可使用
request
_threaded_
irq
的地方没必要继续使用
request
_
irq
加tasklet/workqueue或者内核线程的方式;如果中断处理简单时也不要执着使用
request
_threaded_
irq
。 下面先贴上2.6.35内核代码中这两个接口声明的代码,然后转贴一点资料。最后把添加thr
驱动开发/核心开发
21,619
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章