int.c

来自「在VC6环境下开发」· C语言 代码 · 共 224 行

C
224
字号
#include "44b.h"
#include "44blib.h"

void eHandleUndef(void){
	Uart_Printf("Undefined instruction exception!!!\n");
	while(1);
}

void eHandleSWI(void){
	Uart_Printf("SWI exception!!!\n");
	while(1);
}

void eHandlePAbort(void){
	Uart_Printf("PAbort exception!!!\n");
	while(1);
}

void eHandleDAbort(void){
	Uart_Printf("DAbort exception!!!\n");
	while(1);
}

void eHandleFIQ(void){
	Uart_Printf("FIQ exception!!!\n");
	while(1);
}

void __irq Isr_Eint0(void){
	Uart_Printf("Isr_Eint0 occurring ...\n");
	while(1);
}

void __irq Isr_Eint1(void){
	Uart_Printf("Isr_Eint1 occurring ...\n");
	while(1);
}

void __irq Isr_Eint2(void){
	Uart_Printf("Isr_Eint2 occurring ...\n");
	while(1);
}

void __irq Isr_Eint3(void){
	Uart_Printf("Isr_Eint3 occurring ...\n");
	while(1);
}

void __irq Isr_Eint4567(void){
	Uart_Printf("Isr_Eint4567 occurring ...\n");
	while(1);
}

void __irq Isr_IntTICK(void){
	Uart_Printf("Isr_IntTICK occurring ...\n");
	while(1);
}

void __irq Isr_IntZDMA0(void){
	Uart_Printf("Isr_IntZDMA0 occurring ...\n");
	while(1);
}

void __irq Isr_IntZDMA1(void){
	Uart_Printf("Isr_IntZDMA1 occurring ...\n");
	while(1);
}

void __irq Isr_IntBDMA0(void){
	Uart_Printf("Isr_IntBDMA0 occurring ...\n");
	while(1);
}

void __irq Isr_IntBDMA1(void){
	Uart_Printf("Isr_IntBDMA1 occurring ...\n");
	while(1);
}

void __irq Isr_IntWDT(void){
	Uart_Printf("Isr_IntWDT occurring ...\n");
	while(1);
}

void __irq Isr_IntUerr01(void){
	Uart_Printf("Isr_IntUerr01 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer0(void){
	Uart_Printf("Isr_IntTimer0 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer1(void){
	Uart_Printf("Isr_IntTimer1 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer2(void){
	Uart_Printf("Isr_IntTimer2 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer3(void){
	Uart_Printf("Isr_IntTimer3 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer4(void){
	Uart_Printf("Isr_IntTimer4 occurring ...\n");
	while(1);
}

void __irq Isr_IntTimer5(void){
	Uart_Printf("Isr_IntTimer5 occurring ...\n");
	while(1);
}

void __irq Isr_IntURxd0(void){
	Uart_Printf("Isr_IntURxd0 occurring ...\n");
	while(1);
}

void __irq Isr_IntURxd1(void){
	Uart_Printf("Isr_IntURxd1 occurring ...\n");
	while(1);
}

void __irq Isr_IntIIC(void){
	Uart_Printf("Isr_IntUIIC occurring ...\n");
	while(1);
}

void __irq Isr_IntSIO(void){
	Uart_Printf("Isr_IntSIO occurring ...\n");
	while(1);
}

void __irq Isr_IntUTxd0(void){
	Uart_Printf("Isr_IntUTxd0 occurring ...\n");
	while(1);
}

void __irq Isr_IntUTxd1(void){
	Uart_Printf("Isr_IntUTxd1 occurring ...\n");
	while(1);
}

void __irq Isr_IntRTC(void){
	Uart_Printf("Isr_IntRTC occurring ...\n");
	while(1);
}

void __irq Isr_IntADC(void){
	Uart_Printf("Isr_IntADC occurring ...\n");
	while(1);
}


//Initialze interrupts,set interrupt vector routine
void uHALr_InitInterrupts(void)
{	
	extern void TickHandler(void);
	
    rINTCON = 0x0;	/* Non-vectored,IRQ disable,FIQ disable */
    	
    rINTMOD = 0x0;	/* All=IRQ mode */
	
    rINTMSK = BIT_GLOBAL;	/* All interrupt is masked */    
    
	/*
	** set interrupt vector routine	
	*/
	//pISR_RESET = (unsigned)Reset;			/* must be reserved */
	pISR_UNDEF = (unsigned)eHandleUndef;
	pISR_SWI = (unsigned)eHandleSWI;
	pISR_PABORT = (unsigned)eHandlePAbort;
	pISR_DABORT = (unsigned)eHandleDAbort;
	pISR_RESERVED = (unsigned)0;	/* not used */
	//pISR_IRQ= (unsigned)0;				/* must be reserved */
	pISR_FIQ = (unsigned)eHandleFIQ;

	pISR_ADC = (unsigned)Isr_IntADC;
	pISR_RTC = (unsigned)Isr_IntRTC;
	pISR_UTXD1 = (unsigned)Isr_IntUTxd1;
	pISR_UTXD0 = (unsigned)Isr_IntUTxd0;
	pISR_SIO = (unsigned)Isr_IntSIO;
	pISR_IIC = (unsigned)Isr_IntIIC;
	pISR_URXD1 = (unsigned)Isr_IntURxd1;
	pISR_URXD0 = (unsigned)Isr_IntURxd0;
	
	pISR_TIMER5 = (unsigned)Isr_IntTimer5;
	pISR_TIMER4 = (unsigned)Isr_IntTimer4;
	pISR_TIMER3 = (unsigned)Isr_IntTimer3;
	pISR_TIMER2 = (unsigned)Isr_IntTimer2;
	pISR_TIMER1 = (unsigned)Isr_IntTimer1;
	pISR_TIMER0 = (unsigned)Isr_IntTimer0;
	
	pISR_UERR01 = (unsigned)Isr_IntUerr01;
	pISR_WDT = (unsigned)Isr_IntWDT;	
	pISR_BDMA1 = (unsigned)Isr_IntBDMA1;
	pISR_BDMA0 = (unsigned)Isr_IntBDMA0;
	pISR_ZDMA1 = (unsigned)Isr_IntZDMA1;
	pISR_ZDMA0 = (unsigned)Isr_IntZDMA0;
	pISR_TICK = (unsigned) Isr_IntTICK;
	pISR_EINT4567= (unsigned)Isr_Eint4567;
	pISR_EINT3 = (unsigned)Isr_Eint3;
	pISR_EINT2 = (unsigned)Isr_Eint2;
	pISR_EINT1 = (unsigned)Isr_Eint1;
	pISR_EINT0 = (unsigned)Isr_Eint0;

	//Tick handler setting	
	pISR_TIMER0= (unsigned)TickHandler;		
}

//Start system timer & enable the interrupt.
void uHALr_EnableSystemInterrupt(void){
	
	//Non-vectored,IRQ enable,FIQ disable 
    rINTCON = 0x5;
    
	//Non maksed TIMER0
	rINTMSK = ~( BIT_TIMER0 | BIT_GLOBAL);
}

⌨️ 快捷键说明

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