mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Jul 17 09:15:10 2015 +0100
Revision:
592:a274ee790e56
Parent:
579:53297373a894
Synchronized with git revision e7144f83a8d75df80c4877936b6ffe552b0be9e6

Full URL: https://github.com/mbedmicro/mbed/commit/e7144f83a8d75df80c4877936b6ffe552b0be9e6/

More API implementation for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 579:53297373a894 1 #ifndef SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
mbed_official 579:53297373a894 2 #define SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
mbed_official 579:53297373a894 3
mbed_official 579:53297373a894 4 #if !defined(__DOXYGEN__)
mbed_official 579:53297373a894 5
mbed_official 579:53297373a894 6 /* Generates a interrupt vector table enum list entry for a given module type
mbed_official 579:53297373a894 7 and index (e.g. "SYSTEM_INTERRUPT_MODULE_TC0 = TC0_IRQn,"). */
mbed_official 579:53297373a894 8 # define _MODULE_IRQn(n, module) \
mbed_official 579:53297373a894 9 SYSTEM_INTERRUPT_MODULE_##module##n = module##n##_IRQn,
mbed_official 579:53297373a894 10
mbed_official 579:53297373a894 11 /* Generates interrupt vector table enum list entries for all instances of a
mbed_official 579:53297373a894 12 given module type on the selected device. */
mbed_official 579:53297373a894 13 # define _SYSTEM_INTERRUPT_MODULES(name) \
mbed_official 579:53297373a894 14 MREPEAT(name##_INST_NUM, _MODULE_IRQn, name)
mbed_official 579:53297373a894 15
mbed_official 579:53297373a894 16 # define _SYSTEM_INTERRUPT_IPSR_MASK 0x0000003f
mbed_official 579:53297373a894 17 # define _SYSTEM_INTERRUPT_PRIORITY_MASK 0x00000007
mbed_official 579:53297373a894 18
mbed_official 579:53297373a894 19 # define _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START 0
mbed_official 579:53297373a894 20
mbed_official 579:53297373a894 21 # define _SYSTEM_INTERRUPT_SYSTICK_PRI_POS 29
mbed_official 579:53297373a894 22 #endif
mbed_official 579:53297373a894 23
mbed_official 579:53297373a894 24 /**
mbed_official 579:53297373a894 25 * \addtogroup asfdoc_sam0_system_interrupt_group
mbed_official 579:53297373a894 26 * @{
mbed_official 579:53297373a894 27 */
mbed_official 579:53297373a894 28
mbed_official 579:53297373a894 29 /**
mbed_official 579:53297373a894 30 * \brief Table of possible system interrupt/exception vector numbers.
mbed_official 579:53297373a894 31 *
mbed_official 579:53297373a894 32 * Table of all possible interrupt and exception vector indexes within the
mbed_official 579:53297373a894 33 * SAMD21 device.
mbed_official 579:53297373a894 34 */
mbed_official 579:53297373a894 35 #if defined(__DOXYGEN__)
mbed_official 579:53297373a894 36 /** \note The actual enumeration name is "system_interrupt_vector". */
mbed_official 579:53297373a894 37 enum system_interrupt_vector_samd21 {
mbed_official 579:53297373a894 38 #else
mbed_official 579:53297373a894 39 enum system_interrupt_vector {
mbed_official 579:53297373a894 40 #endif
mbed_official 579:53297373a894 41 /** Interrupt vector index for a NMI interrupt. */
mbed_official 579:53297373a894 42 SYSTEM_INTERRUPT_NON_MASKABLE = NonMaskableInt_IRQn,
mbed_official 579:53297373a894 43 /** Interrupt vector index for a Hard Fault memory access exception. */
mbed_official 579:53297373a894 44 SYSTEM_INTERRUPT_HARD_FAULT = HardFault_IRQn,
mbed_official 579:53297373a894 45 /** Interrupt vector index for a Supervisor Call exception. */
mbed_official 579:53297373a894 46 SYSTEM_INTERRUPT_SV_CALL = SVCall_IRQn,
mbed_official 579:53297373a894 47 /** Interrupt vector index for a Pending Supervisor interrupt. */
mbed_official 579:53297373a894 48 SYSTEM_INTERRUPT_PENDING_SV = PendSV_IRQn,
mbed_official 579:53297373a894 49 /** Interrupt vector index for a System Tick interrupt. */
mbed_official 579:53297373a894 50 SYSTEM_INTERRUPT_SYSTICK = SysTick_IRQn,
mbed_official 579:53297373a894 51
mbed_official 579:53297373a894 52 /** Interrupt vector index for a Power Manager peripheral interrupt. */
mbed_official 579:53297373a894 53 SYSTEM_INTERRUPT_MODULE_PM = PM_IRQn,
mbed_official 579:53297373a894 54 /** Interrupt vector index for a System Control peripheral interrupt. */
mbed_official 579:53297373a894 55 SYSTEM_INTERRUPT_MODULE_SYSCTRL = SYSCTRL_IRQn,
mbed_official 579:53297373a894 56 /** Interrupt vector index for a Watch Dog peripheral interrupt. */
mbed_official 579:53297373a894 57 SYSTEM_INTERRUPT_MODULE_WDT = WDT_IRQn,
mbed_official 579:53297373a894 58 /** Interrupt vector index for a Real Time Clock peripheral interrupt. */
mbed_official 579:53297373a894 59 SYSTEM_INTERRUPT_MODULE_RTC = RTC_IRQn,
mbed_official 579:53297373a894 60 /** Interrupt vector index for an External Interrupt peripheral interrupt. */
mbed_official 579:53297373a894 61 SYSTEM_INTERRUPT_MODULE_EIC = EIC_IRQn,
mbed_official 579:53297373a894 62 /** Interrupt vector index for a Non Volatile Memory Controller interrupt. */
mbed_official 579:53297373a894 63 SYSTEM_INTERRUPT_MODULE_NVMCTRL = NVMCTRL_IRQn,
mbed_official 579:53297373a894 64 /** Interrupt vector index for a Direct Memory Access interrupt. */
mbed_official 579:53297373a894 65 SYSTEM_INTERRUPT_MODULE_DMA = DMAC_IRQn,
mbed_official 579:53297373a894 66 /** Interrupt vector index for a Universal Serial Bus interrupt. */
mbed_official 579:53297373a894 67 SYSTEM_INTERRUPT_MODULE_USB = USB_IRQn,
mbed_official 579:53297373a894 68 /** Interrupt vector index for an Event System interrupt. */
mbed_official 579:53297373a894 69 SYSTEM_INTERRUPT_MODULE_EVSYS = EVSYS_IRQn,
mbed_official 579:53297373a894 70 #if defined(__DOXYGEN__)
mbed_official 579:53297373a894 71 /** Interrupt vector index for a SERCOM peripheral interrupt.
mbed_official 579:53297373a894 72 *
mbed_official 579:53297373a894 73 * Each specific device may contain several SERCOM peripherals; each module
mbed_official 579:53297373a894 74 * instance will have its own entry in the table, with the instance number
mbed_official 579:53297373a894 75 * substituted for "n" in the entry name (e.g.
mbed_official 579:53297373a894 76 * \c SYSTEM_INTERRUPT_MODULE_SERCOM0).
mbed_official 579:53297373a894 77 */
mbed_official 579:53297373a894 78 SYSTEM_INTERRUPT_MODULE_SERCOMn = SERCOMn_IRQn,
mbed_official 579:53297373a894 79
mbed_official 579:53297373a894 80 /** Interrupt vector index for a Timer/Counter Control peripheral interrupt.
mbed_official 579:53297373a894 81 *
mbed_official 579:53297373a894 82 * Each specific device may contain several TCC peripherals; each module
mbed_official 579:53297373a894 83 * instance will have its own entry in the table, with the instance number
mbed_official 579:53297373a894 84 * substituted for "n" in the entry name (e.g.
mbed_official 579:53297373a894 85 * \c SYSTEM_INTERRUPT_MODULE_TCC0).
mbed_official 579:53297373a894 86 */
mbed_official 579:53297373a894 87 SYSTEM_INTERRUPT_MODULE_TCCn = TCCn_IRQn,
mbed_official 579:53297373a894 88
mbed_official 579:53297373a894 89 /** Interrupt vector index for a Timer/Counter peripheral interrupt.
mbed_official 579:53297373a894 90 *
mbed_official 579:53297373a894 91 * Each specific device may contain several TC peripherals; each module
mbed_official 579:53297373a894 92 * instance will have its own entry in the table, with the instance number
mbed_official 579:53297373a894 93 * substituted for "n" in the entry name (e.g.
mbed_official 579:53297373a894 94 * \c SYSTEM_INTERRUPT_MODULE_TC3).
mbed_official 579:53297373a894 95 */
mbed_official 579:53297373a894 96 SYSTEM_INTERRUPT_MODULE_TCn = TCn_IRQn,
mbed_official 579:53297373a894 97 #else
mbed_official 579:53297373a894 98 //_SYSTEM_INTERRUPT_MODULES(SERCOM)
mbed_official 579:53297373a894 99 SYSTEM_INTERRUPT_MODULE_SERCOM0 = SERCOM0_IRQn,
mbed_official 579:53297373a894 100 SYSTEM_INTERRUPT_MODULE_SERCOM1 = SERCOM1_IRQn,
mbed_official 579:53297373a894 101 SYSTEM_INTERRUPT_MODULE_SERCOM2 = SERCOM2_IRQn,
mbed_official 579:53297373a894 102 SYSTEM_INTERRUPT_MODULE_SERCOM3 = SERCOM3_IRQn,
mbed_official 579:53297373a894 103 SYSTEM_INTERRUPT_MODULE_SERCOM4 = SERCOM4_IRQn,
mbed_official 579:53297373a894 104 SYSTEM_INTERRUPT_MODULE_SERCOM5 = SERCOM5_IRQn,
mbed_official 579:53297373a894 105
mbed_official 579:53297373a894 106 //_SYSTEM_INTERRUPT_MODULES(TCC)
mbed_official 579:53297373a894 107 SYSTEM_INTERRUPT_MODULE_TCC0 = TCC0_IRQn,
mbed_official 579:53297373a894 108 SYSTEM_INTERRUPT_MODULE_TCC1 = TCC1_IRQn,
mbed_official 579:53297373a894 109 SYSTEM_INTERRUPT_MODULE_TCC2 = TCC2_IRQn,
mbed_official 579:53297373a894 110
mbed_official 579:53297373a894 111 SYSTEM_INTERRUPT_MODULE_TC3 = TC3_IRQn,
mbed_official 579:53297373a894 112 SYSTEM_INTERRUPT_MODULE_TC4 = TC4_IRQn,
mbed_official 579:53297373a894 113 SYSTEM_INTERRUPT_MODULE_TC5 = TC5_IRQn,
mbed_official 579:53297373a894 114 # if (SAMD21J)
mbed_official 579:53297373a894 115 SYSTEM_INTERRUPT_MODULE_TC6 = TC6_IRQn,
mbed_official 579:53297373a894 116 SYSTEM_INTERRUPT_MODULE_TC7 = TC7_IRQn,
mbed_official 579:53297373a894 117 # endif
mbed_official 579:53297373a894 118 #endif
mbed_official 579:53297373a894 119
mbed_official 579:53297373a894 120 /** Interrupt vector index for an Analog Comparator peripheral interrupt. */
mbed_official 579:53297373a894 121 SYSTEM_INTERRUPT_MODULE_AC = AC_IRQn,
mbed_official 579:53297373a894 122 /** Interrupt vector index for an Analog-to-Digital peripheral interrupt. */
mbed_official 579:53297373a894 123 SYSTEM_INTERRUPT_MODULE_ADC = ADC_IRQn,
mbed_official 579:53297373a894 124 /** Interrupt vector index for a Digital-to-Analog peripheral interrupt. */
mbed_official 579:53297373a894 125 SYSTEM_INTERRUPT_MODULE_DAC = DAC_IRQn,
mbed_official 579:53297373a894 126 /** Interrupt vector index for a Peripheral Touch Controller peripheral
mbed_official 579:53297373a894 127 * interrupt. */
mbed_official 579:53297373a894 128 SYSTEM_INTERRUPT_MODULE_PTC = PTC_IRQn,
mbed_official 579:53297373a894 129 /** Interrupt vector index for a Inter-IC Sound Interface peripheral
mbed_official 579:53297373a894 130 * interrupt. */
mbed_official 579:53297373a894 131 SYSTEM_INTERRUPT_MODULE_I2S = I2S_IRQn,
mbed_official 579:53297373a894 132 };
mbed_official 579:53297373a894 133
mbed_official 579:53297373a894 134 /** @} */
mbed_official 579:53297373a894 135
mbed_official 579:53297373a894 136 #endif