?? irq.h
字號:
/**********************************************************************************
* irq.h
* modified by hspark@pplab.ce.cnu.ac.kr
* 2001/6/27
**********************************************************************************/
#ifndef __MK_IRQ_H__
#define __MK_IRQ_H__
#if 0
#define INT_BT 0
#define INT_RTC 1
#define INT_TA 2
#define INT_TAOV 3
#define INT_TB 4
#define INT_TBOV 5
#define INT_TC 6
#define INT_TCOV 7
#define INT_USB 8
#define INT_PPIC 9
#define INT_UART 10
#define INT_IIC 11
#define INT_SIO 12
#define INT_IIS0 13
#define INT_IIS1 14
// Reserved 15
#endif
#define EINT0 0 // External Interrupt 0
#define EINT1 1 // External Interrupt 1
#define EINT2 2 // External Interrupt 2
#define IR_INT 3 // Remote control signal
#define EINTG 4 // External Interrupt Group(3-7)
#define INT_TIMERA 5 // Timer A Interrupt
#define WATCHDOG 6 // Watchdog Timer Interrupt
#define INT_TIMERB 7 // Timer B Interrupt
#define INT_TIMERC 8 // Timer C Interrupt
#define INT_TIMERD 9 // Timer D Interrupt
//#define INT_DMA 10 // IODMA 0 Interrupt
#define INT_DMA0 10 // IODMA Interrupt
// Reserved 11 // IODMA 1-3 Interrupt
#define INT_NTSC 12 // NTSC/PAL Encoder Interrupt
#define INT_656 13 // BT.656 Interrupt
#define INT_GA 14 // Graphic Accelator Interrupt
#define INT_MIXER 15 // Mixer Interrrupt
#define INT_IFE 16 // I-Frame Encoder INterrupt
#define INT_M2VD 17 // MPEG Video Decoder
#define INT_SPD 18 // Sub-picture decoder Interrupt
#define INT_PSD 19 // Program stream demux Interrupt
#define INT_FIU 20 // Front Interface Unit Interrupt (ATAPI)
// Reserved 21
#define INT_UART0 22 // UART0 Tx/Rx Interrupt
#define INT_SPDIF 23 // SPDIF Interrupt
#define INT_SAIU 24 // Serial Audio Interface Unit (IIS) Interface
#define INT_ADM 25 // Audio DSP Interrupt
#define INT_SPI 26 // SPI(or SIO) Interrupt
#define INT_IIC 27 // IIC Interrupt
#define INT_NAND 28 // Nand-flash controller Interrupt (or SmartMedia)
#define INT_MSTICK 29 // Memory Stick Interrupt
#define INT_UART1 30 // UART1 Tx/Rx Interrupt
#define INT_ADC 31 // ADC EOC(End Of Conversion) Interrupt
//TEMPORY
#define TIMER_BASE 0x38E000
#define rTACON_H (*(volatile unsigned int *) (TIMER_BASE+0x000))
#define rTACON_L (*(volatile unsigned int *) (TIMER_BASE+0x002))
#define rTACMD_H (*(volatile unsigned int *) (TIMER_BASE+0x004))
#define rTACMD_L (*(volatile unsigned int *) (TIMER_BASE+0x006))
#define rTADATA1_H (*(volatile unsigned int *) (TIMER_BASE+0x008))
#define rTADATA1_L (*(volatile unsigned int *) (TIMER_BASE+0x00a))
#define rTADATA2_H (*(volatile unsigned int *) (TIMER_BASE+0x00C))
#define rTADATA2_L (*(volatile unsigned int *) (TIMER_BASE+0x00e))
#define rTAPRE_H (*(volatile unsigned int *) (TIMER_BASE+0x010))
#define rTAPRE_L (*(volatile unsigned int *) (TIMER_BASE+0x012))
#define rTACNT_H (*(volatile unsigned int *) (TIMER_BASE+0x014))
#define rTACNT_L (*(volatile unsigned int *) (TIMER_BASE+0x016))
#define rTBCON_H (*(volatile unsigned int *) (TIMER_BASE+0x020))
#define rTBCON_L (*(volatile unsigned int *) (TIMER_BASE+0x022))
#define rTBCMD_H (*(volatile unsigned int *) (TIMER_BASE+0x024))
#define rTBCMD_L (*(volatile unsigned int *) (TIMER_BASE+0x026))
#define rTBDATA1_H (*(volatile unsigned int *) (TIMER_BASE+0x028))
#define rTBDATA1_L (*(volatile unsigned int *) (TIMER_BASE+0x02a))
#define rTBDATA2_H (*(volatile unsigned int *) (TIMER_BASE+0x02C))
#define rTBDATA2_L (*(volatile unsigned int *) (TIMER_BASE+0x02e))
#define rTBPRE_H (*(volatile unsigned int *) (TIMER_BASE+0x030))
#define rTBPRE_L (*(volatile unsigned int *) (TIMER_BASE+0x032))
#define rTBCNT_H (*(volatile unsigned int *) (TIMER_BASE+0x034))
#define rTBCNT_L (*(volatile unsigned int *) (TIMER_BASE+0x036))
#define rTCCON_H (*(volatile unsigned int *) (TIMER_BASE+0x040))
#define rTCCON_L (*(volatile unsigned int *) (TIMER_BASE+0x042))
#define rTCCMD_H (*(volatile unsigned int *) (TIMER_BASE+0x044))
#define rTCCMD_L (*(volatile unsigned int *) (TIMER_BASE+0x046))
#define rTCDATA1_H (*(volatile unsigned int *) (TIMER_BASE+0x048))
#define rTCDATA1_L (*(volatile unsigned int *) (TIMER_BASE+0x04a))
#define rTCDATA2_H (*(volatile unsigned int *) (TIMER_BASE+0x04C))
#define rTCDATA2_L (*(volatile unsigned int *) (TIMER_BASE+0x04e))
#define rTCPRE_H (*(volatile unsigned int *) (TIMER_BASE+0x050))
#define rTCPRE_L (*(volatile unsigned int *) (TIMER_BASE+0x052))
#define rTCCNT_H (*(volatile unsigned int *) (TIMER_BASE+0x054))
#define rTCCNT_L (*(volatile unsigned int *) (TIMER_BASE+0x056))
#define rTDCON_H (*(volatile unsigned int *) (TIMER_BASE+0x060))
#define rTDCON_L (*(volatile unsigned int *) (TIMER_BASE+0x062))
#define rTDCMD_H (*(volatile unsigned int *) (TIMER_BASE+0x064))
#define rTDCMD_L (*(volatile unsigned int *) (TIMER_BASE+0x066))
#define rTDDATA1_H (*(volatile unsigned int *) (TIMER_BASE+0x068))
#define rTDDATA1_L (*(volatile unsigned int *) (TIMER_BASE+0x06a))
#define rTDDATA2_H (*(volatile unsigned int *) (TIMER_BASE+0x06C))
#define rTDDATA2_L (*(volatile unsigned int *) (TIMER_BASE+0x06e))
#define rTDPRE_H (*(volatile unsigned int *) (TIMER_BASE+0x070))
#define rTDPRE_L (*(volatile unsigned int *) (TIMER_BASE+0x072))
#define rTDCNT_H (*(volatile unsigned int *) (TIMER_BASE+0x074))
#define rTDCNT_L (*(volatile unsigned int *) (TIMER_BASE+0x076))
#define intcUnit_BASE 0x338000
#define SRCPND_H ((intcUnit_BASE+0x00))
#define SRCPND_L ((intcUnit_BASE+0x02))
#define INTMOD_H ((intcUnit_BASE+0x04))
#define INTMOD_L ((intcUnit_BASE+0x06))
#define INTMASK_H ((intcUnit_BASE+0x08))
#define INTMASK_L ((intcUnit_BASE+0x0a))
#define PRIORITY_H ((intcUnit_BASE+0x0C))
#define PRIORITY_L ((intcUnit_BASE+0x0e))
#define INTPND_H ((intcUnit_BASE+0x10))
#define INTPND_L ((intcUnit_BASE+0x12))
#define INTOFFSET_H ((intcUnit_BASE+0x14))
#define INTOFFSET_L ((intcUnit_BASE+0x16))
#define EINTPOL_H ((intcUnit_BASE+0x18))
#define EINTPOL_L ((intcUnit_BASE+0x1a))
#define EINTPND_H ((intcUnit_BASE+0x1C))
#define EINTPND_L ((intcUnit_BASE+0x1e))
#define EINTMASK_H ((intcUnit_BASE+0x20))
#define EINTMASK_L ((intcUnit_BASE+0x22))
#define rSRCPND_H (*(volatile unsigned int *)(intcUnit_BASE+0x00))
#define rSRCPND_L (*(volatile unsigned int *)(intcUnit_BASE+0x02))
#define rINTMOD_H (*(volatile unsigned int *)(intcUnit_BASE+0x04))
#define rINTMOD_L (*(volatile unsigned int *)(intcUnit_BASE+0x06))
#define rINTMASK_H (*(volatile unsigned int *)(intcUnit_BASE+0x08))
#define rINTMASK_L (*(volatile unsigned int *)(intcUnit_BASE+0x0a))
#define rPRIORITY_H (*(volatile unsigned int *)(intcUnit_BASE+0x0C))
#define rPRIORITY_L (*(volatile unsigned int *)(intcUnit_BASE+0x0e))
#define rINTPND_H (*(volatile unsigned int *)(intcUnit_BASE+0x10))
#define rINTPND_L (*(volatile unsigned int *)(intcUnit_BASE+0x12))
#define rINTOFFSET_H (*(volatile unsigned int *)(intcUnit_BASE+0x14))
#define rINTOFFSET_L (*(volatile unsigned int *)(intcUnit_BASE+0x16))
#define rEINTPOL_H (*(volatile unsigned int *)(intcUnit_BASE+0x18))
#define rEINTPOL_L (*(volatile unsigned int *)(intcUnit_BASE+0x1a))
#define rEINTPND_H (*(volatile unsigned int *)(intcUnit_BASE+0x1C))
#define rEINTPND_L (*(volatile unsigned int *)(intcUnit_BASE+0x1e))
#define rEINTMASK_H (*(volatile unsigned int *)(intcUnit_BASE+0x20))
#define rEINTMASK_L (*(volatile unsigned int *)(intcUnit_BASE+0x22))
/*************************************************************
*Interrupt controller
*************************************************************/
#define BIT_BT (0x1<<0)
#define BIT_RTC (0x1<<1)
#define BIT_TA (0x1<<2)
#define BIT_TAOV (0x1<<3)
#define BIT_TB (0x1<<4)
#define BIT_TBOV (0x1<<5)
#define BIT_TC (0x1<<6)
#define BIT_TCOV (0x1<<7)
#define BIT_USB (0x1<<8)
#define BIT_PPIC (0x1<<9)
#define BIT_UART (0x1<<10)
#define BIT_IIC (0x1<<11)
#define BIT_SIO (0x1<<12)
#define BIT_IIS0 (0x1<<13)
#define BIT_IIS1 (0x1<<14)
//reserved (0x0<<15)
/*-----------------------------------------------------------------
* Internal Function
*-----------------------------------------------------------------*/
typedef VOID(*MK_voidFuncVoid)(INT); /* IRQ service function */
VOID MK_InterruptInitialize(VOID);
VOID MK_TimerCInitialize(VOID);
VOID MK_TimerDInitialize(VOID);
/*-----------------------------------------------------------------
* API Function
*-----------------------------------------------------------------*/
INT MK_IRQInstall(INT Num, MK_voidFuncVoid Func);
INT MK_FIQInstall(INT Num, MK_voidFuncVoid Func);
#endif /* __MK_IRQ_H__ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -