问题:有关申请irq问题
编译驱动遇到的问题在代码中有包含以下头文件:
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <asm-arm/arch-s3c2410/irqs.h>
#include <linux/irq.h>
相关代码:
set_external_irq(HPI_INT,EXT_LOWLEVEL,GPIO_PULLUP_DIS);
if(0!=request_irq(HPI_INT,&hpi_interrupt,SA_SHIRQ,"hpi",hpi_dev)){
printk("hpi request_irq failed...");
goto fail_request_irq;
为什么编译的时候还会出现如下问题:
337: error: implicit declaration of function ‘set_external_irq’
337: error: ‘EXT_LOWLEVEL’ undeclared (first use in this function)
337: error: (Each undeclared identifier is reported only once
337: error: for each function it appears in.)
337: error: ‘GPIO_PULLUP_DIS’ undeclared (first use in this function)
338: error: ‘SA_SHIRQ’ undeclared (first use in this function)
338: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
还有
unsigned char a1,a2;
outb(a1,hpi_dev->hpi_vbase+0x1c);
outb(a2,hpi_dev->hpi_vbase+0x1e);
会出现如下警告:
warning: passing argument 2 of ‘outb’ makes integer from pointer without a cast
希望各位大牛能帮帮忙哈,感激不尽 set_external_irq 不是kernel标准函数,你需要在其他文件里面找。
其他错误也一样。
SA_SHIRQ 已经不支持了,用 IRQF_SHARED
GenIRQ 被 merge 以后,中断处理函数不需要接受 struct pt_regs *
作为参数了,所以 hpi_interrupt 要修改
outb() 第二个参数是指针,检查 hpi_dev->hpi_vbase 的类型!
页:
[1]