Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176884
  • 博文数量: 40
  • 博客积分: 1573
  • 博客等级: 上尉
  • 技术积分: 385
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-09 22:50
个人简介

忙得不会思考了!!!!!!

文章分类

全部博文(40)

文章存档

2015年(2)

2014年(1)

2011年(15)

2010年(3)

2009年(19)

我的朋友

分类: 嵌入式

2009-10-19 14:23:07

在三星s3c2440的板子上,利用gpio模拟一个设备,在给这个设备注册中断的时候碰到了问题。问题出在request_irq()上,经测试发现,错误是-22,查看《Linux程序设计》(第三版),发现这个错误是-EINVAL,在网上查这个EINTVAL,发现了这么个网址:,里面指出了这个宏的定义还有在内核包里的位置。出现了-EINVAL的错误就意味着申请的irq越界了,由于我申请的irq是IRQ_EINT3,在内核包中定义的位置是:kernel-2.6.13/include\asm-arm/arch-s3c2410/irqs.h  ,经过分析,这个中断号是19。在终端中用cat /proc/interrupts查看,没有19号中断,那为什么没有申请成功呢?
想到我注册的是共享的中断,前提是中断线还没有被注册成快速中断,从interrupts中看到显然还没有,那就是别的什么原因,查了资料发现要注册成共享的,参数中的dev_id不能为null,实践了一下果然如此。
阅读(2256) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~