Fork of mbed-dev build 137, last build before FAT file system appears to be broken. Also reduced HSE timeout time in STM4XX HAL

Fork of mbed-dev by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Mon Nov 02 10:15:09 2015 +0000
Parent:
13:da2ea05f91cf
Child:
15:a81a8d6c1dfe
Commit message:
Synchronized with git revision 5eccd220ead2bdcde483fff5a2c4de66a0c0e08f

Full URL: https://github.com/mbedmicro/mbed/commit/5eccd220ead2bdcde483fff5a2c4de66a0c0e08f/

Added Keil compiler support for Atmel Targets

Changed in this revision

targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/SAMD21G18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/startup_SAMD21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/SAMD21G18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/startup_SAMD21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_GCC_ARM/samd21g18a.ld Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/SAMD21J18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/startup_SAMD21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/SAMD21J18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/startup_SAMD21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_GCC_ARM/samd21j18a.ld Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/SAMR21G18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/startup_SAMR21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/SAMR21G18A.sct Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/startup_SAMR21.s Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/sys.cpp Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_GCC_ARM/samr21g18a.ld Show annotated file Show diff for this revision Revisions of this file
targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/cmsis_nvic.c Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/SAMD21G18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMD21G18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMD21G18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 45 vectors * 4 bytes = (0xB4) - alignment
+    RW_IRAM1 (0x20000000+0xB4) (0x8000-0xB4)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/startup_SAMD21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,190 @@
+;/*****************************************************************************
+; * @file     startup_SAMD21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMD21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_MICRO/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/SAMD21G18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMD21G18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMD21G18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 45 vectors * 4 bytes = (0xB4) - alignment
+    RW_IRAM1 (0x20000000+0xB4) (0x8000-0xB4)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/startup_SAMD21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,190 @@
+;/*****************************************************************************
+; * @file     startup_SAMD21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMD21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_ARM_STD/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- a/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_GCC_ARM/samd21g18a.ld	Thu Oct 29 12:00:09 2015 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21G18A/TOOLCHAIN_GCC_ARM/samd21g18a.ld	Mon Nov 02 10:15:09 2015 +0000
@@ -3,19 +3,17 @@
 SEARCH_DIR(.)
 
 /* Memory Spaces Definitions */
-MEMORY
-{
-  rom (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00040000
-  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
-}
+MEMORY {
+    rom (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00040000
+        ram (rwx) : ORIGIN = 0x20000000 + 0xB4, LENGTH = 0x00008000 - 0xB4
+    }
 
-/* The stack size used by the application. NOTE: you need to adjust according to your application. */
-STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
+    /* The stack size used by the application. NOTE: you need to adjust according to your application. */
+    STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
 
-/* Section Definitions */
-SECTIONS
-{
-    .text :
+    /* Section Definitions */
+    SECTIONS {
+.text :
     {
         . = ALIGN(4);
         _sfixed = .;
@@ -66,23 +64,17 @@
 
     /* .ARM.exidx is sorted, so has to go in its own output section.  */
     PROVIDE_HIDDEN (__exidx_start = .);
-    .ARM.exidx :
+.ARM.exidx :
     {
-      *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
     } > rom
     PROVIDE_HIDDEN (__exidx_end = .);
 
     . = ALIGN(4);
     _etext = .;
-	
-	.dvectors (NOLOAD) :
-	{
-		_sdvectors = .;
-		. = . + 0xB0;
-		_edvectors = .;
-	} > ram
 
-    .relocate : AT (_etext)
+.relocate :
+    AT (_etext)
     {
         . = ALIGN(4);
         _srelocate = .;
@@ -105,12 +97,12 @@
         _ezero = .;
     } > ram
 
-	.heap (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__end__ = . ;
-		. = ORIGIN(ram) + LENGTH(ram) - STACK_SIZE;
-	} > ram
+    .heap (NOLOAD) :
+    {
+        . = ALIGN(4);
+        __end__ = . ;
+        . = ORIGIN(ram) + LENGTH(ram) - STACK_SIZE;
+    } > ram
 
     /* stack section */
     .stack (NOLOAD):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/SAMD21J18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMD21J18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMD21J18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 45 vectors * 4 bytes = (0xB4) - alignment
+    RW_IRAM1 (0x20000000+0xB4) (0x8000-0xB4)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/startup_SAMD21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,190 @@
+;/*****************************************************************************
+; * @file     startup_SAMD21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMD21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_MICRO/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/SAMD21J18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMD21J18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMD21J18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 45 vectors * 4 bytes = (0xB4) - alignment
+    RW_IRAM1 (0x20000000+0xB4) (0x8000-0xB4)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/startup_SAMD21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,190 @@
+;/*****************************************************************************
+; * @file     startup_SAMD21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMD21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_ARM_STD/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- a/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_GCC_ARM/samd21j18a.ld	Thu Oct 29 12:00:09 2015 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMD21/TARGET_SAMD21J18A/TOOLCHAIN_GCC_ARM/samd21j18a.ld	Mon Nov 02 10:15:09 2015 +0000
@@ -5,7 +5,7 @@
 /* Memory Spaces Definitions */
 MEMORY {
     rom (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00040000
-        ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
+        ram (rwx) : ORIGIN = 0x20000000 + 0xB4, LENGTH = 0x00008000 - 0xB4
     }
 
     /* The stack size used by the application. NOTE: you need to adjust according to your application. */
@@ -73,13 +73,6 @@
     . = ALIGN(4);
     _etext = .;
 
-    .dvectors (NOLOAD) :
-    {
-        _sdvectors = .;
-        . = . + 0xB0;
-        _edvectors = .;
-    } > ram
-
 .relocate :
     AT (_etext)
     {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/SAMR21G18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMR21G18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMR21G18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 44 vectors * 4 bytes = (0xB0) - alignment
+    RW_IRAM1 (0x20000000+0xB0) (0x8000-0xB0)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/startup_SAMR21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,189 @@
+;/*****************************************************************************
+; * @file     startup_SAMR21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMR21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_MICRO/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/SAMR21G18A.sct	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,19 @@
+;SAMR21G18A
+;256KB FLASH (0x40000) @ 0x000000000
+;2KB RAM (0x8000) @ 0x20000000
+
+
+;SAMR21G18A: 256KB FLASH (0x40000) + 32KB RAM (0x8000)
+LR_IROM1 0x00000000 0x40000  {    ; load region size_region
+    ER_IROM1 0x00000000 0x40000  {  ; load address = execution address 
+        *.o (RESET, +First)
+        *(InRoot$$Sections)
+        .ANY (+RO)
+    }
+
+    ; [RAM] Vector table dynamic copy: 44 vectors * 4 bytes = (0xB0) - alignment
+    RW_IRAM1 (0x20000000+0xB0) (0x8000-0xB0)  {  ; RW data
+        .ANY (+RW +ZI)
+    }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/startup_SAMR21.s	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,189 @@
+;/*****************************************************************************
+; * @file     startup_SAMR21.s
+; * @brief    CMSIS Cortex-M0+ Core Device Startup File for
+; *           Atmel SAMR21 Device Series
+; * @version  V1.00
+; * @date     24. February 2014
+; *
+; * @note
+; * Copyright (C) 2014 ARM Limited. All rights reserved.
+; *
+; * @par
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M
+; * processor based microcontrollers.  This file can be freely distributed
+; * within development tools that are supporting such ARM based processors.
+; *
+; * @par
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+; *
+; ******************************************************************************/
+__initial_sp        EQU     0x20008000  ; Top of RAM
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp              ; Top of Stack
+                DCD     Reset_Handler             ; Reset Handler
+                DCD     NMI_Handler               ; NMI Handler
+                DCD     HardFault_Handler         ; Hard Fault Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     SVC_Handler               ; SVCall Handler
+                DCD     0                         ; Reserved
+                DCD     0                         ; Reserved
+                DCD     PendSV_Handler            ; PendSV Handler
+                DCD     SysTick_Handler           ; SysTick Handler
+
+                ; External Interrupts
+                DCD     PM_Handler                ;  0 Power Manager
+                DCD     SYSCTRL_Handler           ;  1 System Control
+                DCD     WDT_Handler               ;  2 Watchdog Timer
+                DCD     RTC_Handler               ;  3 Real-Time Counter
+                DCD     EIC_Handler               ;  4 External Interrupt Controller
+                DCD     NVMCTRL_Handler           ;  5 Non-Volatile Memory Controller
+                DCD     DMAC_Handler              ;  6 Direct Memory Access Controller
+                DCD     USB_Handler               ;  7 Universal Serial Bus
+                DCD     EVSYS_Handler             ;  8 Event System Interface
+                DCD     SERCOM0_Handler           ;  9 Serial Communication Interface 0
+                DCD     SERCOM1_Handler           ; 10 Serial Communication Interface 1
+                DCD     SERCOM2_Handler           ; 11 Serial Communication Interface 2
+                DCD     SERCOM3_Handler           ; 12 Serial Communication Interface 3
+                DCD     SERCOM4_Handler           ; 13 Serial Communication Interface 4
+                DCD     SERCOM5_Handler           ; 14 Serial Communication Interface 5
+                DCD     TCC0_Handler              ; 15 Timer Counter Control 0
+                DCD     TCC1_Handler              ; 16 Timer Counter Control 1
+                DCD     TCC2_Handler              ; 17 Timer Counter Control 2
+                DCD     TC3_Handler               ; 18 Basic Timer Counter 0
+                DCD     TC4_Handler               ; 19 Basic Timer Counter 1
+                DCD     TC5_Handler               ; 20 Basic Timer Counter 2
+                DCD     TC6_Handler               ; 21 Basic Timer Counter 3
+                DCD     TC7_Handler               ; 22 Basic Timer Counter 4
+                DCD     ADC_Handler               ; 23 Analog Digital Converter
+                DCD     AC_Handler                ; 24 Analog Comparators
+                DCD     DAC_Handler               ; 25 Digital Analog Converter
+                DCD     PTC_Handler               ; 26 Peripheral Touch Controller
+                DCD     I2S_Handler               ; 27 Inter-IC Sound Interface
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler   PROC
+                EXPORT Reset_Handler                    [WEAK]
+                IMPORT SystemInit
+                IMPORT __main
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler               [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler         [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler               [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler            [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler           [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+                EXPORT  PM_Handler                [WEAK]
+                EXPORT  SYSCTRL_Handler           [WEAK]
+                EXPORT  WDT_Handler               [WEAK]
+                EXPORT  RTC_Handler               [WEAK]
+                EXPORT  EIC_Handler               [WEAK]
+                EXPORT  NVMCTRL_Handler           [WEAK]
+                EXPORT  DMAC_Handler              [WEAK]
+                EXPORT  USB_Handler               [WEAK]
+                EXPORT  EVSYS_Handler             [WEAK]
+                EXPORT  SERCOM0_Handler           [WEAK]
+                EXPORT  SERCOM1_Handler           [WEAK]
+                EXPORT  SERCOM2_Handler           [WEAK]
+                EXPORT  SERCOM3_Handler           [WEAK]
+                EXPORT  SERCOM4_Handler           [WEAK]
+                EXPORT  SERCOM5_Handler           [WEAK]
+                EXPORT  TCC0_Handler              [WEAK]
+                EXPORT  TCC1_Handler              [WEAK]
+                EXPORT  TCC2_Handler              [WEAK]
+                EXPORT  TC3_Handler               [WEAK]
+                EXPORT  TC4_Handler               [WEAK]
+                EXPORT  TC5_Handler               [WEAK]
+                EXPORT  TC6_Handler               [WEAK]
+                EXPORT  TC7_Handler               [WEAK]
+                EXPORT  ADC_Handler               [WEAK]
+                EXPORT  AC_Handler                [WEAK]
+                EXPORT  DAC_Handler               [WEAK]
+                EXPORT  PTC_Handler               [WEAK]
+                EXPORT  I2S_Handler               [WEAK]
+
+PM_Handler
+SYSCTRL_Handler
+WDT_Handler
+RTC_Handler
+EIC_Handler
+NVMCTRL_Handler
+DMAC_Handler
+USB_Handler
+EVSYS_Handler
+SERCOM0_Handler
+SERCOM1_Handler
+SERCOM2_Handler
+SERCOM3_Handler
+SERCOM4_Handler
+SERCOM5_Handler
+TCC0_Handler
+TCC1_Handler
+TCC2_Handler
+TC3_Handler
+TC4_Handler
+TC5_Handler
+TC6_Handler
+TC7_Handler
+ADC_Handler
+AC_Handler
+DAC_Handler
+PTC_Handler
+I2S_Handler
+                B       .
+                ENDP
+
+
+                ALIGN
+                END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_ARM_STD/sys.cpp	Mon Nov 02 10:15:09 2015 +0000
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rt_misc.h>
+#include <stdint.h>
+
+extern char Image$$RW_IRAM1$$ZI$$Limit[];
+
+extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3)
+{
+    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
+    uint32_t sp_limit = __current_sp();
+
+    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
+
+    struct __initial_stackheap r;
+    r.heap_base = zi_limit;
+    r.heap_limit = sp_limit;
+    return r;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- a/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_GCC_ARM/samr21g18a.ld	Thu Oct 29 12:00:09 2015 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/TARGET_SAMR21G18A/TOOLCHAIN_GCC_ARM/samr21g18a.ld	Mon Nov 02 10:15:09 2015 +0000
@@ -5,7 +5,7 @@
 /* Memory Spaces Definitions */
 MEMORY {
     rom (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00040000
-        ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
+        ram (rwx) : ORIGIN = 0x20000000 + 0xB0, LENGTH = 0x00008000 - 0xB0
     }
 
     /* The stack size used by the application. NOTE: you need to adjust according to your application. */
@@ -73,13 +73,6 @@
     . = ALIGN(4);
     _etext = .;
 
-    .dvectors (NOLOAD) :
-    {
-        _sdvectors = .;
-        . = . + 0xB0;
-        _edvectors = .;
-    } > ram
-
 .relocate :
     AT (_etext)
     {
--- a/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/cmsis_nvic.c	Thu Oct 29 12:00:09 2015 +0000
+++ b/targets/cmsis/TARGET_Atmel/TARGET_SAM_CortexM0+/TARGET_SAMR21/cmsis_nvic.c	Mon Nov 02 10:15:09 2015 +0000
@@ -30,8 +30,8 @@
  */
 #include "cmsis_nvic.h"
 
-//#define NVIC_RAM_VECTOR_ADDRESS (0x20000000)  // Vectors positioned at start of RAM
-extern uint32_t _sdvectors;
+#define NVIC_RAM_VECTOR_ADDRESS (0x20000000)  // Vectors positioned at start of RAM
+//extern uint32_t _sdvectors;
 #define NVIC_FLASH_VECTOR_ADDRESS (0x0)       // Initial vector position in flash
 
 void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
@@ -42,11 +42,11 @@
     // Copy and switch to dynamic vectors if the first time called
     if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) {
         uint32_t *old_vectors = vectors;
-        vectors = (uint32_t*)&_sdvectors;
+        vectors = (uint32_t*)NVIC_RAM_VECTOR_ADDRESS;
         for (i=0; i<NVIC_NUM_VECTORS; i++) {
             vectors[i] = old_vectors[i];
         }
-        SCB->VTOR = (uint32_t)&_sdvectors;
+        SCB->VTOR = (uint32_t)NVIC_RAM_VECTOR_ADDRESS;
     }
     vectors[IRQn + 16] = vector;
 }