sysinit.c

来自「arm7s3c44b0x0里ps2口和lcd口驱动编程实例」· C语言 代码 · 共 70 行

C
70
字号
#include "\inc\define.h"
#include "\inc\drives.h"
#include "\inc\sysinit.h"

void Isr_Init(void);
void HaltUndef(void) ;
void HaltSwi(void);
void HaltPabort(void);
void HaltDabort(void);
void FiqHandler(void);
void IrqHandler(void);

/*========================================================*/
//IntInit() initialize the interrupts that will be used
/*========================================================*/
void IntInit(void)
{
	rINTCON = 0x5;									//disable fiq, enable irq
    rINTMOD = 0x0;									//all interrupts useIRQ mode				
    rINTMSK &= ~BIT_GLOBAL;    						//all interrupts switch on
}

/*========================================================*/
//ISRInit() initialize the exceptional ISR
/*========================================================*/
void ISRInit(void)
{
	pISR_UNDEF	=(unsigned)HaltUndef;
    pISR_SWI  	=(unsigned)HaltSwi;
    pISR_PABORT	=(unsigned)HaltPabort;
    pISR_DABORT	=(unsigned)HaltDabort;
	pISR_IRQ	=(unsigned)IrqHandler;
	pISR_FIQ	=(unsigned)FiqHandler;	
}

void HaltUndef(void) 
{
	puts("Halt on Undefined instruction\n");
	while (1);
}
void HaltSwi(void)
{
	puts("Swi Interrupt detected\n");
		while(1);
}

void HaltPabort(void)
{
	puts("Prefetch Abort detected\n");
	while (1);
}

void HaltDabort(void)
{
	puts("Data Abort detected\n");
	while (1);
}

void IrqHandler(void)   
{
	puts("Halt on IRQ!\n");
	while(1);
}

void FiqHandler(void)
{
	puts("Halt on FIQ!\n");
	while(1);
}

⌨️ 快捷键说明

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