arm9200的中断问题。

发布于 2022-09-18 19:10:13 字数 3838 浏览 9 评论 0

我使用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的输入上,是做基本输出用的,我现在把它配置成中断用,可就是不成功,是什么原因呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一江春梦 2022-09-25 19:10:13

printk直接比较寄存器配置吧

[ 本帖最后由 Roemer 于 2009-3-10 19:07 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文