基于Web的MCF5249数据采集系统的设计
#includelinux/interrupt.h>
#includeasm/irq.h>
#define ADC_IRQ(128+63)//定义中断号
#define MBAR2_ADDR 0x8000000
#define AD_CONFIG 0x402
#define AD_VALUE 0x406
/*定义中断处理函数*/
void adirq_interrupt(int irq,void *d,struct pt_regs *regs){
在此读取A/D转换的值并存入队列中。
}
/*设备初始化函数*/
int adirq_init(){
int result;
unsigned short adc_irq;
adc_irq=ADC_IRQ;
result=request_irq(adc_irq,adirq_interrupt,SA_INTERRUPT,5249_adirq NULL);//注册中断
if(result= = -1)
{printk(“Can't get assigned %d”adc_irq);
return result;}
return 0;
}
中断服务程序的添加方法如下:
①编辑uClinux/drivers/char目录下的mem.c,添加“adirq_init();”;
②编辑此目录下的Makefile加入“obj-y+=m5249_adirq.o”;
③编译(make)。
评论