emperor1997
驱动牛犊
驱动牛犊
  • 注册日期2007-11-07
  • 最后登录2011-04-19
  • 粉丝0
  • 关注0
  • 积分65分
  • 威望37点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2289回复:2

关于linux中断的一个奇怪问题

楼主#
更多 发布于:2009-07-06 11:42
     最近编写的一个DMA驱动(CPU:powerpc405ex),是将framebuffer的数据不断重复的向协处理器(FPGA)传输,所以在open()时设置了DMA中断,传输流程如:“open()申请中断和设置DMA寄存器——>传输完framebuffer数据,DMA中断触发——>中断处理函数重新设置好DMA——>传输完framebuffer数据,DMA中断重新触发——>不断重复传输”,现在的问题是当我把所有需要的所有驱动都编译进内核时,DMA在open执行完后就不再传输,但当我把其他驱动不全部编进内核(如把USB或IIC的驱动删掉),DMA就能一直正常传输,初步判断是中断的问题,用cat /proc/interrupts显示如下(DMA驱动是fb_dma):

所有驱动都编进内时(不能传输):
           CPU0      
 17:          3   UIC   Level     dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
 19:          0   UIC   Level     dwc_otg_plbdma
 20:         23   UIC   Level     MAL TX EOB
 21:         38   UIC   Level     MAL RX EOB
 22:          0   UIC   Level     MAL SERR
 23:          0   UIC   Level     MAL TX DE
 24:          0   UIC   Level     MAL RX DE
 25:          0   UIC   Level     EMAC
 26:        500   UIC   Level     serial
 27:          1   UIC   Level     IBM IIC
 31:          0   UIC   Level     IBM IIC
 32:        102   UIC   Edge      fb_dma
BAD:          0
当把USB的驱动不编进内核时(能正常传输):
           CPU0      
 17:         23   UIC   Level     MAL TX EOB
 18:         57   UIC   Level     MAL RX EOB
 19:          0   UIC   Level     MAL SERR
 20:          0   UIC   Level     MAL TX DE
 21:          0   UIC   Level     MAL RX DE
 22:         10   UIC   Level     IBM IIC
 23:          0   UIC   Level     IBM IIC
 24:          0   UIC   Level     EMAC
 25:        153   UIC   Level     fb_dma
 26:        350   UIC   Level     serial
BAD:          0
大家可以注意到我的fb_dma在上面第一次是Edge触发,在第二次变成了Level触发,不知道哪位高手能够给我指引,已经好几天了。
程序员
emperor1997
驱动牛犊
驱动牛犊
  • 注册日期2007-11-07
  • 最后登录2011-04-19
  • 粉丝0
  • 关注0
  • 积分65分
  • 威望37点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-07-06 11:45
再追加一个信息:我申请中断的代码如下:
      irq = irq_create_mapping(NULL, 13);
      ret = request_irq(irq, handler_Dma1Done, IRQF_DISABLED, "fb_dma", &dev_id);
程序员
zsw79923
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2009-11-05
  • 粉丝1
  • 关注1
  • 积分2分
  • 威望25点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-11-05 23:45
你的出错信息是什么呢?知道是在哪里停掉的吗?把出错信心打出来看看
一片云
游客

返回顶部