/**
*   @file    Wdg_Swt_Isr.c
*
*   @version 1.0.0
*   @brief   AUTOSAR Wdg - Software Watchdog Timer (SWT) functions
*   @details Contains functions for accessing SWT from the WDG driver perspective
*
*   @addtogroup  Wdg
*   @{
*/
/*==================================================================================================
*   Project              : AUTOSAR 4.3 MCAL
*   Platform             : PA
*   Peripheral           : Swt
*   Dependencies         : none
*
*   Autosar Version      : 4.3.1
*   Autosar Revision     : ASR_REL_4_3_REV_0001
*   Autosar Conf.Variant :
*   SW Version           : 1.0.0
*   Build Version        : MPC5777C_MCAL_1_0_0_RTM_ASR_REL_4_3_REV_0001_20190315
*
*   (c) Copyright 2006-2016 Freescale Semiconductor, Inc. 
*       Copyright 2017-2019 NXP
*   All Rights Reserved.
==================================================================================================*/
/*==================================================================================================
==================================================================================================*/

#ifdef __cplusplus
extern "C"{
#endif

/**
* @page misra_violations MISRA-C:2012 violations
*
* @section [global]
* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
* The used compilers use more than 31 chars for identifiers.
*
* @section [global]
* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and namespace shall be distinct.
* The used compilers use more than 31 chars for identifiers.
*
* @section [global]
* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
* The used compilers use more than 31 chars for identifiers.
*
* @section [global]
* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
* The used compilers use more than 31 chars for identifiers.
*
* @section [global]
* Violates MISRA 2012 Required Rule 14.4, The controlling expression of an if statement and the controlling expression of an iteration-statement shall essentially boolean type
* The use of do while(0) construct is the safest way to take all block of macro to one command and does not have any relation with boolean type
*
* @section WDG_Swt_Isr_c_REF_1
* Violates MISRA 2012 Advisory Rule 20.1, #include directives should only be preceded by preprocessor directives or comments.
* <MA>_MemMap.h is included after each section define in order to set the current memory section as defined by AUTOSAR.
*
* @section WDG_Swt_Isr_c_REF_2
* Violates MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once.
* This violation is not fixed since the inclusion of <MA>_MemMap.h is as per AUTOSAR requirement [SWS_MemMap_00003].
*
* @section WDG_Swt_Isr_c_REF_3
* Violates MISRA 2012 Required Rule 10.8, The value of a composite expression shall no be cast to a different essential 
* type category or a wider essential type.
* The cast is used to access memory mapped registers.
*
* @section WDG_Swt_Isr_c_REF_4
* Violates MISRA 2012 Advisory Rule 11.4, A conversion should not be performed between a pointer to object and an integer type.
* The cast is used to access memory mapped registers.
*
* @section WDG_Swt_Isr_c_REF_5
* Violates MISRA 2012 Required Rule 11.6, A cast shall not be performed between pointer to void and an arithmetic type.
* The cast is used to access memory mapped registers.
*
* @section WDG_Swt_Isr_c_REF_6
* Violates MISRA 2012 Advisory Rule 8.7, function and object should not define with external linkage if they are referenced in one translation unit
* ISR service prototype use to export to user application files so it depend on usecase 
*/


/*==================================================================================================
*                                        INCLUDE FILES
* 1) system and project includes
* 2) needed interfaces from external units
* 3) internal and external interfaces from this unit
==================================================================================================*/
/**
* @file           Wdg_Swt_Isr.c   
*/
#include "Wdg_IPW_Types.h"
#include "Mcal.h"
#include "Wdg_Irq.h"
#include "Reg_eSys_Swt.h"
#include "Reg_eSys_Swt_defines.h"
#include "StdRegMacros.h"


/*==================================================================================================
*                                       SOURCE FILE VERSION INFORMATION
==================================================================================================*/
/**
* @file           Wdg_Swt_Isr.c     
*/
#define WDG_SWT_ISR_VENDOR_ID_C                     43
#define WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C      4
#define WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C      3
#define WDG_SWT_ISR_AR_RELEASE_REVISION_VERSION_C   1
#define WDG_SWT_ISR_SW_MAJOR_VERSION_C              1
#define WDG_SWT_ISR_SW_MINOR_VERSION_C              0
#define WDG_SWT_ISR_SW_PATCH_VERSION_C              0
/*==================================================================================================
*                                      FILE VERSION CHECKS
==================================================================================================*/
/* Check if current file and Wdg_IPW_Types header file are of the same vendor */
#if (WDG_SWT_ISR_VENDOR_ID_C != WDG_IPW_TYPES_VENDOR_ID)
    #error "Wdg_Swt_Isr.c and Wdg_IPW_Types.h have different vendor ids"
#endif
/* Check if current file and Wdg_IPW_Types header file are of the same Autosar version */
#if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C    != WDG_IPW_TYPES_AR_RELEASE_MAJOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C    != WDG_IPW_TYPES_AR_RELEASE_MINOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_REVISION_VERSION_C != WDG_IPW_TYPES_AR_RELEASE_REVISION_VERSION) \
    )
    #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and Wdg_IPW_Types.h are different"
#endif
/* Check if current file and Wdg_IPW_Types header file are of the same Software version */
#if ((WDG_SWT_ISR_SW_MAJOR_VERSION_C != WDG_IPW_TYPES_SW_MAJOR_VERSION) || \
     (WDG_SWT_ISR_SW_MINOR_VERSION_C != WDG_IPW_TYPES_SW_MINOR_VERSION) || \
     (WDG_SWT_ISR_SW_PATCH_VERSION_C != WDG_IPW_TYPES_SW_PATCH_VERSION)    \
    )
    #error "Software Version Numbers of Wdg_Swt_Isr.c and Wdg_IPW_Types.h are different"
#endif

/* Check if current file and Mcal header file are of the same Autosar version */
#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
    #if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C != MCAL_AR_RELEASE_MAJOR_VERSION) || \
         (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C != MCAL_AR_RELEASE_MINOR_VERSION)    \
        )
        #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and Mcal.h are different"
    #endif
#endif

/* Check if current file and Wdg_Irq header file are of the same vendor */
#if (WDG_SWT_ISR_VENDOR_ID_C != WDG_IRQ_VENDOR_ID)
    #error "Wdg_Swt_Isr.c and Wdg_Irq.h have different vendor ids"
#endif
/* Check if current file and Wdg_Irq header file are of the same Autosar version */
#if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C    != WDG_IRQ_AR_RELEASE_MAJOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C    != WDG_IRQ_AR_RELEASE_MINOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_REVISION_VERSION_C != WDG_IRQ_AR_RELEASE_REVISION_VERSION) \
    )
    #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and Wdg_Irq.h are different"
#endif
/* Check if current file and Wdg_Irq header file are of the same Software version */
#if ((WDG_SWT_ISR_SW_MAJOR_VERSION_C != WDG_IRQ_SW_MAJOR_VERSION) || \
     (WDG_SWT_ISR_SW_MINOR_VERSION_C != WDG_IRQ_SW_MINOR_VERSION) || \
     (WDG_SWT_ISR_SW_PATCH_VERSION_C != WDG_IRQ_SW_PATCH_VERSION)    \
    )
    #error "Software Version Numbers of Wdg_Swt_Isr.c and Wdg_Irq.h are different"
#endif

/* Check if current file and SWT register header file are of the same vendor */
#if (WDG_SWT_ISR_VENDOR_ID_C != REG_ESYS_SWT_VENDOR_ID)
    #error "Wdg_Swt_Isr.c and Reg_eSys_Swt.h have different vendor ids"
#endif

/* Check if source file and SWT register header file are of the same Autosar version */
#if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C    != REG_ESYS_SWT_AR_RELEASE_MAJOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C    != REG_ESYS_SWT_AR_RELEASE_MINOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_REVISION_VERSION_C != REG_ESYS_SWT_AR_RELEASE_REVISION_VERSION) \
    )
    #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and Reg_eSys_Swt.h are different"
#endif

/* Check if source file and SWT register header file are of the same Software version */
#if ((WDG_SWT_ISR_SW_MAJOR_VERSION_C != REG_ESYS_SWT_SW_MAJOR_VERSION) || \
     (WDG_SWT_ISR_SW_MINOR_VERSION_C != REG_ESYS_SWT_SW_MINOR_VERSION) || \
     (WDG_SWT_ISR_SW_PATCH_VERSION_C != REG_ESYS_SWT_SW_PATCH_VERSION)    \
    )
    #error "Software Version Numbers of Wdg_Swt_Isr.c and Reg_eSys_Swt.h are different"
#endif

/* Check if current file and Reg_eSys_Swt_defines header file are of the same vendor */
#if (WDG_SWT_ISR_VENDOR_ID_C != REG_ESYS_SWT_DEFINES_VENDOR_ID)
    #error "Wdg_Swt_Isr.c and Reg_eSys_Swt_defines.h have different vendor ids"
#endif

/* Check if source file and Reg_eSys_Swt_defines header file are of the same Autosar version */
#if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C    != REG_ESYS_SWT_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C    != REG_ESYS_SWT_DEFINES_AR_RELEASE_MINOR_VERSION) || \
     (WDG_SWT_ISR_AR_RELEASE_REVISION_VERSION_C != REG_ESYS_SWT_DEFINES_AR_RELEASE_REVISION_VERSION) \
    )
    #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and Reg_eSys_Swt_defines.h are different"
#endif

/* Check if source file and Reg_eSys_Swt_defines header file are of the same Software version */
#if ((WDG_SWT_ISR_SW_MAJOR_VERSION_C != REG_ESYS_SWT_DEFINES_SW_MAJOR_VERSION) || \
     (WDG_SWT_ISR_SW_MINOR_VERSION_C != REG_ESYS_SWT_DEFINES_SW_MINOR_VERSION) || \
     (WDG_SWT_ISR_SW_PATCH_VERSION_C != REG_ESYS_SWT_DEFINES_SW_PATCH_VERSION)    \
    )
    #error "Software Version Numbers of Wdg_Swt_Isr.c and Reg_eSys_Swt_defines.h are different"
#endif

/* Check if current file and StdRegMacros header file are of the same Autosar version */
#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
    #if ((WDG_SWT_ISR_AR_RELEASE_MAJOR_VERSION_C != STDREGMACROS_AR_RELEASE_MAJOR_VERSION) || \
         (WDG_SWT_ISR_AR_RELEASE_MINOR_VERSION_C != STDREGMACROS_AR_RELEASE_MINOR_VERSION)    \
        )
        #error "AutoSar Version Numbers of Wdg_Swt_Isr.c and StdRegMacros.h are different"
    #endif
#endif
/*==================================================================================================
*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
==================================================================================================*/

/*==================================================================================================
*                                       LOCAL MACROS
==================================================================================================*/


/*==================================================================================================
*                                      LOCAL CONSTANTS
==================================================================================================*/


/*==================================================================================================
*                                      LOCAL VARIABLES
==================================================================================================*/


/*==================================================================================================
*                                      GLOBAL CONSTANTS
==================================================================================================*/


/*==================================================================================================
*                                      GLOBAL VARIABLES
==================================================================================================*/

/*==================================================================================================
*                                   LOCAL FUNCTION PROTOTYPES
==================================================================================================*/
#ifdef WDG_ROM
    #if (WDG_ROM == 1U)
        #define WDG_START_SEC_CODE
    #endif
#else
    #if (WDG_RAM == 0U)
        #define WDG_START_SEC_RAMCODE
    #endif
#endif
/**
* @brief Include Memory mapping specification
*/
/* @violates @ref WDG_Swt_Isr_c_REF_2 MISRA 2012 Required 4.10*/
#include "Wdg_MemMap.h"
#if ((defined WDG_ISR0_USED)|| (defined WDG_ISR1_USED)|| (defined WDG_ISR2_USED) || (defined WDG_ISR3_USED) || (defined WDG_ISR4_USED) || (defined WDG_ISR5_USED) || (defined WDG_ISR6_USED) || (defined WDG_ISR7_USED) || (defined WDG_ISR8_USED) || (defined WDG_ISR9_USED) || (defined WDG_ISR10_USED))
LOCAL_INLINE FUNC(void, WDG_CODE) Wdg_Swt_ProcessInterrupt(CONST(Wdg_IPW_InstanceType, WDG_CONST) Wdg_Instance);
#endif

#ifdef WDG_ISR0_USED
ISR(Wdg_Swt0_Isr);
#endif /* WDG_ISR0_USED */

#ifdef WDG_ISR1_USED
ISR(Wdg_Swt1_Isr);
#endif /* WDG_ISR1_USED */

#ifdef WDG_ISR2_USED
ISR(Wdg_Swt2_Isr);
#endif /* WDG_ISR2_USED */

#ifdef WDG_ISR3_USED
ISR(Wdg_Swt3_Isr);
#endif /* WDG_ISR3_USED */

#ifdef WDG_ISR4_USED
ISR(Wdg_Swt4_Isr);
#endif /* WDG_ISR4_USED */

#ifdef WDG_ISR5_USED
ISR(Wdg_Swt5_Isr);
#endif /* WDG_ISR5_USED */

#ifdef WDG_ISR6_USED
ISR(Wdg_Swt6_Isr);
#endif /* WDG_ISR6_USED */

#ifdef WDG_ISR7_USED
ISR(Wdg_Swt7_Isr);
#endif /* WDG_ISR7_USED */

#ifdef WDG_ISR8_USED
ISR(Wdg_Swt8_Isr);
#endif /* WDG_ISR8_USED */

#ifdef WDG_ISR9_USED
ISR(Wdg_Swt9_Isr);
#endif /* WDG_ISR9_USED */

#ifdef WDG_ISR10_USED
ISR(Wdg_Swt10_Isr);
#endif /* WDG_ISR10_USED */

#ifdef WDG_ROM
    #if (WDG_ROM == 1U)
        #define WDG_STOP_SEC_CODE
    #endif
#else
    #if (WDG_RAM == 0U)
        #define WDG_STOP_SEC_RAMCODE
    #endif
#endif
/**
* @brief Include Memory mapping specification
*
* @violates @ref WDG_Swt_Isr_c_REF_1 MISRA 2012 Advisory 20.1
* @violates @ref WDG_Swt_Isr_c_REF_2 MISRA 2012 Required 4.10
*/
#include "Wdg_MemMap.h"
/*==================================================================================================
*                                      LOCAL FUNCTIONS
==================================================================================================*/
#ifdef WDG_ROM
    #if (WDG_ROM == 1U)
        #define WDG_START_SEC_CODE
    #endif
#else
    #if (WDG_RAM == 0U)
        #define WDG_START_SEC_RAMCODE
    #endif
#endif
/**
* @brief Include Memory mapping specification
*
* @violates @ref WDG_Swt_Isr_c_REF_1 MISRA 2012 Advisory 20.1
* @violates @ref WDG_Swt_Isr_c_REF_2 MISRA 2012 Required 4.10
*/
#include "Wdg_MemMap.h"

/**
*   @brief   This function process the interrupt.
*   @details This function process the SWT interrup
*
*   @param[in]          Wdg_Instance        Harwdware SWT instance.
* 
*
*/
#if ((defined WDG_ISR0_USED)|| (defined WDG_ISR1_USED)|| (defined WDG_ISR2_USED) || (defined WDG_ISR3_USED) || (defined WDG_ISR4_USED) || (defined WDG_ISR5_USED) || (defined WDG_ISR6_USED) || (defined WDG_ISR7_USED) || (defined WDG_ISR8_USED) || (defined WDG_ISR9_USED) || (defined WDG_ISR10_USED))
LOCAL_INLINE FUNC(void, WDG_CODE) Wdg_Swt_ProcessInterrupt(CONST(Wdg_IPW_InstanceType, WDG_CONST) Wdg_Instance)
{
    /* @violates @ref WDG_Swt_Isr_c_REF_3 Required Rule 10.8, The value of a composite expression shall no be cast to a different essential type category or a wider essential type.*/
    /* @violates @ref WDG_Swt_Isr_c_REF_4 Advisory Rule 11.4, A conversion should not be performed between a pointer to object and an integer type. */
    /* @violates @ref WDG_Swt_Isr_c_REF_5 Required Rule 11.6, A cast shall not be performed between pointer to void and an arithmetic type*/
    VAR(uint32, AUTOMATIC) swt_u32IntEnableFlag = REG_READ32(SWT_CR_ADDR32(Wdg_Instance)) & SWT_INTERRUPT_TOGGLE_U32;
    /* @violates @ref WDG_Swt_Isr_c_REF_3 Required Rule 10.8, The value of a composite expression shall no be cast to a different essential type category or a wider essential type.*/
    /* @violates @ref WDG_Swt_Isr_c_REF_4 Advisory Rule 11.4, A conversion should not be performed between a pointer to object and an integer type. */
    /* @violates @ref WDG_Swt_Isr_c_REF_5 Required Rule 11.6, A cast shall not be performed between pointer to void and an arithmetic type*/
    VAR(uint32, AUTOMATIC) swt_u32IntStatusFlag = REG_READ32(SWT_IR_ADDR32(Wdg_Instance)) & SWT_IR_CLEAR_U32;
    
    /* Clear the interrupt flag  */
    /* @violates @ref WDG_Swt_Isr_c_REF_3 Required Rule 10.8, The value of a composite expression shall no be cast to a different essential type category or a wider essential type.*/
    /* @violates @ref WDG_Swt_Isr_c_REF_4 Advisory Rule 11.4, A conversion should not be performed between a pointer to object and an integer type. */
    /* @violates @ref WDG_Swt_Isr_c_REF_5 Required Rule 11.6, A cast shall not be performed between pointer to void and an arithmetic type*/
    REG_WRITE32(SWT_IR_ADDR32(Wdg_Instance), SWT_IR_CLEAR_U32);
    
    /* Check for spurious interrupt */
    if((SWT_INTERRUPT_TOGGLE_U32 == swt_u32IntEnableFlag) && (SWT_IR_CLEAR_U32 == swt_u32IntStatusFlag))
    {
        Wdg_ProcessInterrupt(Wdg_Instance);
    }
}
#endif

#ifdef WDG_ISR0_USED
/**
*   @brief   This function process the interrupt SWT0.
*   @details This function process the SWT0 interrupt
*   @isr
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt0_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE0);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR1_USED
/**
*   @brief   This function process the interrupt SWT1.
*   @details This function process the SWT1 interrupt
*   @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt1_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE1);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR2_USED
/**
*   @brief   This function process the interrupt SWT2.
*   @details This function process the SWT2 interrupt
*   @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt2_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE2);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR3_USED
/**
*   @brief   This function process the interrupt SWT3.
*   @details This function process the SWT3 interrupt
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt3_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE3);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */


#ifdef WDG_ISR4_USED
/**
*   @brief   This function process the interrupt SWT4.
*   @details This function process the SWT4 interrupt
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt4_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE4);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR5_USED
/**
*   @brief   This function process the interrupt SWT5.
*   @details This function process the SWT5 interrupt
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt5_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE5);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR6_USED
/**
*   @brief   This function process the interrupt SWT6.
*   @details This function process the SWT6 interrupt
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt6_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE6);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR7_USED
/**
*   @brief   This function process the interrupt SWT7.
*   @details This function process the SWT7 interrup
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt7_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE7);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR8_USED
/**
*   @brief   This function process the interrupt SWT8.
*   @details This function process the SWT8 interrup
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt8_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE8);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR9_USED
/**
*   @brief   This function process the interrupt SWT9.
*   @details This function process the SWT9 interrup
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt9_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE9);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ISR10_USED
/**
*   @brief   This function process the interrupt SWT10.
*   @details This function process the SWT10 interrup
    @implements  Wdg_SwtInterfaceNo_Isr_Activity
*   @isr
*/
/* @violates @ref WDG_Swt_Isr_c_REF_6 Advisory Rule 8.7 */
ISR(Wdg_Swt10_Isr)
{
    Wdg_Swt_ProcessInterrupt(WDG_IPW_INSTANCE10);
    EXIT_INTERRUPT();
}

#endif /* WDG_ISR_USED */

#ifdef WDG_ROM
    #if (WDG_ROM == 1U)
        #define WDG_STOP_SEC_CODE
    #endif
#else
    #if (WDG_RAM == 0U)
        #define WDG_STOP_SEC_RAMCODE
    #endif
#endif
/**
* @brief Include Memory mapping specification
*
* @violates @ref WDG_Swt_Isr_c_REF_1 MISRA 2012 Advisory 20.1
* @violates @ref WDG_Swt_Isr_c_REF_2 MISRA 2012 Required 4.10
*/
#include "Wdg_MemMap.h"

/*==================================================================================================
*                                       GLOBAL FUNCTIONS
==================================================================================================*/

#ifdef __cplusplus
}
#endif

/** @} */
