天嵌 ARM开发社区

 找回密码
 注册
查看: 2820|回复: 2

2440外部中断为何会丢失?

[复制链接]
nice026 发表于 2012-10-15 16:26:59 | 显示全部楼层 |阅读模式
---1、天嵌的核心板,自己的底板和程序
---2、使用EINT9(GPG1)为一外部中断源的输入管脚
---3、初始化配置
   {
     ……
   //GPG1选择为EINT9、端口上拉
   reg_value = __raw_readl(S3C2410_GPGCON);
      reg_value |=(1<<3);
      reg_value &=~(1<<2);
     __raw_writel(reg_value,S3C2410_GPGCON);
     reg_value = __raw_readl(S3C2410_GPGUP);
     reg_value |=(1<<1);
     __raw_writel(reg_value, S3C2410_GPGUP);

    //设置EINT9为上升沿触发
    reg_value = __raw_readl(S3C2410_EXTINT1);
    reg_value |=(1<<6);           
     reg_value &=~(1<<5);
      __raw_writel(reg_value,S3C2410_EXTINT1);

   // 清除外部中断EINTPEND;使能外部中断EINTPEND;清除源中断SRCPND;
    //取消中断屏蔽INTMSK;清除中断控制器中断INTPND;
      reg_value =__raw_readl(S3C2410_EINTPEND);
      reg_value |=0x01<<9;//23--clear eintpend
       __raw_writel(reg_value,S3C2410_EINTPEND);

      reg_value = __raw_readl(S3C2410_EINTMASK);
      reg_value &=~(0x01<<9);//23--enable extint
        __raw_writel(reg_value,S3C2410_EINTMASK);

       reg_value =__raw_readl(S3C2410_SRCPND);
       reg_value |=(0x01<<5);
       __raw_writel(reg_value,S3C2410_SRCPND);


        reg_value = __raw_readl(S3C2410_INTMSK);
       reg_value &=~(1<<5);
        __raw_writel(reg_value,S3C2410_INTMSK);

         reg_value =__raw_readl(S3C2410_INTPND);
         reg_value |=(0x01<<5);
         __raw_writel(reg_value,S3C2410_INTPND);

   ……
    }

---4、中断服务程序
  {
       ……
      disable_irq(IRQ_EINT9);
     ……
      enable_irq(IRQ_EINT9);
         reg_value =__raw_readl(S3C2410_EINTPEND);
        reg_value |=0x01<<9;

         __raw_writel(reg_value,S3C2410_EINTPEND);
         reg_value =__raw_readl(S3C2410_SRCPND);
         reg_value |=(0x01<<5);
         __raw_writel(reg_value,S3C2410_SRCPND);
         reg_value =__raw_readl(S3C2410_INTPND);
         reg_value |=(0x01<<5);
         __raw_writel(reg_value,S3C2410_INTPND);


        return 0;
   }
---5、用示波器看到EINT9管脚有时出现上升沿,但并没有触发中断,出现的概率还不小,不只是初始配置的原因还是中断程序里清除中断的问题?

亚瑟王 发表于 2012-10-15 17:02:41 | 显示全部楼层
你检查一下内核是否还有别的地方用到了这个EINT9的脚。
 楼主| nice026 发表于 2012-10-15 17:05:07 | 显示全部楼层
别的地方没用到这个管脚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-7-1 17:53 , Processed in 1.093750 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表