#pragma once 

#ifdef __cplusplus
 extern "C" {
#endif


/* -------------------------  Interrupt Number Definition  ------------------------ */

typedef enum IRQn
{
/* -------------------  Cortex-M0 Processor Exceptions Numbers  ------------------- */
  NonMaskableInt_IRQn           = -14,      /*  2 Non Maskable Interrupt            */
  HardFault_IRQn                = -13,      /*  3 HardFault Interrupt               */



//SVCall_IRQn                   =  -5,      /* 11 SV Call Interrupt                 */

//PendSV_IRQn                   =  -2,      /* 14 Pend SV Interrupt                 */
//SysTick_IRQn                  =  -1,      /* 15 System Tick Interrupt             */


/* ----------------------  ARTY_CM1 Specific Interrupt Numbers  ------------------- */
  Unused0_IRQn                  = 0,
  Uart0_IRQn                    = 1,       /* GPIO 0 Interrupt                      */
  Timer0_IRQn                   = 2,       /* Timer 0 Interrupt                     */
  Unused3_IRQn                  = 3,
  Unused4_IRQn                  = 4,
  Unused5_IRQn                  = 5,
  Unused6_IRQn                  = 6,
  Unused7_IRQn                  = 7,
  Unused8_IRQn                  = 8,
  Unused9_IRQn                  = 9,
  Unused10_IRQn                 = 10,
  Unused11_IRQn                 = 11,
  Unused12_IRQn                 = 12,
  Unused13_IRQn                 = 13,
  Unused14_IRQn                 = 14,
  Unused15_IRQn                 = 15,
  Unused16_IRQn                 = 16,
  Unused17_IRQn                 = 17,
  Unused18_IRQn                 = 18,
  Unused19_IRQn                 = 19,
  Unused20_IRQn                 = 20,
  Unused21_IRQn                 = 21,
  Unused22_IRQn                 = 22,
  Unused23_IRQn                 = 23,
  Unused24_IRQn                 = 24,
  Unused25_IRQn                 = 25,
  Unused26_IRQn                 = 26,
  Unused27_IRQn                 = 27,
  Unused28_IRQn                 = 28,
  Unused29_IRQn                 = 29,
  Unused30_IRQn                 = 30,
  Unused31_IRQn                 = 31,
} IRQn_Type;


/* ================================================================================ */
/* ================      Processor and Core Peripheral Section     ================ */
/* ================================================================================ */

/* --------  Configuration of the Cortex-M0 Processor and Core Peripherals  ------- */
#define __CM1_REV                 0x0000      /* Core revision r0p0                              */
#define __MPU_PRESENT             0           /* MPU present or not                              */
#define __NVIC_PRIO_BITS          2           /* Number of Bits used for Priority Levels         */
#define __Vendor_SysTickConfig    1           /* Set to 1 if different SysTick Config is used    */

#include <core_cm1.h>                         /* Processor and core peripherals                  */

/* ================================================================================ */
/* ================       Device Specific Peripheral Section       ================ */
/* ================================================================================ */

/* -------------------  Start of section using anonymous unions  ------------------ */
#if defined ( __CC_ARM   )
  #pragma push
#pragma anon_unions
#elif defined(__ICCARM__)
  #pragma language=extended
#elif defined(__GNUC__)
  /* anonymous unions are enabled by default */
#elif defined(__TMS470__)
/* anonymous unions are enabled by default */
#elif defined(__TASKING__)
  #pragma warning 586
#else
  #warning Not supported compiler type
#endif
/* --------------------  End of section using anonymous unions  ------------------- */

#if defined ( __CC_ARM   )
  #pragma pop
#elif defined(__ICCARM__)
  /* leave anonymous unions enabled */
#elif defined(__GNUC__)
  /* anonymous unions are enabled by default */
#elif defined(__TMS470__)
  /* anonymous unions are enabled by default */
#elif defined(__TASKING__)
  #pragma warning restore
#else
  #warning Not supported compiler type
#endif



#ifdef __cplusplus
}
#endif