📄 intx20t.c
字号:
DWORD nSysIntr = SYSINTR_NOP;
int value1, value2 , int1 , int2;
SharedGPIOControl( 2 , 1 , GPIO_IntRead , &value1 );
if( value1 )
{
int1 = 0;
SharedGPIOControl( 2 , 1 , GPIO_IntEnable , &int1 );
SharedGPIOControl( 2 , 1 , GPIO_IntClear , 0 );
}
SharedGPIOControl( 2 , 2 , GPIO_IntRead , &value2 );
if( value2 )
{
int2 = 0;
SharedGPIOControl( 2 , 2 , GPIO_IntEnable , &int2 );
SharedGPIOControl( 2 , 2 , GPIO_IntClear , 0 );
}
if( value1 || value2 )
nSysIntr = OEMTranslateIrq(LOGINTR_CF);
return nSysIntr;
}
/* General Purpose Input/Output port1 ISR (Interrupt bit[7]) */
static DWORD isrIIC( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
/* General Purpose Input/Output port2 ISR (Interrupt bit[8]) */
static DWORD isrCF( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_CF);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* General Purpose Input/Output port3 ISR (Interrupt bit[9]) */
static DWORD isrRTC( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_RTC_ALARM;
pvstRTCRegs rtc = (pvstRTCRegs)VA_RTC_BASE;
/* Clear the alarm interrupt */
rtc->ICR = 0x01;
/* Clear Interrupt Mask at the RTC peripheral */
rtc->IMSC = 0x00;
/* Clear the VIC interrupt */
OEMInterruptDisable(SYSINTR_RTC_ALARM);
OEMIndicateIntSource(nSysIntr);
return nSysIntr;
}
/* Real Time Clock ISR (Interrupt bit[10]) */
static DWORD isrUSB( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_USB);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* Synchronous Serial Port ISR (Interrupt bit[11]) */
/* Universal Asynchronous Receive Transmit port 0 ISR (Interrupt bit[12]) */
static DWORD isrUART0( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
/* Universal Asynchronous Receive Transmit port 1 ISR (Interrupt bit[13]) */
static DWORD isrUART1( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_UART1);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* Universal Asynchronous Receive Transmit port 2 ISR (Interrupt bit[14]) */
static DWORD isrUART2( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_UART2);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrUART3( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_SD0);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* ISR for SCI (Interrupt bit[15]) */
static DWORD isrSCI( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_SCI);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* Colour Liquid Crystal Display Controller ISR (Interrupt bit[16]) */
static DWORD isrCLCD1( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
/* Direct Memory Access Controller ISR (Interrupt bit[17]) */
static DWORD isrDMA( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
/* Demux the DMAC interrupt */
/* Dynamically mapped */
if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_0_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_0_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_0);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_1_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_1_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_1);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_2_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_2_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_2);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_3_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_3_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_3);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_4_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_4_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_4);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_5_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_5_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_5);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_6_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_6_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_6);
}
else if(pDMACRegs->DMACIntTCStatus & DMAC_CHANNEL_7_INT ||
pDMACRegs->DMACIntErrorStatus & DMAC_CHANNEL_7_INT)
{
GetSysIntrMappings(&nSysIntr, DMAC_CHANNEL_7);
}
/* Disable the DMA channel interrupt at source so */
/* we can still get other channel interrupts */
if( nSysIntr != SYSINTR_NOP )
{
int CompleteAudioDmaTransfer( DWORD interrupt );
int ret;
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
ret = CompleteAudioDmaTransfer( nSysIntr );
}
return nSysIntr;
}
/* System Power Failure ISR (Interrupt bit[18]) */
static DWORD isrPWRFAIL( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrSSP( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_SSP0);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrGPIO7( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrGPIO8( unsigned int ra )
{
DWORD nSysIntr=SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrKBD( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_KBD);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrAACI( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_AUDIO);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrCLCD0( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrGPIO8_5( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrGPIO0( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_DMA23);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrVIA( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_VIA);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrMP4D( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_MP4D);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrMP4E( unsigned int ra )
{
DWORD nSysIntr = OEMTranslateIrq(LOGINTR_MP4E);
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
static DWORD isrGPIO8_0( unsigned int ra )
{
DWORD nSysIntr = SYSINTR_NOP;
return nSysIntr;
}
static DWORD isrGPIO8_1( unsigned int ra )
{
DWORD nSysIntr;
/*
if( QueryInterrupt( LOGINTR_TOUCH ) )
nSysIntr = OEMTranslateIrq(LOGINTR_TOUCH);
else*/
nSysIntr = OEMTranslateIrq(LOGINTR_EXTINT1);
RETAILMSG(0,(TEXT("NIC INT\r\n")));
if( nSysIntr != SYSINTR_NOP )
{
OEMInterruptDisable(nSysIntr);
OEMIndicateIntSource(nSysIntr);
}
return nSysIntr;
}
/* EOF intx20.c */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -