源码地址:https://github.com/774639008/MyProject/commit/2129384d2e0004dc859caa4d8b81d8669ecf5850?diff=unified
这是irq.c文件
#include "irq.h"
#include <string.h>
#include <s3c2440.h>
#include "type.h"
static irqEvent_t G_IRQEvents[IRQ_MAX];
//中断总是初始化
void irq_init(void)
{
int i;
memset(G_IRQEvents,0,sizeof(G_IRQEvents)); //初始化信息
//初始化所有的中断寄存器
EINTMASK = 0xFFFFFFFF;
INTSUBMSK = 0xFFFFFFFF;
INTMSK = 0xFFFFFFFF;
EINTPEND= 0xFFFFFFFF;
SUBSRCPND = 0xFFFFFFFF;
SRCPND = 0xFFFFFFFF;
INTPND = 0xFFFFFFFF;
INTMOD = 0;
//初始化所有信息结构体
for(i = 0; i < IRQ_MAX; i++)
{
G_IRQEvents[i].irqno = i;
G_IRQEvents[i].parent = -1;
G_IRQEvents[i].irq = NULL;
if(i >= IRQ_SUB_EINT4 && i <= IRQ_SUB_EINT7)
{
G_IRQEvents[i].parent = IRQ_EINT4_7;
}
else if(i >= IRQ_SUB_EINT8 && i <= IRQ_SUB_EINT23)
{
G_IRQEvents[i].parent = IRQ_EINT8_23;
}
else if(i >= IRQ_SUB_RXD0 && i <= IRQ_SUB_ERR0)
{