?? sys_irq.c
字號:
//====================================================================================
//文 件 名:Sys_IRQ.c
//功能描述: SPCE3200 40個中斷源(硬件)的中斷向量分支及軟件中斷處理。
// 使用時,用戶不需要修改此文件中的內(nèi)容
//維護記錄: 2007年1月11日 v1.0 by hongyan.Feng
//====================================================================================
//===================================================
// 聲明用戶定義外部中斷服務函數(shù)
//===================================================
extern void IRQ63(void);
extern void IRQ62(void);
extern void IRQ61(void);
extern void IRQ60(void);
extern void IRQ59(void);
extern void IRQ58(void);
extern void IRQ57(void);
extern void IRQ56(void);
extern void IRQ55(void);
extern void IRQ54(void);
extern void IRQ53(void);
extern void IRQ52(void);
extern void IRQ51(void);
extern void IRQ50(void);
extern void IRQ49(void);
extern void IRQ48(void);
extern void IRQ47(void);
extern void IRQ46(void);
extern void IRQ45(void);
extern void IRQ44(void);
extern void IRQ43(void);
extern void IRQ42(void);
extern void IRQ41(void);
extern void IRQ40(void);
extern void IRQ39(void);
extern void IRQ38(void);
extern void IRQ37(void);
extern void IRQ36(void);
extern void IRQ35(void);
extern void IRQ34(void);
extern void IRQ33(void);
extern void IRQ32(void);
extern void IRQ31(void);
extern void IRQ30(void);
extern void IRQ29(void);
extern void IRQ28(void);
extern void IRQ27(void);
extern void IRQ26(void);
extern void IRQ25(void);
extern void IRQ24(void);
//====================================================
// 語法格式:void intmsg(void)
// 功能描述: 軟件中斷及除SPCE3200 40個硬件中斷之外的
// S+core內(nèi)核硬件中斷處理程序
// 入口參數(shù): 無
// 出口參數(shù): 無
//====================================================
void intmsg(void)
{
while(1);
}
//====================================================
// 語法格式:void irq_dispatch(unsigned int cp0_cause)
// 功能描述: 取SPCE3200 40個硬件中斷的中斷向量號,
// 根據(jù)中斷向量號調(diào)用相應中斷服務程序
// 入口參數(shù): cp0_cause為S+core內(nèi)核寄存器cr2的內(nèi)容
// 其中第23~18位為63個硬件中斷的中斷請求(中斷向量號)
// 出口參數(shù): 無
//====================================================
void irq_dispatch(unsigned int cp0_cause)
{
int intvec=0;
intvec = (cp0_cause & 0x00FC0000)>>18;
//取中斷向量號
switch (intvec)
{
case 63: //保留
IRQ63();
break;
case 62: //保留
IRQ62();
break;
case 61: //保留
IRQ61();
break;
case 60: //保留
IRQ60();
break;
case 59: //MIC溢出中斷
IRQ59();
break;
case 58: //ADC中斷
IRQ58();
break;
case 57: //TMB中斷
IRQ57();
break;
case 56:
IRQ56(); //Timer中斷
break;
case 55:
IRQ55(); //TV vblanking start中斷
break;
case 54:
IRQ54(); //LCD vblanking start中斷
break;
case 53:
IRQ53(); //保留
break;
case 52: //Light Gun中斷
IRQ52();
break;
case 51: //CSI frame end中斷
IRQ51();
break;
case 50: //CSI coordinate hit中斷
IRQ50();
break;
case 49: //CSI motion frame end中斷
IRQ49();
break;
case 48: //CSI capture done中斷
IRQ48();
break;
case 47: //TV coordinate hit中斷
IRQ47();
break;
case 46: //保留
IRQ46();
break;
case 45: //USB host+device中斷
IRQ45();
break;
case 44: //SIO中斷
IRQ44();
break;
case 43: //SPI中斷
IRQ43();
break;
case 42: //UART中斷
IRQ42();
break;
case 41: //Nand中斷
IRQ41();
break;
case 40: //SD中斷
IRQ40();
break;
case 39: //I2C中斷
IRQ39();
break;
case 38: //I2S中斷
IRQ38();
break;
case 37: //APBDMA CH1中斷
IRQ37();
break;
case 36: //APBDMA CH2中斷
IRQ36();
break;
case 35: //LDM DMA中斷
IRQ35();
break;
case 34: //BIN DMA中斷
IRQ34();
break;
case 33: //APBDMA CH3中斷
IRQ33();
break;
case 32: //APBDMA CH4中斷
IRQ32();
break;
case 31: //RTC中斷
IRQ31();
break;
case 30: //MP4中斷
IRQ30();
break;
case 29: //C3--ECC Module中斷
IRQ29();
break;
case 28: //GPIO中斷
IRQ28();
break;
case 27: //BUFCTL and TVvblanking end中斷
IRQ27();
break;
case 26: //保留
IRQ26();
break;
case 25: //保留
IRQ25();
break;
case 24: //保留
IRQ24();
break;
default:
break;
}
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -