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 打赏 收藏 转发到动态 举报
写回复
用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

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧