⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 niq32.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/* 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 + -