编写Linux中断驱动时,由于头文件缺失引起的编译错误

转载地址:http://www.cnblogs.com/TaigaCon/archive/2012/11/03/2752614.html

内核版本:2.6.39

错误:

  error:implicit declaration of function 'request_irq'

  error:implicit declaration of function 'free_irq'

解决方法:

  #include <linux/interrupt.h>

 

错误:

  error: 'IRQT_BOTHEDGE' undeclared (first use in this function)

解决方法:

  #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)
  #define IRQT_BOTHEDGE (__IRQT_RISEDGE|__IRQT_FALEDGE)
  #define IRQT_LOW (__IRQT_LOWLVL)
  #define IRQT_HIGH (__IRQT_HIGHLVL)
  #define IRQT_PROBE IRQ_TYPE_PROBE

 

错误:

  error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
  error: implicit declaration of function 'signal_pending'
  error: implicit declaration of function 'schedule'

解决方法:

  #include <linux/sched.h>

 

错误:

  error:implicit declaration of function 's3c2410_gpio_getpin'

解决方法:

  #include <linux/gpio.h>

 

另外还有其他的一些问题解决方法可以参考:

asm/arch/regs-gpio.h: No such file or directory:

解决方法:

#include <mach/regs-gpio.h>

class_create报错:

解决方法:

static struct class *seconddrv_class;
static struct class_device *seconddrv_class_dev;

seconddrv_class = class_create(THIS_MODULE, "second_drv");
//class_device_create ======> device_create
seconddrv_class_dev = device_create(seconddrv_class, NULL, MKDEV(major, 0), NULL, "buttons");

// class_device_unregister ======> device_unregister
device_unregister(seconddrv_class_dev);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值