irq.c

来自「ARM 4510 bootloader,完整的工程实例」· C语言 代码 · 共 39 行

C
39
字号
#include "DataType.h"
#include "board.h"
#include "4510irq.h"

typedef	void (*PrVoid)(void);

U32 pIrqStart, pIrqFinish, pIrqHandler;

PrVoid IrqHandler[MaxIrqNumber];

static void IrqEntry(U32 irq)
{
	
	if(irq<MaxIrqNumber)
		if(IrqHandler[irq])		
			(*IrqHandler[irq])();	
}


U32 SetIrqVector(U16 irq, U32 handler)
{
	U32 sHandler=0;
	
	if(irq<MaxIrqNumber)
	{
		sHandler = (U32)IrqHandler[irq];
		IrqHandler[irq] = (PrVoid)handler;
	}
	return sHandler;		
}


void InitIrq(void)
{
	pIrqHandler = (U32)IrqEntry;
	CAM_Reg(INTMOD) = INT_MODE_IRQ;
	CAM_Reg(INTMSK) = INT_MASK_DIS;
	CAM_Reg(INTPND) = INT_MASK_DIS;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?