📄 niq32.c
字号:
/* Functionality : Handle External IRQ mapped on ABB. */
/*--------------------------------------------------------------*/
void IQ_External(void)
{
// Mask external interrupt (12)
IQ_Mask(IQ_EXT);
// The external IRQ is mapped on the ABB interrupt.
// The associated HISR ABB_Hisr is activated on reception on the external IRQ.
if(Activate_ABB_HISR())
{
IQ_Unmask(IQ_EXT);
}
}
/*--------------------------------------------------------------*/
/* IQ_Dummy */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle unused interrupts */
/*--------------------------------------------------------------*/
void IQ_Dummy(void)
{
IQ_DummyCount++;
}
/*--------------------------------------------------------------*/
/* IQ_RTCHandler */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle RTC Time interrupts */
/*--------------------------------------------------------------*/
void IQ_Rtc_Handler(void)
{
#if (!OP_L1_STANDALONE)
RTC_ItTimerHandle();
#endif
}
/*--------------------------------------------------------------*/
/* IQ_RtcA_GsmTim_Handler */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle RTC ALARM or GAUGING interrupts */
/*--------------------------------------------------------------*/
#if ((CHIPSET == 4) || (CHIPSET == 5) || (CHIPSET == 6) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 9) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12))
void IQ_RtcA_Handler(void)
{
#if (!OP_L1_STANDALONE)
/* INTH_DISABLEONEIT(IQ_RTC_ALARM); *//* RTC ALARM IT */
if ( (* (SYS_WORD8 *) RTC_STATUS_REG) & RTC_ALARM )
RTC_ItAlarmHandle();
#endif
}
void IQ_GsmTim_Handler(void)
{
if ( (* (SYS_UWORD16 *) ULDP_GSM_TIMER_IT_REG) & ULPD_IT_TIMER_GSM )
{
// it is GSM Timer it.....
IQ_GsmTimerCount++;
}
}
#else
void IQ_RtcA_GsmTim_Handler(void)
{
#if (!OP_L1_STANDALONE)
if ( (* (SYS_UWORD16 *) ULDP_GSM_TIMER_IT_REG) & ULPD_IT_TIMER_GSM )
{
// it is GSM Timer it.....
IQ_GsmTimerCount++;
}
else
{
/* INTH_DISABLEONEIT(IQ_RTC_ALARM); *//* RTC ALARM IT */
if ( (* (SYS_WORD8 *) RTC_STATUS_REG) & RTC_ALARM )
RTC_ItAlarmHandle();
}
#endif
}
#endif
/*--------------------------------------------------------------*/
/* IQ_TimerHandler */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle Timer interrupts */
/*--------------------------------------------------------------*/
void IQ_TimerHandler(void)
{
IQ_TimerCount++;
TMT_Timer_Interrupt();
#if (defined RVM_DAR_SWE) && (defined _GSM)
dar_watchdog_reset();
#endif
}
/*--------------------------------------------------------------*/
/* IQ_FramerHandler */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle Timer interrupts */
/*--------------------------------------------------------------*/
void IQ_FrameHandler(void)
{
IQ_FrameCount++;
TMT_Timer_Interrupt();
TP_FrameIntHandler();
#if (!OP_L1_STANDALONE)
#if (TI_PROFILER == 1)
// TDMA treatment for profiling buffer
ti_profiler_tdma_action();
#endif
#endif
}
/*--------------------------------------------------------------*/
/* IQ_TimerHandler1 */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle Timer 1 interrupts */
/*--------------------------------------------------------------*/
void IQ_TimerHandler1(void)
{
IQ_TimerCount1++;
}
/*--------------------------------------------------------------*/
/* IQ_TimerHandler2 */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle Timer 2 interrupts */
/*--------------------------------------------------------------*/
void IQ_TimerHandler2(void)
{
IQ_TimerCount2++;
}
/*--------------------------------------------------------------*/
/* IQ_IRQ_isr */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : HHandle IRQ interrupts */
/*--------------------------------------------------------------*/
void IQ_IRQ_isr(void)
{
irqHandlers[((* (SYS_UWORD16 *) INTH_B_IRQ_REG) & INTH_SRC_NUM)](); /* ACK IT */
* (SYS_UWORD16 *) INTH_CTRL_REG |= (1 << INTH_IRQ); /* valid next IRQ */
}
/*--------------------------------------------------------------*/
/* IQ_FIQ_isr */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle FIQ interrupts */
/*--------------------------------------------------------------*/
void IQ_FIQ_isr(void)
{
#if ((CHIPSET == 4) || (CHIPSET == 5) || (CHIPSET == 6) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 9) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12))
fiqHandlers[((* (SYS_UWORD16 *) INTH_B_FIQ_REG) & INTH_SRC_NUM)](); /* ACK IT */
#endif
* (SYS_UWORD16 *) INTH_CTRL_REG |= (1 << INTH_FIQ); /* valid next FIQ */
}
#if ((BOARD == 8) || (BOARD == 9) || (BOARD == 40) || (BOARD == 41))
/*--------------------------------------------------------------*/
/* IQ_KeypadGPIOHandler */
/*--------------------------------------------------------------*/
/* Parameters : none */
/* Return : none */
/* Functionality : Handle keypad and GPIO interrupts */
/*--------------------------------------------------------------*/
void IQ_KeypadGPIOHandler(void)
{
#if (!OP_L1_STANDALONE)
/*
* GPIO interrupt must be checked before the keypad interrupt. The GPIO
* status bit is reset when the register is read.
*/
g_interrupt = 80;
if (AI_CheckITSource (ARMIO_GPIO_INT)) {
#if 0
#ifdef RVM_MPM_SWE
/* check if the SWE has been started */
MPM_InterruptHandler ();
#else
UAF_DTRInterruptHandler ();
#endif
#endif
/* Jeffrey, 02/26/04, add this line from 188 */
gpio_handler();
}
if (AI_CheckITSource (ARMIO_KEYPDAD_INT))
kpd_key_handler ();
#endif
}
/**
* function: gpio_handler hall
*/
void gpio_handler(void)
{
/* 2003/11/01 Robert.Chen for melody interrupt from GPIO1*/
/* modify from */
/*
AI_MaskIT(2);
*/
/* to */
AI_MaskIT(2);
/* end Robert.Chen */
/* Activate HISR to process the key event */
NU_Activate_HISR(&gpio_hisr_infos.hisr);
}
/* 2003/11/01 Robert.Chen Melody HISR entry */
void MI_Melody_Hisr(void)
{
MaDevDrv_IntHandler();
AI_UnmaskIT(0x02);
}
/**
* function: kpd_initialize_keypad_hardware
*/
void Gpio_hisr_initialize(void)
{
int i;
/* 2003/11/01 Robert.Chen, modify for Melody HISR */
/* modify from */
#if 0
/* HISR creation */
NU_Create_HISR(&gpio_hisr_infos.hisr,
"GPIO_HISR",
gpio_hisr_entry,
2,
gpio_hisr_infos.hisr_stack,
sizeof(gpio_hisr_infos.hisr_stack));
AI_UnmaskIT(0x02);
i = HallOnOff();
if(i){
AI_SelectIOForIT (2, 0);//ARMIO_FALLING_EDGE
}
else{
AI_SelectIOForIT (2, 1);//ARMIO_RISING_EDGE
}
#endif
/* to */
NU_Create_HISR(&gpio_hisr_infos.hisr,
"GPIO_HISR",
MI_Melody_Hisr,
2,
gpio_hisr_infos.hisr_stack,
sizeof(gpio_hisr_infos.hisr_stack));
AI_EnableBit(5); /* MCSI_TXD as GPIO9 */
AI_ConfigBitAsInput(9); /* GPIO9 as input pin for YMU765 ~IRQ */
AI_SelectIOForIT (9, 0); /* GPIO9 as input, falling edge triggered */
AI_UnmaskIT(0x02); /* enable GPIO IRQ */
/* end modify, Robert.Chen */
}
/* end of imported functins, Jeffrey, 02/26/04 */
/* ---------------------------------------------*/
#elif ((BOARD == 43) || (BOARD == 45))
/*--------------------------------------------------------------*/
/* IQ_KeypadHandler */
/*--------------------------------------------------------------*/
/* Parameters :none */
/* Return : none */
/* Functionality : Handle keypad interrupts */
/*--------------------------------------------------------------*/
void IQ_KeypadHandler(void)
{
#if (!OP_L1_STANDALONE)
kpd_key_handler ();
#endif
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -