Chinaunix
标题:
irq
[打印本页]
作者:
solinger
时间:
2012-10-17 15:53
标题:
irq
insmod irq=9,interface=hello cat/proc/interrupte 查看中断,一直是0 ,怎么触发中断?
#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
static int irq;
static char *interface;
module_param(interface,charp,0644);//表示这个参数要在插入模块时给出值
module_param(irq,int,0644);
int dev_id=127;
static irqreturn_t myinterrupt(int irq,void *dev_id)//中断服务程序
{
static int count = 0;
if(count<10) {
printk("interrupt :%d,%d\n",irq,*(int *)dev_id);
count++;
}
return IRQ_NONE;
}
static int __init myirqtest_init(void)
{
printk("my module worked\n");
if(request_irq(irq,&myinterrupt,IRQF_SHARED,interface,&dev_id)){//注册中断
printk(KERN_ERR "myirqtest:cannot register IRQ %d\n",irq);
return -EIO;
}
printk("%s request on irq %d success ,dev_id is %d\n",interface,irq,dev_id);
return 0;
}
static void __exit myirqtest_exit(void)
{
printk("unloading my module\n");
free_irq(irq,&irq);
printk("freeing IRQ %d\n",irq);
}
module_init(myirqtest_init);
module_exit(myirqtest_exit);
MODULE_LICENSE("GPL");
~
~
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2