Lancaster University's (short term!) clone of mbed-src for micro:bit. This is a copy of the github branch https://github.com/lancaster-university/mbed-classic

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_H_INCLUDED
mbed_official 579:53297373a894 2 #define SYSTEM_INTERRUPT_H_INCLUDED
mbed_official 579:53297373a894 3
mbed_official 579:53297373a894 4 #ifdef __cplusplus
mbed_official 579:53297373a894 5 extern "C" {
mbed_official 579:53297373a894 6 #endif
mbed_official 579:53297373a894 7
mbed_official 579:53297373a894 8 /**
mbed_official 579:53297373a894 9 * \defgroup asfdoc_sam0_system_interrupt_group SAM System Interrupt Driver (SYSTEM INTERRUPT)
mbed_official 579:53297373a894 10 *
mbed_official 579:53297373a894 11 * This driver for Atmel庐 | SMART SAM devices provides an interface for the configuration
mbed_official 579:53297373a894 12 * and management of internal software and hardware interrupts/exceptions.
mbed_official 579:53297373a894 13 *
mbed_official 579:53297373a894 14 * The following peripherals are used by this module:
mbed_official 579:53297373a894 15 * - NVIC (Nested Vector Interrupt Controller)
mbed_official 579:53297373a894 16 *
mbed_official 579:53297373a894 17 * The following devices can use this module:
mbed_official 579:53297373a894 18 * - Atmel | SMART SAM D20/D21
mbed_official 579:53297373a894 19 * - Atmel | SMART SAM R21
mbed_official 579:53297373a894 20 * - Atmel | SMART SAM D10/D11
mbed_official 579:53297373a894 21 * - Atmel | SMART SAM L21
mbed_official 579:53297373a894 22 *
mbed_official 579:53297373a894 23 * The outline of this documentation is as follows:
mbed_official 579:53297373a894 24 * - \ref asfdoc_sam0_system_interrupt_prerequisites
mbed_official 579:53297373a894 25 * - \ref asfdoc_sam0_system_interrupt_module_overview
mbed_official 579:53297373a894 26 * - \ref asfdoc_sam0_system_interrupt_special_considerations
mbed_official 579:53297373a894 27 * - \ref asfdoc_sam0_system_interrupt_extra_info
mbed_official 579:53297373a894 28 * - \ref asfdoc_sam0_system_interrupt_examples
mbed_official 579:53297373a894 29 * - \ref asfdoc_sam0_system_interrupt_api_overview
mbed_official 579:53297373a894 30 *
mbed_official 579:53297373a894 31 *
mbed_official 579:53297373a894 32 * \section asfdoc_sam0_system_interrupt_prerequisites Prerequisites
mbed_official 579:53297373a894 33 *
mbed_official 579:53297373a894 34 * There are no prerequisites for this module.
mbed_official 579:53297373a894 35 *
mbed_official 579:53297373a894 36 *
mbed_official 579:53297373a894 37 * \section asfdoc_sam0_system_interrupt_module_overview Module Overview
mbed_official 579:53297373a894 38 *
mbed_official 579:53297373a894 39 * The ARM® Cortex® M0+ core contains an interrupt and exception vector table, which
mbed_official 579:53297373a894 40 * can be used to configure the device's interrupt handlers; individual
mbed_official 579:53297373a894 41 * interrupts and exceptions can be enabled and disabled, as well as configured
mbed_official 579:53297373a894 42 * with a variable priority.
mbed_official 579:53297373a894 43 *
mbed_official 579:53297373a894 44 * This driver provides a set of wrappers around the core interrupt functions,
mbed_official 579:53297373a894 45 * to expose a simple API for the management of global and individual interrupts
mbed_official 579:53297373a894 46 * within the device.
mbed_official 579:53297373a894 47 *
mbed_official 579:53297373a894 48 * \subsection asfdoc_sam0_system_interrupt_module_overview_criticalsec Critical Sections
mbed_official 579:53297373a894 49 * In some applications it is important to ensure that no interrupts may be
mbed_official 579:53297373a894 50 * executed by the system whilst a critical portion of code is being run; for
mbed_official 579:53297373a894 51 * example, a buffer may be copied from one context to another - during which
mbed_official 579:53297373a894 52 * interrupts must be disabled to avoid corruption of the source buffer contents
mbed_official 579:53297373a894 53 * until the copy has completed. This driver provides a basic API to enter and
mbed_official 579:53297373a894 54 * exit nested critical sections, so that global interrupts can be kept disabled
mbed_official 579:53297373a894 55 * for as long as necessary to complete a critical application code section.
mbed_official 579:53297373a894 56 *
mbed_official 579:53297373a894 57 * \subsection asfdoc_sam0_system_interrupt_module_overview_softints Software Interrupts
mbed_official 579:53297373a894 58 * For some applications, it may be desirable to raise a module or core
mbed_official 579:53297373a894 59 * interrupt via software. For this reason, a set of APIs to set an interrupt or
mbed_official 579:53297373a894 60 * exception as pending are provided to the user application.
mbed_official 579:53297373a894 61 *
mbed_official 579:53297373a894 62 * \section asfdoc_sam0_system_interrupt_special_considerations Special Considerations
mbed_official 579:53297373a894 63 *
mbed_official 579:53297373a894 64 * Interrupts from peripherals in the SAM devices are on a per-module basis;
mbed_official 579:53297373a894 65 * an interrupt raised from any source within a module will cause a single,
mbed_official 579:53297373a894 66 * module-common handler to execute. It is the user application or driver's
mbed_official 579:53297373a894 67 * responsibility to de-multiplex the module-common interrupt to determine the
mbed_official 579:53297373a894 68 * exact interrupt cause.
mbed_official 579:53297373a894 69 *
mbed_official 579:53297373a894 70 * \section asfdoc_sam0_system_interrupt_extra_info Extra Information
mbed_official 579:53297373a894 71 *
mbed_official 579:53297373a894 72 * For extra information, see \ref asfdoc_sam0_system_interrupt_extra. This includes:
mbed_official 579:53297373a894 73 * - \ref asfdoc_sam0_system_interrupt_extra_acronyms
mbed_official 579:53297373a894 74 * - \ref asfdoc_sam0_system_interrupt_extra_dependencies
mbed_official 579:53297373a894 75 * - \ref asfdoc_sam0_system_interrupt_extra_errata
mbed_official 579:53297373a894 76 * - \ref asfdoc_sam0_system_interrupt_extra_history
mbed_official 579:53297373a894 77 *
mbed_official 579:53297373a894 78 *
mbed_official 579:53297373a894 79 * \section asfdoc_sam0_system_interrupt_examples Examples
mbed_official 579:53297373a894 80 *
mbed_official 579:53297373a894 81 * For a list of examples related to this driver, see
mbed_official 579:53297373a894 82 * \ref asfdoc_sam0_system_interrupt_exqsg.
mbed_official 579:53297373a894 83 *
mbed_official 579:53297373a894 84 * \section asfdoc_sam0_system_interrupt_api_overview API Overview
mbed_official 579:53297373a894 85 * @{
mbed_official 579:53297373a894 86 */
mbed_official 579:53297373a894 87
mbed_official 579:53297373a894 88 #include <compiler.h>
mbed_official 579:53297373a894 89 //#include <core_cm0plus.h>
mbed_official 579:53297373a894 90 #include "system_interrupt_features.h"
mbed_official 579:53297373a894 91
mbed_official 579:53297373a894 92 #include <interrupt_sam_nvic.h>
mbed_official 579:53297373a894 93 #include "status_codes.h"
mbed_official 579:53297373a894 94 /**
mbed_official 579:53297373a894 95 * \brief Table of possible system interrupt/exception vector priorities.
mbed_official 579:53297373a894 96 *
mbed_official 579:53297373a894 97 * Table of all possible interrupt and exception vector priorities within the
mbed_official 579:53297373a894 98 * device.
mbed_official 579:53297373a894 99 */
mbed_official 579:53297373a894 100 enum system_interrupt_priority_level {
mbed_official 579:53297373a894 101 /** Priority level 0, the highest possible interrupt priority. */
mbed_official 579:53297373a894 102 SYSTEM_INTERRUPT_PRIORITY_LEVEL_0 = 0,
mbed_official 579:53297373a894 103 /** Priority level 1. */
mbed_official 579:53297373a894 104 SYSTEM_INTERRUPT_PRIORITY_LEVEL_1 = 1,
mbed_official 579:53297373a894 105 /** Priority level 2. */
mbed_official 579:53297373a894 106 SYSTEM_INTERRUPT_PRIORITY_LEVEL_2 = 2,
mbed_official 579:53297373a894 107 /** Priority level 3, the lowest possible interrupt priority. */
mbed_official 579:53297373a894 108 SYSTEM_INTERRUPT_PRIORITY_LEVEL_3 = 3,
mbed_official 579:53297373a894 109 };
mbed_official 579:53297373a894 110
mbed_official 579:53297373a894 111 /**
mbed_official 579:53297373a894 112 * \name Critical Section Management
mbed_official 579:53297373a894 113 * @{
mbed_official 579:53297373a894 114 */
mbed_official 579:53297373a894 115
mbed_official 579:53297373a894 116 /**
mbed_official 579:53297373a894 117 * \brief Enters a critical section.
mbed_official 579:53297373a894 118 *
mbed_official 579:53297373a894 119 * Disables global interrupts. To support nested critical sections, an internal
mbed_official 579:53297373a894 120 * count of the critical section nesting will be kept, so that global interrupts
mbed_official 579:53297373a894 121 * are only re-enabled upon leaving the outermost nested critical section.
mbed_official 579:53297373a894 122 *
mbed_official 579:53297373a894 123 */
mbed_official 579:53297373a894 124 static inline void system_interrupt_enter_critical_section(void)
mbed_official 579:53297373a894 125 {
mbed_official 579:53297373a894 126 cpu_irq_enter_critical();
mbed_official 579:53297373a894 127 }
mbed_official 579:53297373a894 128
mbed_official 579:53297373a894 129 /**
mbed_official 579:53297373a894 130 * \brief Leaves a critical section.
mbed_official 579:53297373a894 131 *
mbed_official 579:53297373a894 132 * Enables global interrupts. To support nested critical sections, an internal
mbed_official 579:53297373a894 133 * count of the critical section nesting will be kept, so that global interrupts
mbed_official 579:53297373a894 134 * are only re-enabled upon leaving the outermost nested critical section.
mbed_official 579:53297373a894 135 *
mbed_official 579:53297373a894 136 */
mbed_official 579:53297373a894 137 static inline void system_interrupt_leave_critical_section(void)
mbed_official 579:53297373a894 138 {
mbed_official 579:53297373a894 139 cpu_irq_leave_critical();
mbed_official 579:53297373a894 140 }
mbed_official 579:53297373a894 141
mbed_official 579:53297373a894 142 /** @} */
mbed_official 579:53297373a894 143
mbed_official 579:53297373a894 144 /**
mbed_official 579:53297373a894 145 * \name Interrupt Enabling/Disabling
mbed_official 579:53297373a894 146 * @{
mbed_official 579:53297373a894 147 */
mbed_official 579:53297373a894 148
mbed_official 579:53297373a894 149 /**
mbed_official 579:53297373a894 150 * \brief Check if global interrupts are enabled.
mbed_official 579:53297373a894 151 *
mbed_official 579:53297373a894 152 * Checks if global interrupts are currently enabled.
mbed_official 579:53297373a894 153 *
mbed_official 579:53297373a894 154 * \returns A boolean that identifies if the global interrupts are enabled or not.
mbed_official 579:53297373a894 155 *
mbed_official 579:53297373a894 156 * \retval true Global interrupts are currently enabled
mbed_official 579:53297373a894 157 * \retval false Global interrupts are currently disabled
mbed_official 579:53297373a894 158 *
mbed_official 579:53297373a894 159 */
mbed_official 579:53297373a894 160 static inline bool system_interrupt_is_global_enabled(void)
mbed_official 579:53297373a894 161 {
mbed_official 579:53297373a894 162 return cpu_irq_is_enabled();
mbed_official 579:53297373a894 163 }
mbed_official 579:53297373a894 164
mbed_official 579:53297373a894 165 /**
mbed_official 579:53297373a894 166 * \brief Enables global interrupts.
mbed_official 579:53297373a894 167 *
mbed_official 579:53297373a894 168 * Enables global interrupts in the device to fire any enabled interrupt handlers.
mbed_official 579:53297373a894 169 */
mbed_official 579:53297373a894 170 static inline void system_interrupt_enable_global(void)
mbed_official 579:53297373a894 171 {
mbed_official 579:53297373a894 172 cpu_irq_enable();
mbed_official 579:53297373a894 173 }
mbed_official 579:53297373a894 174
mbed_official 579:53297373a894 175 /**
mbed_official 579:53297373a894 176 * \brief Disables global interrupts.
mbed_official 579:53297373a894 177 *
mbed_official 579:53297373a894 178 * Disabled global interrupts in the device, preventing any enabled interrupt
mbed_official 579:53297373a894 179 * handlers from executing.
mbed_official 579:53297373a894 180 */
mbed_official 579:53297373a894 181 static inline void system_interrupt_disable_global(void)
mbed_official 579:53297373a894 182 {
mbed_official 579:53297373a894 183 cpu_irq_disable();
mbed_official 579:53297373a894 184 }
mbed_official 579:53297373a894 185
mbed_official 579:53297373a894 186 /**
mbed_official 579:53297373a894 187 * \brief Checks if an interrupt vector is enabled or not.
mbed_official 579:53297373a894 188 *
mbed_official 579:53297373a894 189 * Checks if a specific interrupt vector is currently enabled.
mbed_official 579:53297373a894 190 *
mbed_official 579:53297373a894 191 * \param[in] vector Interrupt vector number to check
mbed_official 579:53297373a894 192 *
mbed_official 579:53297373a894 193 * \returns A variable identifying if the requested interrupt vector is enabled.
mbed_official 579:53297373a894 194 *
mbed_official 579:53297373a894 195 * \retval true Specified interrupt vector is currently enabled
mbed_official 579:53297373a894 196 * \retval false Specified interrupt vector is currently disabled
mbed_official 579:53297373a894 197 *
mbed_official 579:53297373a894 198 */
mbed_official 579:53297373a894 199 static inline bool system_interrupt_is_enabled(
mbed_official 579:53297373a894 200 const enum system_interrupt_vector vector)
mbed_official 579:53297373a894 201 {
mbed_official 579:53297373a894 202 return (bool)((NVIC->ISER[0] >> (uint32_t)vector) & 0x00000001);
mbed_official 579:53297373a894 203 }
mbed_official 579:53297373a894 204
mbed_official 579:53297373a894 205 /**
mbed_official 579:53297373a894 206 * \brief Enable interrupt vector.
mbed_official 579:53297373a894 207 *
mbed_official 579:53297373a894 208 * Enables execution of the software handler for the requested interrupt vector.
mbed_official 579:53297373a894 209 *
mbed_official 579:53297373a894 210 * \param[in] vector Interrupt vector to enable
mbed_official 579:53297373a894 211 */
mbed_official 579:53297373a894 212 static inline void system_interrupt_enable(
mbed_official 579:53297373a894 213 const enum system_interrupt_vector vector)
mbed_official 579:53297373a894 214 {
mbed_official 579:53297373a894 215 NVIC->ISER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
mbed_official 579:53297373a894 216 }
mbed_official 579:53297373a894 217
mbed_official 579:53297373a894 218 /**
mbed_official 579:53297373a894 219 * \brief Disable interrupt vector.
mbed_official 579:53297373a894 220 *
mbed_official 579:53297373a894 221 * Disables execution of the software handler for the requested interrupt vector.
mbed_official 579:53297373a894 222 *
mbed_official 579:53297373a894 223 * \param[in] vector Interrupt vector to disable
mbed_official 579:53297373a894 224 */
mbed_official 579:53297373a894 225 static inline void system_interrupt_disable(
mbed_official 579:53297373a894 226 const enum system_interrupt_vector vector)
mbed_official 579:53297373a894 227 {
mbed_official 579:53297373a894 228 NVIC->ICER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
mbed_official 579:53297373a894 229 }
mbed_official 579:53297373a894 230
mbed_official 579:53297373a894 231 /** @} */
mbed_official 579:53297373a894 232
mbed_official 579:53297373a894 233 /**
mbed_official 579:53297373a894 234 * \name Interrupt State Management
mbed_official 579:53297373a894 235 * @{
mbed_official 579:53297373a894 236 */
mbed_official 579:53297373a894 237
mbed_official 579:53297373a894 238 /**
mbed_official 579:53297373a894 239 * \brief Get active interrupt (if any).
mbed_official 579:53297373a894 240 *
mbed_official 579:53297373a894 241 * Return the vector number for the current executing software handler, if any.
mbed_official 579:53297373a894 242 *
mbed_official 579:53297373a894 243 * \return Interrupt number that is currently executing.
mbed_official 579:53297373a894 244 */
mbed_official 579:53297373a894 245 static inline enum system_interrupt_vector system_interrupt_get_active(void)
mbed_official 579:53297373a894 246 {
mbed_official 579:53297373a894 247 uint32_t IPSR = __get_IPSR();
mbed_official 579:53297373a894 248
mbed_official 579:53297373a894 249 return (enum system_interrupt_vector)(IPSR & _SYSTEM_INTERRUPT_IPSR_MASK);
mbed_official 579:53297373a894 250 }
mbed_official 579:53297373a894 251
mbed_official 579:53297373a894 252 bool system_interrupt_is_pending(
mbed_official 579:53297373a894 253 const enum system_interrupt_vector vector);
mbed_official 579:53297373a894 254
mbed_official 579:53297373a894 255 enum status_code system_interrupt_set_pending(
mbed_official 579:53297373a894 256 const enum system_interrupt_vector vector);
mbed_official 579:53297373a894 257
mbed_official 579:53297373a894 258 enum status_code system_interrupt_clear_pending(
mbed_official 579:53297373a894 259 const enum system_interrupt_vector vector);
mbed_official 579:53297373a894 260
mbed_official 579:53297373a894 261 /** @} */
mbed_official 579:53297373a894 262
mbed_official 579:53297373a894 263 /**
mbed_official 579:53297373a894 264 * \name Interrupt Priority Management
mbed_official 579:53297373a894 265 * @{
mbed_official 579:53297373a894 266 */
mbed_official 579:53297373a894 267
mbed_official 579:53297373a894 268 enum status_code system_interrupt_set_priority(
mbed_official 579:53297373a894 269 const enum system_interrupt_vector vector,
mbed_official 579:53297373a894 270 const enum system_interrupt_priority_level priority_level);
mbed_official 579:53297373a894 271
mbed_official 579:53297373a894 272 enum system_interrupt_priority_level system_interrupt_get_priority(
mbed_official 579:53297373a894 273 const enum system_interrupt_vector vector);
mbed_official 579:53297373a894 274
mbed_official 579:53297373a894 275 /** @} */
mbed_official 579:53297373a894 276
mbed_official 579:53297373a894 277 /** @} */
mbed_official 579:53297373a894 278
mbed_official 579:53297373a894 279 /**
mbed_official 579:53297373a894 280 * \page asfdoc_sam0_system_interrupt_extra Extra Information for SYSTEM INTERRUPT Driver
mbed_official 579:53297373a894 281 *
mbed_official 579:53297373a894 282 * \section asfdoc_sam0_system_interrupt_extra_acronyms Acronyms
mbed_official 579:53297373a894 283 * The table below presents the acronyms used in this module:
mbed_official 579:53297373a894 284 *
mbed_official 579:53297373a894 285 * <table>
mbed_official 579:53297373a894 286 * <tr>
mbed_official 579:53297373a894 287 * <th>Acronym</th>
mbed_official 579:53297373a894 288 * <th>Description</th>
mbed_official 579:53297373a894 289 * </tr>
mbed_official 579:53297373a894 290 * <tr>
mbed_official 579:53297373a894 291 * <td>ISR</td>
mbed_official 579:53297373a894 292 * <td>Interrupt Service Routine</td>
mbed_official 579:53297373a894 293 * </tr>
mbed_official 579:53297373a894 294 * <tr>
mbed_official 579:53297373a894 295 * <td>NMI</td>
mbed_official 579:53297373a894 296 * <td>Non-maskable Interrupt</td>
mbed_official 579:53297373a894 297 * </tr>
mbed_official 579:53297373a894 298 * <tr>
mbed_official 579:53297373a894 299 * <td>SERCOM</td>
mbed_official 579:53297373a894 300 * <td>Serial Communication Interface</td>
mbed_official 579:53297373a894 301 * </tr>
mbed_official 579:53297373a894 302 * </table>
mbed_official 579:53297373a894 303 *
mbed_official 579:53297373a894 304 *
mbed_official 579:53297373a894 305 * \section asfdoc_sam0_system_interrupt_extra_dependencies Dependencies
mbed_official 579:53297373a894 306 * This driver has the following dependencies:
mbed_official 579:53297373a894 307 *
mbed_official 579:53297373a894 308 * - None
mbed_official 579:53297373a894 309 *
mbed_official 579:53297373a894 310 *
mbed_official 579:53297373a894 311 * \section asfdoc_sam0_system_interrupt_extra_errata Errata
mbed_official 579:53297373a894 312 * There are no errata related to this driver.
mbed_official 579:53297373a894 313 *
mbed_official 579:53297373a894 314 *
mbed_official 579:53297373a894 315 * \section asfdoc_sam0_system_interrupt_extra_history Module History
mbed_official 579:53297373a894 316 * An overview of the module history is presented in the table below, with
mbed_official 579:53297373a894 317 * details on the enhancements and fixes made to the module since its first
mbed_official 579:53297373a894 318 * release. The current version of this corresponds to the newest version in
mbed_official 579:53297373a894 319 * the table.
mbed_official 579:53297373a894 320 *
mbed_official 579:53297373a894 321 * <table>
mbed_official 579:53297373a894 322 * <tr>
mbed_official 579:53297373a894 323 * <th>Changelog</th>
mbed_official 579:53297373a894 324 * </tr>
mbed_official 579:53297373a894 325 * <tr>
mbed_official 579:53297373a894 326 * <td>Added support for SAML21</td>
mbed_official 579:53297373a894 327 * </tr>
mbed_official 579:53297373a894 328 * <tr>
mbed_official 579:53297373a894 329 * <td>Added support for SAMD10/D11</td>
mbed_official 579:53297373a894 330 * </tr>
mbed_official 579:53297373a894 331 * <tr>
mbed_official 579:53297373a894 332 * <td>Added support for SAMR21</td>
mbed_official 579:53297373a894 333 * </tr>
mbed_official 579:53297373a894 334 * <tr>
mbed_official 579:53297373a894 335 * <td>Added support for SAMD21</td>
mbed_official 579:53297373a894 336 * </tr>
mbed_official 579:53297373a894 337 * <tr>
mbed_official 579:53297373a894 338 * <td>Initial Release</td>
mbed_official 579:53297373a894 339 * </tr>
mbed_official 579:53297373a894 340 * </table>
mbed_official 579:53297373a894 341 */
mbed_official 579:53297373a894 342
mbed_official 579:53297373a894 343 /**
mbed_official 579:53297373a894 344 * \page asfdoc_sam0_system_interrupt_exqsg Examples for SYSTEM INTERRUPT Driver
mbed_official 579:53297373a894 345 *
mbed_official 579:53297373a894 346 * This is a list of the available Quick Start guides (QSGs) and example
mbed_official 579:53297373a894 347 * applications for \ref asfdoc_sam0_system_interrupt_group. QSGs are simple examples with
mbed_official 579:53297373a894 348 * step-by-step instructions to configure and use this driver in a selection of
mbed_official 579:53297373a894 349 * use cases. Note that QSGs can be compiled as a standalone application or be
mbed_official 579:53297373a894 350 * added to the user application.
mbed_official 579:53297373a894 351 *
mbed_official 579:53297373a894 352 * - \subpage asfdoc_sam0_system_interrupt_critsec_use_case
mbed_official 579:53297373a894 353 * - \subpage asfdoc_sam0_system_interrupt_enablemodint_use_case
mbed_official 579:53297373a894 354 *
mbed_official 579:53297373a894 355 * \page asfdoc_sam0_system_interrupt_document_revision_history Document Revision History
mbed_official 579:53297373a894 356 *
mbed_official 579:53297373a894 357 * <table>
mbed_official 579:53297373a894 358 * <tr>
mbed_official 579:53297373a894 359 * <th>Doc. Rev.</td>
mbed_official 579:53297373a894 360 * <th>Date</td>
mbed_official 579:53297373a894 361 * <th>Comments</td>
mbed_official 579:53297373a894 362 * </tr>
mbed_official 579:53297373a894 363 * <tr>
mbed_official 579:53297373a894 364 * <td>E</td>
mbed_official 579:53297373a894 365 * <td>11/2014</td>
mbed_official 579:53297373a894 366 * <td>Add support for SAML21.</td>
mbed_official 579:53297373a894 367 * </tr>
mbed_official 579:53297373a894 368 * <tr>
mbed_official 579:53297373a894 369 * <td>D</td>
mbed_official 579:53297373a894 370 * <td>12/2014</td>
mbed_official 579:53297373a894 371 * <td>Add support for SAMR21 and SAMD10/D11.</td>
mbed_official 579:53297373a894 372 * </tr>
mbed_official 579:53297373a894 373 * <tr>
mbed_official 579:53297373a894 374 * <td>C</td>
mbed_official 579:53297373a894 375 * <td>01/2014</td>
mbed_official 579:53297373a894 376 * <td>Add support for SAMD21.</td>
mbed_official 579:53297373a894 377 * </tr>
mbed_official 579:53297373a894 378 * <tr>
mbed_official 579:53297373a894 379 * <td>B</td>
mbed_official 579:53297373a894 380 * <td>06/2013</td>
mbed_official 579:53297373a894 381 * <td>Corrected documentation typos.</td>
mbed_official 579:53297373a894 382 * </tr>
mbed_official 579:53297373a894 383 * <tr>
mbed_official 579:53297373a894 384 * <td>A</td>
mbed_official 579:53297373a894 385 * <td>06/2013</td>
mbed_official 579:53297373a894 386 * <td>Initial release</td>
mbed_official 579:53297373a894 387 * </tr>
mbed_official 579:53297373a894 388 * </table>
mbed_official 579:53297373a894 389 */
mbed_official 579:53297373a894 390
mbed_official 579:53297373a894 391 #ifdef __cplusplus
mbed_official 579:53297373a894 392 }
mbed_official 579:53297373a894 393 #endif
mbed_official 579:53297373a894 394
mbed_official 579:53297373a894 395 #endif // #ifndef SYSTEM_INTERRUPT_H_INCLUDED