| 发表于:2008-01-14 18:29:04 楼主 |
小弟最近在弄一个网卡的驱动时,碰到了一个中断申请的问题,具体的情况大致如下: 网卡是nxp的bgw200,网卡通过spi线与pxa255相连,bgw200会产生外部中断,外部中断线与pxa255的一个gpio引脚(gpio16_pwm0)连到了一起,下面是具体的申请中断和有关dma通道的代码. set_gpio_mode(gpio16_pwm0 ¦ gpio_in); //gpio16作为接收外部中断的引脚 grer0 ¦=0x00010000; //观察上升沿是否有中断产生 utmp=request_irq(irq_gpio(gpio16_pwm0),phghhalspi2s2minthandler,sa_shirq,"extclkssp", (void*)(phwparams-> pvdata_mbint));//该函数返回是0,说明申请成功了。 ntmp = pxa_request_dma("ssprx", dma_prio_medium, phghhalspi2dmas2mcallback, (void*)(phwparams));//接收dma,返回了5,说明用了5号dma通道。 ntmp = pxa_request_dma("ssptx", dma_prio_medium, phghhalspi2dmam2scallback, (void*)(phwparams));//发送 dma,返回了4,说明用了4号dma通道。 结果在外部中断产生时(这个我肯定已经产生),没有进入中断服务程序,现在问题如下: 我看pxa255的datasheet上icmr(中断屏蔽寄存器)只能屏蔽0-31号中断,那么我这个中断号是39也就是((irq_gpio(gpio16_pwm0))的中断怎么办啊?这个39号中断和0-31号的中断有什么区别吗?要进入中断服务程序,还有什么需要设置的吗? |
|
|
|
|