免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3147 | 回复: 1
打印 上一主题 下一主题

arm9200的中断问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-10 17:44 |只看该作者 |倒序浏览
我使用at91rm9200扩展DM9000,使用PA25作为DM9000的中断线,之前使用PA3做中断线,DM9000工作正常,但因为PA3是SPI的故障模式检测线,会导致我的SPI设备工作异常,现将其改为PA25,但怎么也不能中断,读DM9000的设备ID和申请中断都是正确的,可就是进不了中断程序,代码如下:
static int dmfe_open(struct net_device *dev)
{
        board_info_t * db = (board_info_t *)dev->priv;

        DMFE_DBUG(0, "dmfe_open", 0);

               //IRQ5中断初始化       
          AT91_SYS->PIOA_PDR = AT91C_PIO_PA25;                //disable PA25 IO mode
               AT91_SYS->PIOA_BSR = AT91C_PIO_PA25;                //set peripheral b function, IRQ2  

               AT91_SYS->PMC_PCER  = 1<<AT91C_ID_IRQ2;                //enable IRQ2 clock
               AT91_SYS->AIC_SMR[AT91C_ID_IRQ2] = 0x60;        //IRQ2 (上升沿)positive edge interrupt, level 0
               AT91_SYS->AIC_ICCR  = 1<<AT91C_ID_IRQ2;                // 中断清除命令寄存器 ack IRQ2      
        
               if(request_irq(AT91C_ID_IRQ2,&dmfe_interrupt,SA_INTERRUPT,dev->name,dev))
                return -EAGAIN;
               
        AT91_SYS->AIC_IECR  = 1<<AT91C_ID_IRQ2;                //enable IRQ2
                      
               // Initilize DM910X board
        dmfe_init_dm9000(dev);                                //初始化DM9000

                // Init driver variable
        db->dbug_cnt                 = 0;
        db->runt_length_counter = 0;
        db->long_length_counter = 0;
        db->reset_counter         = 0;

                // set and active a timer process
        init_timer(&db->timer);                        //初始化定时器
        db->timer.expires         = DMFE_TIMER_WUT * 2;
        db->timer.data                 = (unsigned long)dev;
        db->timer.function         = &dmfe_timer;                        //定时子程序
        add_timer(&db->timer);

        netif_start_queue(dev);

        return 0;
}
大家帮我看看可能有什么问题呢,同样的代码将其换成PA3(对应IRQ5)是可以的,是不是可能和我的PA26有关系呢,我的PA26之前是做干别的用,接到了74HC245的输入上,是做基本输出用的,我现在把它配置成中断用,可就是不成功,是什么原因呢?

论坛徽章:
0
2 [报告]
发表于 2009-03-10 19:05 |只看该作者
printk直接比较寄存器配置吧

[ 本帖最后由 Roemer 于 2009-3-10 19:07 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP