jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:1066回复:0

内核提供的库函数好像有问题(fiq相关)

楼主#
更多 发布于:2004-09-22 10:19
内核快速中断处理函数的文件中,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 }

我在驱动中调用这个函数试就出错了!



怎么回事啊?



游客

返回顶部