以下是一个统计中断时间间隔的中断服务程序。
irqreturn_t short_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static long mytime=0;
static int i=0;
struct net_device *dev=(struct net_device *)dev_id;
if(i==0){
mytime=jiffies;
}else
if(i<20){
mytime =jiffies- mytime;
printk("Request on IRQ %d time %d\n",irq , mytime);
mytime=jiffies;
printk("Interrupt on %s -----%d \n",dev->name,dev->irq);
}
i++;
return IRQ_HANDLED;
}
这个函数实现的只是对两次发生中断的时间间隔的统计,时间单位是毫秒
irqreturn_t short_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static long mytime=0;
static int i=0;
struct net_device *dev=(struct net_device *)dev_id;
if(i==0){
mytime=jiffies;
}else
if(i<20){
mytime =jiffies- mytime;
printk("Request on IRQ %d time %d\n",irq , mytime);
mytime=jiffies;
printk("Interrupt on %s -----%d \n",dev->name,dev->irq);
}
i++;
return IRQ_HANDLED;
}
这个函数实现的只是对两次发生中断的时间间隔的统计,时间单位是毫秒