bl20020825 发表于 2007-5-24 10:33

为什么在我的驱动里申请不了中断啊??

大家好,我现在在目标板(cpu是s3c2410)上写驱动,在跑驱动时中断总是申请不了,具体代码如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;request_irq(&nbsp;IRQ_EINT0,EINT0_ISR,SA_INTERRUPT,&quot;EINT0&quot;,NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(ret&nbsp;&lt&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEBUG_K(&quot;the&nbsp;EINT0&nbsp;is&nbsp;failed
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEBUG_K(&quot;ret&nbsp;is&nbsp;%d
&quot;,(-ret));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;over;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;DEBUG_K(&quot;have&nbsp;got&nbsp;the&nbsp;irq&nbsp;EINT0
&quot;);<br />其中EINT0_ISR定义如下:<br />static&nbsp;void&nbsp;EINT0_ISR(int&nbsp;irq,&nbsp;void&nbsp;*&nbsp;dev_id,struct&nbsp;pt_regs&nbsp;*&nbsp;regs);<br />请各位大侠帮个忙啊!

bl20020825 发表于 2007-5-24 10:41

还有,上面的ret返回是22

还有,上面的ret返回是22,表示(invalid&nbsp;argument),但我申请函数的参数应该没错啊!请各位帮帮忙!

csdeny 发表于 2007-6-4 18:08

re

得看你的内核版本,2.6和2.4有些差别的,比如2.6下ISR的类型是irqreturn_t,并且不推荐使用SA_INTERRUPT
页: [1]
查看完整版本: 为什么在我的驱动里申请不了中断啊??