
/**
 ******************************************************************************
 *
 * @file        MG32__IRQHandler.H
 *
 * @brief       This file contains all the functions prototypes for the IRQHandler
 *              firmware library.
 *
 * @par         Project
 *              MG32
 * @version     V1.04
 * @date        2026/06/01
 * @author      Megawin Software Center
 * @copyright   Copyright (c) 2017 MegaWin Technology Co., Ltd.
 *              All rights reserved.
 *
 ******************************************************************************
 * @par         Disclaimer 
 *      The Demo software is provided "AS IS"  without any warranty, either 
 *      expressed or implied, including, but not limited to, the implied warranties 
 *      of merchantability and fitness for a particular purpose.  The author will 
 *      not be liable for any special, incidental, consequential or indirect 
 *      damages due to loss of data or any other reason. 
 *      These statements agree with the world wide and local dictated laws about 
 *      authorship and violence against these laws. 
 ******************************************************************************
 ******************************************************************************
 */ 

#ifndef __MG32_IRQHANDLER_H
#define __MG32_IRQHANDLER_H
#define __MG32_IRQHANDLER_H_VER 100                     /*!< File Version */


#ifdef __cplusplus
 extern "C" {
#endif

/* Wizard menu ---------------------------------------------------------------*/
/* Includes ------------------------------------------------------------------*/
#include "MG32.h"
#include "MG32__ExtraStruct.h"
#if defined(ModuleExist_APB)
    #include "MG32_APB.h"
#endif
#include "RTE_Components.h"

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
void NMI_Handler(void);
void SVC_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
#if defined(MG32_WWDT_IRQ_)
    void WWDT_IRQHandler(void);
#endif
#if defined(MG32_SYS_IRQ_)
    void SYS_IRQHandler(void);
#endif
#if defined(MG32_EXINT0_IRQ_)
    void EXINT0_IRQHandler(void);
#endif
#if defined(MG32_EXINT1_IRQ_)
    void EXINT1_IRQHandler(void);
#endif
#if defined(MG32_EXINT2_IRQ_)
    void EXINT2_IRQHandler(void);
#endif
#if defined(MG32_EXINT3_IRQ_)
    void EXINT3_IRQHandler(void);
#endif
#if defined(MG32_COMP_IRQ_)
    void COMP_IRQHandler(void);
#endif
#if defined(MG32_DMA_IRQ_)
    void DMA_IRQHandler(void);
#endif
#if defined(MG32_ADC_IRQ_)
    void ADC_IRQHandler(void);
#endif
#if defined(MG32_DAC_IRQ_)
    void DAC_IRQHandler(void);
#endif
#if defined(MG32_TM0x_IRQ_)
    void TM0x_IRQHandler(void);
#endif
#if defined(MG32_TM10_IRQ_)
    void TM10_IRQHandler(void);
#endif
#if defined(MG32_TM1x_IRQ_)
    void TM1x_IRQHandler(void);
#endif
#if defined(MG32_TM20_IRQ_)
    void TM20_IRQHandler(void);
#endif
#if defined(MG32_TM2x_IRQ_)
    void TM2x_IRQHandler(void);
#endif
#if defined(MG32_TM3x_IRQ_)
    void TM3x_IRQHandler(void);
#endif
#if defined(MG32_URT0_IRQ_)
    void URT0_IRQHandler(void);
#endif
#if defined(MG32_URT123_IRQ_)
    void URT123_IRQHandler(void);
#endif
#if defined(MG32_SPI0_IRQ_)
    void SPI0_IRQHandler(void);
#endif
#if defined(MG32_I2C0_IRQ_)
    void I2C0_IRQHandler(void);
#endif
#if defined(MG32_I2Cx_IRQ_)
    void I2Cx_IRQHandler(void);
#endif

/* Exported variables --------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/* External vairables --------------------------------------------------------*/
extern void HardFault_IRQ(void);
#if defined(MG32_WWDT_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void WWDT_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_IWDT) && defined(IRQHandler_Driver_Level_)
    extern void IWDT_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_PW) && defined(IRQHandler_Driver_Level_)
    extern void PW_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_RTC) && defined(IRQHandler_Driver_Level_)
    extern void RTC_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_CSC) && defined(IRQHandler_Driver_Level_)
    extern void CSC_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_APB) && defined(IRQHandler_Driver_Level_)
    extern void APB_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_MEM) && defined(IRQHandler_Driver_Level_)
    extern void MEM_IRQ(void);
#endif
#if defined(MG32_SYS_IRQ_) && defined(ModuleExist_EMB) && defined(IRQHandler_Driver_Level_)
    extern void EMB_IRQ(void);
#endif
#if defined(MG32_EXINT0_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void EXINT0_IRQ(void);
#endif
#if defined(MG32_EXINT1_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void EXINT1_IRQ(void);
#endif
#if defined(MG32_EXINT2_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void EXINT2_IRQ(void);
#endif
#if defined(MG32_EXINT2_IRQ_) && defined(EXIC_PD_Base) && defined(IRQHandler_Driver_Level_)
    extern void EXINT3_IRQ(void);
#endif
#if defined(MG32_EXINT2_IRQ_) && defined(EXIC_PE_Base) && defined(IRQHandler_Driver_Level_)
    extern void EXINT4_IRQ(void);
#endif
#if defined(MG32_COMP_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void CMP_IRQ(void);
#endif
#if defined(MG32_DMA_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void DMA_IRQ(void);
#endif
#if defined(MG32_ADC_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void ADC_IRQ(void);
#endif
#if defined(MG32_DAC_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void DAC_IRQ(void);
#endif
#if defined(MG32_TM0x_IRQ_) && defined(ModuleExist_TM00) && defined(IRQHandler_Driver_Level_)
    extern void TM00_IRQ(void);
#endif
#if defined(MG32_TM0x_IRQ_) && defined(ModuleExist_TM01) && defined(IRQHandler_Driver_Level_)
    extern void TM01_IRQ(void);
#endif
#if defined(MG32_TM10_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void TM10_IRQ(void);
#endif
#if defined(MG32_TM1x_IRQ_) && defined(ModuleExist_TM16) && defined(IRQHandler_Driver_Level_)
    extern void TM16_IRQ(void);
#endif
#if defined(MG32_TM20_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void TM20_IRQ(void);
#endif
#if defined(MG32_TM2x_IRQ_) && defined(ModuleExist_TM26) && defined(IRQHandler_Driver_Level_)
    extern void TM26_IRQ(void);
#endif
#if defined(MG32_TM3x_IRQ_) && defined(ModuleExist_TM36) && defined(IRQHandler_Driver_Level_)
    extern void TM36_IRQ(void);
#endif
#if defined(MG32_URT0_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void URT0_IRQ(void);
#endif
#if defined(MG32_URT123_IRQ_) && defined(ModuleExist_URT1) && defined(IRQHandler_Driver_Level_)
    extern void URT1_IRQ(void);
#endif
#if defined(MG32_URT123_IRQ_) && defined(ModuleExist_URT2) && defined(IRQHandler_Driver_Level_)
    extern void URT2_IRQ(void);
#endif
#if defined(MG32_URT123_IRQ_) && defined(ModuleExist_URT3) && defined(IRQHandler_Driver_Level_)
    extern void URT3_IRQ(void);
#endif
#if defined(MG32_SPI0_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void SPI0_IRQ(void);
#endif
#if defined(MG32_I2C0_IRQ_) && defined(IRQHandler_Driver_Level_)
    extern void I2C0_IRQ(void);
#endif
#if defined(MG32_I2Cx_IRQ_) && defined(ModuleExist_I2C1) && defined(IRQHandler_Driver_Level_)
    extern void I2C1_IRQ(void);
#endif



#ifdef __cplusplus
}
#endif

#endif

