Chinaunix首页 | 论坛 | 博客
  • 博客访问: 406579
  • 博文数量: 83
  • 博客积分: 2011
  • 博客等级: 大尉
  • 技术积分: 741
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-04 22:51
文章分类

全部博文(83)

文章存档

2009年(83)

我的朋友

分类: LINUX

2009-08-13 22:43:04

编译驱动的时候有以下错误:
/home/zilong/mini2440/driver/key/key.c:29: error: 'IRQ_TYPE_EDGE_FALLING' undeclared here (not in a function)
/home/zilong/mini2440/driver/key/key.c: In function '__exittest':
/home/zilong/mini2440/driver/key/key.c:132: warning: return from incompatible pointer type
make[2]: *** [/home/zilong/mini2440/driver/key/key.o] Error 1
make[1]: *** [_module_/home/zilong/mini2440/driver/key] Error 2
make[1]: Leaving directory `/home/zilong/mkkernel/linux-2.6.24'
make: *** [default] Error 2

看到'IRQ_TYPE_EDGE_FALLING' 我傻了眼了,我的程序中没有用到这个啊,只有IRQT_FALLING,

我在内核源代码目录下

/include/asm-arm: grep "IRQT_FALLING" * -R

[root@localhost asm-arm]# grep "IRQT_FALLING" * -R
arch-pnx4008/irqs.h:IRQT_HIGH, IRQT_HIGH, IRQT_FALLING, IRQT_HIGH, /* 36,37,38,39 */  \
arch-pxa/idp.h:#define TOUCH_PANEL_IRQ_EDGE             IRQT_FALLING
irq.h:#define IRQT_FALLING      (__IRQT_FALEDGE)

 

查看内容:
#define __IRQT_FALEDGE  IRQ_TYPE_EDGE_FALLING
#define __IRQT_RISEDGE  IRQ_TYPE_EDGE_RISING
#define __IRQT_LOWLVL   IRQ_TYPE_LEVEL_LOW
#define __IRQT_HIGHLVL  IRQ_TYPE_LEVEL_HIGH

#define IRQT_NOEDGE     (0)
#define IRQT_RISING     (__IRQT_RISEDGE)
#define IRQT_FALLING    (__IRQT_FALEDGE)

原来碟影重重啊

在/include/linux/下:

 

[root@localhost linux]# grep "IRQ_TYPE_EDGE_FALLING" * -R
irq.h:#define IRQ_TYPE_EDGE_FALLING     0x00000002      /* Edge falling type */
irq.h:#define IRQ_TYPE_EDGE_BOTH (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)

得到答案了,原来的是我的程序没有包含 #include


 


阅读(5966) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~