mbed library sources
Fork of mbed-src by
targets/hal/TARGET_Atmel/TARGET_SAM21/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h@592:a274ee790e56, 2015-07-17 (annotated)
- 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?
User | Revision | Line number | New 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 |