📄 at91_aic.c
字号:
/* * at91_aic.c * * author: Kexin (kexin28@126.com) Tel:+8613714451195 * date: 2007-11-22 */#include "at91_aic.h"extern unsigned long svr[32];static unsigned char at91_irq_prtable[32]={7,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0};void at91_mask_irq(unsigned int irq){ unsigned long mask=1<<irq; *(volatile unsigned int *)AIC_IDCR=mask; }void at91_unmask_irq(unsigned int irq){ unsigned long mask=1<<irq; *(volatile unsigned int *)AIC_IECR=mask;}void at91_mask_ack_irq(unsigned int irq){ at91_mask_irq(irq); *(volatile unsigned int *)AIC_EOICR=0x00;}int at91_request_irq(unsigned int irq_num,void *irq_isr){ if(irq_num>0&&irq_num<32) { svr[irq_num] = (unsigned long)irq_isr; return 1; } else return -1;}int at91_release_irq(unsigned int irq_num){ if(irq_num>0&&irq_num<32) { if( svr[irq_num] != 0) { svr[irq_num] = (unsigned long)0; return 1; } else return -1; } else return -1;}void at91_init_aic(void){ int irqnum; *(volatile unsigned int *)AIC_IDCR=0xffffffff; *(volatile unsigned int *)AIC_ICCR=0xffffffff; for(irqnum=0;irqnum<32;irqnum++) *(volatile unsigned int *)AIC_EOICR=irqnum; for(irqnum=0;irqnum<32;irqnum++) *(volatile unsigned int *)(AIC_SMR(irqnum))=at91_irq_prtable[irqnum] | EdgeTriggered;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -