阅读:1103回复:0
内核提供的库函数好像有问题(fiq相关)
内核快速中断处理函数的文件中,FIQ_START的值为64,那么在设计驱动时调用函数enable_fiq(fiq)时,他就会间接调用了enable_irq(fiq+FIQ_START)函数。其中enable_irq的参数会大于等于64,这样就出错了,因为下面数组irq_desc[]最大包含30个元素(struct irqdesc irq_desc[NR_IRQS]; NR_IRQS=30)
void enable_irq(unsigned int irq) 87 { 88 unsigned long flags; 89 90 spin_lock_irqsave(&irq_controller_lock, flags); 91 irq_desc[irq].probing = 0; 92 irq_desc[irq].triggered = 0; 93 irq_desc[irq].enabled = 1; 94 irq_desc[irq].unmask(irq); 95 spin_unlock_irqrestore(&irq_controller_lock, flags); 96 } 我在驱动中调用这个函数试就出错了! 怎么回事啊? |
|