欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

s3c2440中断的编写有关问题

更新时间: 2014-01-05 03:14:43 责任编辑: Author_N1

 

S3C2440中断的编写问题
void __irq Eint0_Isr(void);

编写后出现这样的错误
fun.h:9: error: syntax error before "Eint0_Isr"

fun.h:9: warning: data definition has no type or storage class
查看了下这样的格式也是正确的啊,难道是编译器有问题?我是在linux下编写的

--参考方法--
编译器不认识 “__irq”
--参考方法--
参考一下代码:

#define _ISR_STARTADDRESS 0x33ffff00
 
#define U32 unsigned int
 
#define pISR_EINT0            (*(unsigned *)(_ISR_STARTADDRESS+0x20))
#define pISR_EINT1            (*(unsigned *)(_ISR_STARTADDRESS+0x24))
#define pISR_EINT2            (*(unsigned *)(_ISR_STARTADDRESS+0x28))
#define pISR_EINT4_7  (*(unsigned *)(_ISR_STARTADDRESS+0x30))
 
#define rSRCPND     (*(volatile unsigned *)0x4a000000)      //Interrupt request status
#define rINTMSK     (*(volatile unsigned *)0x4a000008)       //Interrupt mask control
#define rINTPND     (*(volatile unsigned *)0x4a000010)       //Interrupt request status
 
#define rGPBCON    (*(volatile unsigned *)0x56000010) //Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014) //Port B data
#define rGPBUP     (*(volatile unsigned *)0x56000018)  //Pull-up control B
 
#define rGPFCON    (*(volatile unsigned *)0x56000050) //Port F control
 
#define rEXTINT0   (*(volatile unsigned *)0x56000088)  //External interrupt control register 0
#define rEINTMASK  (*(volatile unsigned *)0x560000a4) //External interrupt mask
#define rEINTPEND  (*(volatile unsigned *)0x560000a8) //External interrupt pending
 
static void __irq Key1_ISR(void)   //EINT1
{
       int led;
       rSRCPND = rSRCPND 
--参考方法--
 (0x1<<1);
       rINTPND = rINTPND 
--参考方法--
 (0x1<<1);
       led = rGPBDAT & (0x1<<5);
       if (led ==0)
              rGPBDAT = rGPBDAT 
--参考方法--
 (0x1<<5);
       else
              rGPBDAT = rGPBDAT & ~(0x1<<5);
}
 
static void __irq Key2_ISR(void)   //EINT4
{
       int led;
       rSRCPND = rSRCPND 
--参考方法--
 (0x1<<4);
       rINTPND = rINTPND 
--参考方法--
 (0x1<<4);
       if(rEINTPEND&(1<<4))
       {
              rEINTPEND = rEINTPEND 
--参考方法--
 (0x1<<4);
              led = rGPBDAT & (0x1<<6);
              if (led ==0)
                     rGPBDAT = rGPBDAT 
--参考方法--
 (0x1<<6);
              else
                     rGPBDAT = rGPBDAT & ~(0x1<<6);
       }
}
 
static void __irq Key3_ISR(void)   //EINT2
{
       int led;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:43
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20013/
本文WWW.DOC100.NET DOC100.NET版权所有。