

/**
 * @brief   Maximum IRQ handler number
 */
#define IRQ_NUM_MAX         (128U)

/**
 * @brief   Wakeup event enable mask
 */
#define INTC_WUPEN_MASK                                                         \
            (INTC_WUPEN_EIRQWUEN    | INTC_WUPEN_SWDTWUEN           |           \
             INTC_WUPEN_PVD1WUEN    | INTC_WUPEN_PVD2WUEN           |           \
             INTC_WUPEN_CMPWUEN     | INTC_WUPEN_WKTMWUEN           |           \
             INTC_WUPEN_RTCALMWUEN  | INTC_WUPEN_RTCPRDWUEN         |           \
             INTC_WUPEN_TMR0GCMWUEN | INTC_WUPEN_TMR2GCMWUEN        |           \
             INTC_WUPEN_TMR2OVFWUEN | INTC_WUPEN_RXWUEN             |           \
             INTC_WUPEN_USHWUEN     | INTC_WUPEN_USFWUEN            |           \
             INTC_WUPEN_ETHWUEN)

/**
 * @}
 */

/**
 * @defgroup INTC_Check_Parameters_Validity INTC Check Parameters Validity
 * @{
 */
/*! Parameter validity check for wakeup source from stop mode. */
#define IS_INTC_WKUP_SRC(src)                                                   \
(   ((src) != 0x00UL)                           &&                              \
    (((src) | INTC_WUPEN_MASK) == INTC_WUPEN_MASK))

/*! Parameter validity check for event index. */
#define IS_INTC_EVENT(event)        ((event) != 0x00UL)

/*! Parameter validity check for interrupt index. */
#define IS_INTC_INT(it)             ((it) != 0x00UL)

/*! Parameter validity check for software interrupt index. */
#define IS_INTC_SWI(swi)            ((swi) != 0x00UL)

/*! Parameter validity check for NMI trigger source. */
#define IS_NMI_SRC(src)                                                         \
(   ((src) != 0x00UL)                           &&                              \
    (((src) | NMI_SRC_MASK) == NMI_SRC_MASK))

/*! Parameter validity check for EXINT filter A function. */
#define IS_EXINT_FAE(fae)                                                       \
(   ((fae) == EXINT_FILTER_A_OFF)               ||                              \
    ((fae) == EXINT_FILTER_A_ON))

/*! Parameter validity check for EXINT filter A clock division. */
#define IS_EXINT_FACLK(faclk)                                                    \
(   ((faclk) == EXINT_FACLK_HCLK_DIV1)          ||                              \
    ((faclk) == EXINT_FACLK_HCLK_DIV8)          ||                              \
    ((faclk) == EXINT_FACLK_HCLK_DIV32)         ||                              \
    ((faclk) == EXINT_FACLK_HCLK_DIV64))

/*! Parameter validity check for EXINT filter B function. */
#define IS_EXINT_FBE(fbe)                                                       \
(   ((fbe) == EXINT_FILTER_B_OFF)               ||                              \
    ((fbe) == EXINT_FILTER_B_ON))

/*! Parameter validity check for EXINT filter B time. */
#define IS_EXINT_FBTIME(fbtime)                                                  \
(   ((fbtime) == EXINT_FBTIM_500NS)             ||                              \
    ((fbtime) == EXINT_FBTIM_1US)               ||                              \
    ((fbtime) == EXINT_FBTIM_2US)               ||                              \
    ((fbtime) == EXINT_FBTIM_4US))


/*! Parameter validity check for EXINT trigger edge. */
#define IS_EXINT_TRIGGER(trigger)                                               \
(   ((trigger) == EXINT_TRIGGER_LOW)            ||                              \
    ((trigger) == EXINT_TRIGGER_RISING)         ||                              \
    ((trigger) == EXINT_TRIGGER_FALLING)        ||                              \
    ((trigger) == EXINT_TRIGGER_BOTH))

/*! Parameter validity check for EXINT channel. */
#define IS_EXINT_CH(ch)                                                         \
(   ((ch) != 0x00UL)                            &&                              \
    (((ch) | EXINT_CH_MASK) == EXINT_CH_MASK))

/**
 * @}
 */

/*******************************************************************************
 * Global variable definitions (declared in header file with 'extern')
 ******************************************************************************/

/*******************************************************************************
 * Local function prototypes ('static')
 ******************************************************************************/
/**
 * @defgroup INTC_Local_Variable INTC Local Variable
 * @{
 */
static func_ptr_t m_apfnIrqHandler[IRQ_NUM_MAX] = {NULL};
static func_ptr_t m_pfnNmiCallback;
/**
 * @}
 */

/*******************************************************************************
 * Local variable definitions ('static')
 ******************************************************************************/

/*******************************************************************************
 * Function implementation - global ('extern') and local ('static')
 ******************************************************************************/
/**
 * @defgroup INTC_Global_Functions INTC Global Functions
 * @{
 */
/**
 * @brief  IRQ sign in function
 * @param  [in] pstcIrqSignConfig: pointer of IRQ registration structure
 *   @arg  enIntSrc: can be any value @ref en_int_src_t
 *   @arg  enIRQn: can be any value from Int000_IRQn ~ Int127_IRQn @ref IRQn_Type
 *   @arg  pfnCallback: Callback function
 * @retval Ok: IRQ register successfully
 *         ErrorInvalidParameter: IRQ No. and Peripheral Int source are not match;
 *                                NULL pointer.
 *         ErrorUninitialized: Specified IRQ entry was signed before.
 */
en_result_t INTC_IrqSignIn(const stc_irq_signin_config_t *pstcIrqSignConfig)


/**
 * @brief  IRQ sign out function
 * @param  [in] enIRQn: can be any value from Int000_IRQn ~ Int127_IRQn @ref IRQn_Type
 * @retval Ok: IRQ sign out successfully
 *         ErrorInvalidParameter: IRQ No. is out of range
 */
en_result_t INTC_IrqSignOut(IRQn_Type enIRQn)


/**
 * @brief  Share IRQ configure
 * @param  [in] enIntSrc: Peripheral interrupt source @ref en_int_src_t
 * @param  [in] enNewState:
 *   @arg  Enable: Enable corresponding peripheral interrupt in share IRQ handler
 *   @arg  Disable: Disable corresponding peripheral interrupt in share IRQ handler
 * @retval Ok: Share IRQ configure successfully
 */
en_result_t INTC_ShareIrqCmd(en_int_src_t enIntSrc, en_functional_state_t enNewState)


/**
 * @brief  Stop mode wake-up source configure
 * @param  [in] u32WakeupSrc: Wake-up source
 *   @arg  INTC_WUPEN_EIRQWUEN
 *   @arg  INTC_WUPEN_EIRQWUEN_0
 *   @arg  INTC_WUPEN_EIRQWUEN_1
 *   @arg  INTC_WUPEN_EIRQWUEN_2
 *   @arg  INTC_WUPEN_EIRQWUEN_3
 *   @arg  INTC_WUPEN_EIRQWUEN_4
 *   @arg  INTC_WUPEN_EIRQWUEN_5
 *   @arg  INTC_WUPEN_EIRQWUEN_6
 *   @arg  INTC_WUPEN_EIRQWUEN_7
 *   @arg  INTC_WUPEN_EIRQWUEN_8
 *   @arg  INTC_WUPEN_EIRQWUEN_9
 *   @arg  INTC_WUPEN_EIRQWUEN_10
 *   @arg  INTC_WUPEN_EIRQWUEN_11
 *   @arg  INTC_WUPEN_EIRQWUEN_12
 *   @arg  INTC_WUPEN_EIRQWUEN_13
 *   @arg  INTC_WUPEN_EIRQWUEN_14
 *   @arg  INTC_WUPEN_EIRQWUEN_15
 *   @arg  INTC_WUPEN_SWDTWUEN
 *   @arg  INTC_WUPEN_PVD1WUEN
 *   @arg  INTC_WUPEN_PVD2WUEN
 *   @arg  INTC_WUPEN_CMPWUEN
 *   @arg  INTC_WUPEN_WKTMWUEN
 *   @arg  INTC_WUPEN_RTCALMWUEN
 *   @arg  INTC_WUPEN_RTCPRDWUEN
 *   @arg  INTC_WUPEN_TMR0GCMWUEN
 *   @arg  INTC_WUPEN_TMR2GCMWUEN
 *   @arg  INTC_WUPEN_TMR2OVFWUEN
 *   @arg  INTC_WUPEN_RXWEN
 *   @arg  INTC_WUPEN_USHWUEN
 *   @arg  INTC_WUPEN_USFWUEN
 *   @arg  INTC_WUPEN_ETHWUEN
 * @param  [in] enNewState
 *   @arg  Enable: Enable corresponding wake up source
 *   @arg  Disable: Disable corresponding wake up source
 * @retval None
 */
void INTC_WakeupSrcCmd(uint32_t u32WakeupSrc, en_functional_state_t enNewState)


/**
 * @brief  Event or Interrupt output configure
 * @param  [in] u32Event: Event index
 *   @arg  INTC_EVTER_EVTE0
 *   @arg  INTC_EVTER_EVTE1
 *   @arg  INTC_EVTER_EVTE2
 *   @arg  INTC_EVTER_EVTE3
 *   @arg  INTC_EVTER_EVTE4
 *   @arg  INTC_EVTER_EVTE5
 *   @arg  INTC_EVTER_EVTE6
 *   @arg  INTC_EVTER_EVTE7
 *   @arg  INTC_EVTER_EVTE8
 *   @arg  INTC_EVTER_EVTE9
 *   @arg  INTC_EVTER_EVTE10
 *   @arg  INTC_EVTER_EVTE11
 *   @arg  INTC_EVTER_EVTE12
 *   @arg  INTC_EVTER_EVTE13
 *   @arg  INTC_EVTER_EVTE14
 *   @arg  INTC_EVTER_EVTE15
 *   @arg  INTC_EVTER_EVTE16
 *   @arg  INTC_EVTER_EVTE17
 *   @arg  INTC_EVTER_EVTE18
 *   @arg  INTC_EVTER_EVTE19
 *   @arg  INTC_EVTER_EVTE20
 *   @arg  INTC_EVTER_EVTE21
 *   @arg  INTC_EVTER_EVTE22
 *   @arg  INTC_EVTER_EVTE23
 *   @arg  INTC_EVTER_EVTE24
 *   @arg  INTC_EVTER_EVTE25
 *   @arg  INTC_EVTER_EVTE26
 *   @arg  INTC_EVTER_EVTE27
 *   @arg  INTC_EVTER_EVTE28
 *   @arg  INTC_EVTER_EVTE29
 *   @arg  INTC_EVTER_EVTE30
 *   @arg  INTC_EVTER_EVTE31
 * @param  [in] enNewState
 *   @arg  Enable: Enable corresponding event to NVIC
 *   @arg  Disable: Disable corresponding event but interrupt to NVIC
 * @retval None
 */
void INTC_EventCmd(uint32_t u32Event, en_functional_state_t enNewState)


/**
 * @brief  Interrupt function configure
 * @param  [in] u32Int: Interrupt index
 *   @arg  INTC_IER_IER0
 *   @arg  INTC_IER_IER1
 *   @arg  INTC_IER_IER2
 *   @arg  INTC_IER_IER3
 *   @arg  INTC_IER_IER4
 *   @arg  INTC_IER_IER5
 *   @arg  INTC_IER_IER6
 *   @arg  INTC_IER_IER7
 *   @arg  INTC_IER_IER8
 *   @arg  INTC_IER_IER9
 *   @arg  INTC_IER_IER10
 *   @arg  INTC_IER_IER11
 *   @arg  INTC_IER_IER12
 *   @arg  INTC_IER_IER13
 *   @arg  INTC_IER_IER14
 *   @arg  INTC_IER_IER15
 *   @arg  INTC_IER_IER16
 *   @arg  INTC_IER_IER17
 *   @arg  INTC_IER_IER18
 *   @arg  INTC_IER_IER19
 *   @arg  INTC_IER_IER20
 *   @arg  INTC_IER_IER21
 *   @arg  INTC_IER_IER22
 *   @arg  INTC_IER_IER23
 *   @arg  INTC_IER_IER24
 *   @arg  INTC_IER_IER25
 *   @arg  INTC_IER_IER26
 *   @arg  INTC_IER_IER27
 *   @arg  INTC_IER_IER28
 *   @arg  INTC_IER_IER29
 *   @arg  INTC_IER_IER30
 *   @arg  INTC_IER_IER31
 * @param  [in] enNewState
 *   @arg  Enable: Enable corresponding interrupt to NVIC
 *   @arg  Disable: Disable corresponding interrupt to NVIC
 * @retval None
 */
void INTC_IntCmd(uint32_t u32Int, en_functional_state_t enNewState)


/**
 * @brief  Software Interrupt function configure
 * @param  [in] u32SWI: Software Interrupt index
 *   @arg  INTC_SWIER_SWIE0
 *   @arg  INTC_SWIER_SWIE1
 *   @arg  INTC_SWIER_SWIE2
 *   @arg  INTC_SWIER_SWIE3
 *   @arg  INTC_SWIER_SWIE4
 *   @arg  INTC_SWIER_SWIE5
 *   @arg  INTC_SWIER_SWIE6
 *   @arg  INTC_SWIER_SWIE7
 *   @arg  INTC_SWIER_SWIE8
 *   @arg  INTC_SWIER_SWIE9
 *   @arg  INTC_SWIER_SWIE10
 *   @arg  INTC_SWIER_SWIE11
 *   @arg  INTC_SWIER_SWIE12
 *   @arg  INTC_SWIER_SWIE13
 *   @arg  INTC_SWIER_SWIE14
 *   @arg  INTC_SWIER_SWIE15
 *   @arg  INTC_SWIER_SWIE16
 *   @arg  INTC_SWIER_SWIE17
 *   @arg  INTC_SWIER_SWIE18
 *   @arg  INTC_SWIER_SWIE19
 *   @arg  INTC_SWIER_SWIE20
 *   @arg  INTC_SWIER_SWIE21
 *   @arg  INTC_SWIER_SWIE22
 *   @arg  INTC_SWIER_SWIE23
 *   @arg  INTC_SWIER_SWIE24
 *   @arg  INTC_SWIER_SWIE25
 *   @arg  INTC_SWIER_SWIE26
 *   @arg  INTC_SWIER_SWIE27
 *   @arg  INTC_SWIER_SWIE28
 *   @arg  INTC_SWIER_SWIE29
 *   @arg  INTC_SWIER_SWIE30
 *   @arg  INTC_SWIER_SWIE31
 * @param  [in] enNewState
 *   @arg  Enable: Enable corresponding software interrupt
 *   @arg  Disable: Disable corresponding software interrupt
 * @retval None
 */
void INTC_SWICmd(uint32_t u32SWI, en_functional_state_t enNewState)


/**
 * @brief  Initialize NMI. Fill each pstcNmiInit with default value
 * @param  [in] pstcNmiInit: Pointer to a stc_nmi_init_t structure that
 *                             contains configuration information.
 * @retval Ok: NMI structure initialize successful
 *         ErrorInvalidParameter: NULL pointer
 */
en_result_t NMI_StructInit(stc_nmi_init_t *pstcNmiInit)


/**
 * @brief  Initialize NMI.
 * @param  [in] pstcNmiInit: Pointer to a pstcNmiInit structure that
 *                             contains configuration information.
 * @retval Ok: NMI initialize successful
 *         ErrorInvalidParameter: NULL pointer
 */
en_result_t NMI_Init(const stc_nmi_init_t *pstcNmiInit)


/**
 * @brief  Get NMI trigger source
 * @param  [in] u32NmiSrc: NMI trigger source, @ref NMI_TriggerSrc_Sel for details
 *   @arg  NMI_SRC_SWDT
 *   @arg  NMI_SRC_PVD1
 *   @arg  NMI_SRC_PVD2
 *   @arg  NMI_SRC_XTAL
 *   @arg  NMI_SRC_SRAM_PARITY
 *   @arg  NMI_SRC_SRAM_ECC
 *   @arg  NMI_SRC_BUS_ERR
 *   @arg  NMI_SRC_WDT
 * @retval Set: NMI is triggered by corresponding source
 *         Reset: NMI is not triggered by corresponding source
 */
en_flag_status_t NMI_GetNmiSrc(uint32_t u32NmiSrc)


/**
 * @brief  Set NMI trigger source
 * @param  [in] u32NmiSrc: NMI trigger source, @ref NMI_TriggerSrc_Sel for details
 *   @arg  NMI_SRC_SWDT
 *   @arg  NMI_SRC_PVD1
 *   @arg  NMI_SRC_PVD2
 *   @arg  NMI_SRC_XTAL
 *   @arg  NMI_SRC_SRAM_PARITY
 *   @arg  NMI_SRC_SRAM_ECC
 *   @arg  NMI_SRC_BUS_ERR
 *   @arg  NMI_SRC_WDT
 * @retval None
 */
void NMI_SetNmiSrc(uint32_t u32NmiSrc)


/**
 * @brief  Clear specified NMI trigger source
 * @param  [in] u32NmiSrc: NMI trigger source, @ref NMI_TriggerSrc_Sel for details
 *   @arg  NMI_SRC_SWDT
 *   @arg  NMI_SRC_PVD1
 *   @arg  NMI_SRC_PVD2
 *   @arg  NMI_SRC_XTAL
 *   @arg  NMI_SRC_SRAM_PARITY
 *   @arg  NMI_SRC_SRAM_ECC
 *   @arg  NMI_SRC_BUS_ERR
 *   @arg  NMI_SRC_WDT
 * @retval None
 */
void NMI_ClrNmiSrc(uint32_t u32NmiSrc)


/**
 * @brief  NMI IRQ handler
 * @param  None
 * @retval None
 */
void NMI_IrqHandler(void)


/**
 * @brief  Initialize External interrupt.
 * @param  [in] pstcExIntInit: Pointer to a stc_exint_init_t structure that
 *                             contains configuration information.
 * @retval Ok:  EXINT initialize successful
 *         ErrorInvalidParameter: NULL pointer
 */
en_result_t EXINT_Init(const stc_exint_init_t *pstcExIntInit)


/**
 * @brief  Initialize ExInt. Fill each pstcExIntInit with default value
 * @param  [in] pstcExIntInit: Pointer to a stc_exint_init_t structure
 *                              that contains configuration information.
 * @retval Ok: EXINT structure initialize successful
 *         ErrorInvalidParameter: NULL pointer
 */
en_result_t EXINT_StructInit(stc_exint_init_t *pstcExIntInit)


/**
 * @brief  Clear specified External interrupt trigger source
 * @param  [in] u32ExIntCh: External interrupt channel, @ref EXINT_Channel_Sel for details
 *   @arg  EXINT_CH00
 *   @arg  EXINT_CH01
 *   @arg  EXINT_CH02
 *   @arg  EXINT_CH03
 *   @arg  EXINT_CH04
 *   @arg  EXINT_CH05
 *   @arg  EXINT_CH06
 *   @arg  EXINT_CH07
 *   @arg  EXINT_CH08
 *   @arg  EXINT_CH09
 *   @arg  EXINT_CH10
 *   @arg  EXINT_CH11
 *   @arg  EXINT_CH12
 *   @arg  EXINT_CH13
 *   @arg  EXINT_CH14
 *   @arg  EXINT_CH15
 * @retval None
 */
void EXINT_ClrExIntSrc(uint32_t u32ExIntCh)


/**
 * @brief  Get specified External interrupt trigger source
 * @param  [in] u32ExIntCh: External interrupt channel, @ref EXINT_Channel_Sel for details
 *   @arg  EXINT_CH00
 *   @arg  EXINT_CH01
 *   @arg  EXINT_CH02
 *   @arg  EXINT_CH03
 *   @arg  EXINT_CH04
 *   @arg  EXINT_CH05
 *   @arg  EXINT_CH06
 *   @arg  EXINT_CH07
 *   @arg  EXINT_CH08
 *   @arg  EXINT_CH09
 *   @arg  EXINT_CH10
 *   @arg  EXINT_CH11
 *   @arg  EXINT_CH12
 *   @arg  EXINT_CH13
 *   @arg  EXINT_CH14
 *   @arg  EXINT_CH15
 * @retval Set: Specified channel of external interrupt is triggered
 *         Reset: Specified channel of external interrupt is not triggered
 */
en_flag_status_t EXINT_GetExIntSrc(uint32_t u32ExIntCh)


/**
 * @brief  NMI IRQ handler
 * @param  None
 * @retval None
 */
void NMI_Handler(void)


/**
 * @brief  Hard Fault IRQ handler
 * @param  None
 * @retval None
 */
void HardFault_Handler(void)


/**
 * @brief  SVCall IRQ handler
 * @param  None
 * @retval None
 */
void SVC_Handler(void)


/**
 * @brief  PendSV IRQ handler
 * @param  None
 * @retval None
 */
void PendSV_Handler(void)


/**
 * @brief  SysTick IRQ handler
 * @param  None
 * @retval None
 */
void SysTick_Handler(void)


/**
 * @brief  Interrupt No.000 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ000_Handler(void)


/**
 * @brief  Interrupt No.001 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ001_Handler(void)


/**
 * @brief  Interrupt No.002 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ002_Handler(void)


/**
 * @brief  Interrupt No.003 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ003_Handler(void)


/**
 * @brief  Interrupt No.004 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ004_Handler(void)


/**
 * @brief  Interrupt No.005 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ005_Handler(void)


/**
 * @brief  Interrupt No.006 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ006_Handler(void)


/**
 * @brief  Interrupt No.007 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ007_Handler(void)


/**
 * @brief  Interrupt No.008 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ008_Handler(void)


/**
 * @brief  Interrupt No.009 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ009_Handler(void)


/**
 * @brief  Interrupt No.010 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ010_Handler(void)


/**
 * @brief  Interrupt No.011 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ011_Handler(void)


/**
 * @brief  Interrupt No.012 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ012_Handler(void)


/**
 * @brief  Interrupt No.013 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ013_Handler(void)


/**
 * @brief  Interrupt No.014 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ014_Handler(void)


/**
 * @brief  Interrupt No.015 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ015_Handler(void)


/**
 * @brief  Interrupt No.016 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ016_Handler(void)


/**
 * @brief  Interrupt No.017 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ017_Handler(void)


/**
 * @brief  Interrupt No.018 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ018_Handler(void)


/**
 * @brief  Interrupt No.019 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ019_Handler(void)


/**
 * @brief  Interrupt No.020 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ020_Handler(void)


/**
 * @brief  Interrupt No.021 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ021_Handler(void)


/**
 * @brief  Interrupt No.022 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ022_Handler(void)


/**
 * @brief  Interrupt No.023 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ023_Handler(void)


/**
 * @brief  Interrupt No.024 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ024_Handler(void)


/**
 * @brief  Interrupt No.025 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ025_Handler(void)


/**
 * @brief  Interrupt No.026 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ026_Handler(void)


/**
 * @brief  Interrupt No.027 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ027_Handler(void)


/**
 * @brief  Interrupt No.028 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ028_Handler(void)


/**
 * @brief  Interrupt No.029 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ029_Handler(void)


/**
 * @brief  Interrupt No.030 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ030_Handler(void)


/**
 * @brief  Interrupt No.031 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ031_Handler(void)


/**
 * @brief  Interrupt No.032 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ032_Handler(void)


/**
 * @brief  Interrupt No.033 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ033_Handler(void)


/**
 * @brief  Interrupt No.034 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ034_Handler(void)


/**
 * @brief  Interrupt No.035 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ035_Handler(void)


/**
 * @brief  Interrupt No.036 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ036_Handler(void)


/**
 * @brief  Interrupt No.037 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ037_Handler(void)


/**
 * @brief  Interrupt No.038 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ038_Handler(void)


/**
 * @brief  Interrupt No.039 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ039_Handler(void)


/**
 * @brief  Interrupt No.040 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ040_Handler(void)


/**
 * @brief  Interrupt No.041 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ041_Handler(void)


/**
 * @brief  Interrupt No.042 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ042_Handler(void)


/**
 * @brief  Interrupt No.043 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ043_Handler(void)


/**
 * @brief  Interrupt No.044 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ044_Handler(void)


/**
 * @brief  Interrupt No.045 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ045_Handler(void)


/**
 * @brief  Interrupt No.046 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ046_Handler(void)


/**
 * @brief  Interrupt No.047 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ047_Handler(void)


/**
 * @brief  Interrupt No.048 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ048_Handler(void)


/**
 * @brief  Interrupt No.049 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ049_Handler(void)


/**
 * @brief  Interrupt No.050 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ050_Handler(void)


/**
 * @brief  Interrupt No.051 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ051_Handler(void)


/**
 * @brief  Interrupt No.052 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ052_Handler(void)


/**
 * @brief  Interrupt No.053 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ053_Handler(void)


/**
 * @brief  Interrupt No.054 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ054_Handler(void)


/**
 * @brief  Interrupt No.055 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ055_Handler(void)


/**
 * @brief  Interrupt No.056 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ056_Handler(void)


/**
 * @brief  Interrupt No.057 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ057_Handler(void)


/**
 * @brief  Interrupt No.058 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ058_Handler(void)


/**
 * @brief  Interrupt No.059 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ059_Handler(void)


/**
 * @brief  Interrupt No.060 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ060_Handler(void)


/**
 * @brief  Interrupt No.061 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ061_Handler(void)


/**
 * @brief  Interrupt No.062 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ062_Handler(void)


/**
 * @brief  Interrupt No.063 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ063_Handler(void)


/**
 * @brief  Interrupt No.064 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ064_Handler(void)


/**
 * @brief  Interrupt No.065 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ065_Handler(void)


/**
 * @brief  Interrupt No.066 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ066_Handler(void)


/**
 * @brief  Interrupt No.067 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ067_Handler(void)


/**
 * @brief  Interrupt No.068 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ068_Handler(void)


/**
 * @brief  Interrupt No.069 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ069_Handler(void)


/**
 * @brief  Interrupt No.070 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ070_Handler(void)


/**
 * @brief  Interrupt No.071 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ071_Handler(void)


/**
 * @brief  Interrupt No.072 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ072_Handler(void)


/**
 * @brief  Interrupt No.073 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ073_Handler(void)


/**
 * @brief  Interrupt No.074 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ074_Handler(void)


/**
 * @brief  Interrupt No.075 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ075_Handler(void)


/**
 * @brief  Interrupt No.076 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ076_Handler(void)


/**
 * @brief  Interrupt No.077 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ077_Handler(void)


/**
 * @brief  Interrupt No.078 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ078_Handler(void)


/**
 * @brief  Interrupt No.079 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ079_Handler(void)


/**
 * @brief  Interrupt No.080 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ080_Handler(void)


/**
 * @brief  Interrupt No.081 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ081_Handler(void)


/**
 * @brief  Interrupt No.082 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ082_Handler(void)


/**
 * @brief  Interrupt No.083 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ083_Handler(void)


/**
 * @brief  Interrupt No.084 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ084_Handler(void)


/**
 * @brief  Interrupt No.085 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ085_Handler(void)


/**
 * @brief  Interrupt No.086 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ086_Handler(void)


/**
 * @brief  Interrupt No.087 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ087_Handler(void)


/**
 * @brief  Interrupt No.088 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ088_Handler(void)


/**
 * @brief  Interrupt No.089 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ089_Handler(void)


/**
 * @brief  Interrupt No.090 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ090_Handler(void)


/**
 * @brief  Interrupt No.091 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ091_Handler(void)


/**
 * @brief  Interrupt No.092 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ092_Handler(void)


/**
 * @brief  Interrupt No.093 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ093_Handler(void)


/**
 * @brief  Interrupt No.094 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ094_Handler(void)


/**
 * @brief  Interrupt No.095 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ095_Handler(void)


/**
 * @brief  Interrupt No.096 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ096_Handler(void)


/**
 * @brief  Interrupt No.097 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ097_Handler(void)


/**
 * @brief  Interrupt No.098 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ098_Handler(void)


/**
 * @brief  Interrupt No.099 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ099_Handler(void)


/**
 * @brief  Interrupt No.100 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ100_Handler(void)


/**
 * @brief  Interrupt No.101 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ101_Handler(void)


/**
 * @brief  Interrupt No.102 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ102_Handler(void)


/**
 * @brief  Interrupt No.103 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ103_Handler(void)


/**
 * @brief  Interrupt No.104 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ104_Handler(void)


/**
 * @brief  Interrupt No.105 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ105_Handler(void)


/**
 * @brief  Interrupt No.106 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ106_Handler(void)


/**
 * @brief  Interrupt No.107 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ107_Handler(void)


/**
 * @brief  Interrupt No.108 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ108_Handler(void)


/**
 * @brief  Interrupt No.109 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ109_Handler(void)


/**
 * @brief  Interrupt No.110 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ110_Handler(void)


/**
 * @brief  Interrupt No.111 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ111_Handler(void)


/**
 * @brief  Interrupt No.112 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ112_Handler(void)


/**
 * @brief  Interrupt No.113 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ113_Handler(void)


/**
 * @brief  Interrupt No.114 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ114_Handler(void)


/**
 * @brief  Interrupt No.115 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ115_Handler(void)


/**
 * @brief  Interrupt No.116 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ116_Handler(void)


/**
 * @brief  Interrupt No.117 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ117_Handler(void)


/**
 * @brief  Interrupt No.118 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ118_Handler(void)


/**
 * @brief  Interrupt No.119 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ119_Handler(void)


/**
 * @brief  Interrupt No.120 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ120_Handler(void)


/**
 * @brief  Interrupt No.121 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ121_Handler(void)


/**
 * @brief  Interrupt No.122 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ122_Handler(void)


/**
 * @brief  Interrupt No.123 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ123_Handler(void)


/**
 * @brief  Interrupt No.124 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ124_Handler(void)


/**
 * @brief  Interrupt No.125 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ125_Handler(void)


/**
 * @brief  Interrupt No.126 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ126_Handler(void)


/**
 * @brief  Interrupt No.127 IRQ handler
 * @param  None
 * @retval None
 */
void IRQ127_Handler(void)


/**
 * @brief  Interrupt No.128 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ128_Handler(void)


/**
 * @brief  Interrupt No.129 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ129_Handler(void)


/**
 * @brief  Interrupt No.130 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ130_Handler(void)


/**
 * @brief  Interrupt No.131 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ131_Handler(void)


/**
 * @brief  Interrupt No.132 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ132_Handler(void)


/**
 * @brief  Interrupt No.133 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ133_Handler(void)


/**
 * @brief  Interrupt No.134 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ134_Handler(void)


/**
 * @brief  Interrupt No.135 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ135_Handler(void)


/**
 * @brief  Interrupt No.136 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ136_Handler(void)


/**
 * @brief  Interrupt No.137 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ137_Handler(void)


/**
 * @brief  Interrupt No.138 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ138_Handler(void)


/**
 * @brief  Interrupt No.139 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ139_Handler(void)


/**
 * @brief  Interrupt No.140 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ140_Handler(void)


/**
 * @brief  Interrupt No.141 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ141_Handler(void)


/**
 * @brief  Interrupt No.142 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ142_Handler(void)


/**
 * @brief  Interrupt No.143 share IRQ handler
 * @param  None
 * @retval None
 */
void IRQ143_Handler(void)
