]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC/Keil_Specific/startup_MPS_CM4.S
Change name of the CEC and MEC directory to CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC...
[freertos] / FreeRTOS / Demo / CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC / Keil_Specific / startup_MPS_CM4.S
diff --git a/FreeRTOS/Demo/CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC/Keil_Specific/startup_MPS_CM4.S b/FreeRTOS/Demo/CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC/Keil_Specific/startup_MPS_CM4.S
new file mode 100644 (file)
index 0000000..85c6d63
--- /dev/null
@@ -0,0 +1,643 @@
+;/*****************************************************************************\r
+; * @file:    startup_MPS_CM4.s\r
+; * @purpose: CMSIS Cortex-M4 Core Device Startup File\r
+; *           for the ARM 'Microcontroller Prototyping System'\r
+; * @version: V1.00\r
+; * @date:    1. Jun. 2010\r
+; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------\r
+; *\r
+; * Copyright (C) 2008-2010 ARM Limited. All rights reserved.\r
+; * ARM Limited (ARM) is supplying this software for use with Cortex-M4\r
+; * processor based microcontrollers.  This file can be freely distributed\r
+; * within development tools that are supporting such ARM based processors.\r
+; *\r
+; * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
+; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
+; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
+; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
+; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
+; *\r
+; ****************************************************************************/\r
+\r
+\r
+; <h> Stack Configuration\r
+;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
+; </h>\r
+Stack_Size      EQU     0x00000800\r
+\r
+                AREA    STACK, NOINIT, READWRITE, ALIGN=3\r
+Stack_Mem       SPACE   Stack_Size\r
+__initial_sp\r
+\r
+\r
+; <h> Heap Configuration\r
+;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
+; </h>\r
+\r
+Heap_Size       EQU     0x00000000\r
+\r
+                AREA    HEAP, NOINIT, READWRITE, ALIGN=3\r
+__heap_base\r
+Heap_Mem        SPACE   Heap_Size\r
+__heap_limit\r
+\r
+\r
+                PRESERVE8\r
+                THUMB\r
+\r
+\r
+; Vector Table Mapped to Address 0 at Reset\r
+\r
+                AREA    RESET, DATA, READONLY\r
+                EXPORT  __Vectors\r
+\r
+__Vectors       DCD     __initial_sp              ; Top of Stack\r
+                DCD     Reset_Handler             ; Reset Handler\r
+                DCD     NMI_Handler               ; NMI Handler\r
+                DCD     HardFault_Handler         ; Hard Fault Handler\r
+                DCD     MemManage_Handler         ; MPU Fault Handler\r
+                DCD     BusFault_Handler          ; Bus Fault Handler\r
+                DCD     UsageFault_Handler        ; Usage Fault Handler\r
+                DCD     0                         ; Reserved\r
+                DCD     0                         ; Reserved\r
+                DCD     0                         ; Reserved\r
+                DCD     0                         ; Reserved\r
+                DCD     SVC_Handler               ; SVCall Handler\r
+                DCD     DebugMon_Handler          ; Debug Monitor Handler\r
+                DCD     0                         ; Reserved\r
+                DCD     PendSV_Handler            ; PendSV Handler\r
+                DCD     SysTick_Handler           ; SysTick Handler\r
+\r
+    ; External Interrupts\r
+    DCD    NVIC_Handler_GIRQ08         ;     40h: 0, GIRQ08\r
+    DCD    NVIC_Handler_GIRQ09         ;     44h: 1, GIRQ09\r
+    DCD    NVIC_Handler_GIRQ10         ;     48h: 2, GIRQ10\r
+    DCD    NVIC_Handler_GIRQ11         ;     4Ch: 3, GIRQ11\r
+    DCD    NVIC_Handler_GIRQ12         ;     50h: 4, GIRQ12\r
+    DCD    NVIC_Handler_GIRQ13         ;     54h: 5, GIRQ13\r
+    DCD    NVIC_Handler_GIRQ14         ;     58h: 6, GIRQ14\r
+    DCD    NVIC_Handler_GIRQ15         ;     5Ch: 7, GIRQ15\r
+    DCD    NVIC_Handler_GIRQ16         ;     60h: 8, GIRQ16\r
+    DCD    NVIC_Handler_GIRQ17         ;     64h: 9, GIRQ17\r
+    DCD    NVIC_Handler_GIRQ18         ;     68h: 10, GIRQ18\r
+    DCD    NVIC_Handler_GIRQ19         ;     6Ch: 11, GIRQ19\r
+    DCD    NVIC_Handler_GIRQ20         ;     70h: 12, GIRQ20\r
+    DCD    NVIC_Handler_GIRQ21         ;     74h: 13, GIRQ21\r
+    DCD    NVIC_Handler_GIRQ23         ;     78h: 14, GIRQ23\r
+    DCD    NVIC_Handler_GIRQ24         ;     7Ch: 15, GIRQ24\r
+    DCD    NVIC_Handler_GIRQ25         ;     80h: 16, GIRQ25\r
+    DCD    NVIC_Handler_GIRQ26         ;     84h: 17, GIRQ26\r
+    DCD    0                           ;     88h: 18, RSVD\r
+    DCD    0                           ;     8Ch: 19, RSVD\r
+    DCD    NVIC_Handler_I2C0           ;     90h: 20, I2C/SMBus 0\r
+    DCD    NVIC_Handler_I2C1           ;     94h: 21, I2C/SMBus 1\r
+    DCD    NVIC_Handler_I2C2           ;     98h: 22, I2C/SMBus 2\r
+    DCD    NVIC_Handler_I2C3           ;     9Ch: 23, I2C/SMBus 3\r
+    DCD    NVIC_Handler_DMA0           ;     A0h: 24, DMA Channel 0\r
+    DCD    NVIC_Handler_DMA1           ;     A4h: 25, DMA Channel 1\r
+    DCD    NVIC_Handler_DMA2           ;     A8h: 26, DMA Channel 2\r
+    DCD    NVIC_Handler_DMA3           ;     ACh: 27, DMA Channel 3\r
+    DCD    NVIC_Handler_DMA4           ;     B0h: 28, DMA Channel 4\r
+    DCD    NVIC_Handler_DMA5           ;     B4h: 29, DMA Channel 5\r
+    DCD    NVIC_Handler_DMA6           ;     B8h: 30, DMA Channel 6\r
+    DCD    NVIC_Handler_DMA7           ;     BCh: 31, DMA Channel 7\r
+    DCD    NVIC_Handler_DMA8           ;     C0h: 32, DMA Channel 8\r
+    DCD    NVIC_Handler_DMA9           ;     C4h: 33, DMA Channel 9\r
+    DCD    NVIC_Handler_DMA10          ;     C8h: 34, DMA Channel 10\r
+    DCD    NVIC_Handler_DMA11          ;     CCh: 35, DMA Channel 11\r
+    DCD    NVIC_Handler_DMA12          ;     D0h: 36, DMA Channel 12\r
+    DCD    NVIC_Handler_DMA13          ;     D4h: 37, DMA Channel 13\r
+    DCD    0                           ;     D8h: 38, Unused\r
+    DCD    0                           ;     DCh: 39, Unused\r
+    DCD    NVIC_Handler_UART0          ;     E0h:  40, UART0\r
+    DCD    NVIC_Handler_UART1          ;     E4h:  41, UART1\r
+    DCD    NVIC_Handler_EMI0           ;     E8h:  42, EMI0\r
+    DCD    NVIC_Handler_EMI1           ;     ECh:  43, EMI0\r
+    DCD    NVIC_Handler_EMI2           ;     F0h:  44, EMI0\r
+    DCD    NVIC_Handler_ACPI_EC0_IBF   ;     F4h:  45, ACPI_EC0_IBF\r
+    DCD    NVIC_Handler_ACPI_EC0_OBF   ;     F8h:  46, ACPI_EC0_OBF\r
+    DCD    NVIC_Handler_ACPI_EC1_IBF   ;     FCh:  47, ACPI_EC1_IBF\r
+    DCD    NVIC_Handler_ACPI_EC1_OBF   ;     100h: 48, ACPI_EC1_OBF\r
+    DCD    NVIC_Handler_ACPI_EC2_IBF   ;     104h: 49, ACPI_EC0_IBF\r
+    DCD    NVIC_Handler_ACPI_EC2_OBF   ;     108h: 50, ACPI_EC0_OBF\r
+    DCD    NVIC_Handler_ACPI_EC3_IBF   ;     10Ch: 51, ACPI_EC1_IBF\r
+    DCD    NVIC_Handler_ACPI_EC3_OBF   ;     110h: 52, ACPI_EC1_OBF\r
+    DCD    NVIC_Handler_ACPI_EC4_IBF   ;     114h: 53, ACPI_EC0_IBF\r
+    DCD    NVIC_Handler_ACPI_EC4_OBF   ;     118h: 54, ACPI_EC0_OBF\r
+    DCD    NVIC_Handler_PM1_CTL        ;     11Ch: 55, ACPI_PM1_CTL\r
+    DCD    NVIC_Handler_PM1_EN         ;     120h: 56, ACPI_PM1_EN\r
+    DCD    NVIC_Handler_PM1_STS        ;     124h: 57, ACPI_PM1_STS\r
+    DCD    NVIC_Handler_MIF8042_OBF    ;     128h: 58, MIF8042_OBF\r
+    DCD    NVIC_Handler_MIF8042_IBF    ;     12Ch: 59, MIF8042_IBF\r
+    DCD    NVIC_Handler_MB_H2EC        ;     130h: 60, Mailbox Host to EC\r
+    DCD    NVIC_Handler_MB_DATA        ;     134h: 61, Mailbox Host Data\r
+    DCD    NVIC_Handler_P80A           ;     138h: 62, Port 80h A\r
+    DCD    NVIC_Handler_P80B           ;     13Ch: 63, Port 80h B\r
+    DCD    0                           ;     140h: 64, Reserved\r
+    DCD    NVIC_Handler_PKE_ERR        ;     144h: 65, PKE Error\r
+    DCD    NVIC_Handler_PKE_END        ;     148h: 66, PKE End\r
+    DCD    NVIC_Handler_TRNG           ;     14Ch: 67, Random Num Gen\r
+    DCD    NVIC_Handler_AES            ;     150h: 68, AES\r
+    DCD    NVIC_Handler_HASH           ;     154h: 69, HASH\r
+    DCD    NVIC_Handler_PECI           ;     158h: 70, PECI\r
+    DCD    NVIC_Handler_TACH0          ;     15Ch: 71, TACH0\r
+    DCD    NVIC_Handler_TACH1          ;     160h: 72, TACH1\r
+    DCD    NVIC_Handler_TACH2          ;     164h: 73, TACH2\r
+    DCD    NVIC_Handler_R2P0_FAIL      ;     168h: 74, RPM2PWM 0 Fan Fail\r
+    DCD    NVIC_Handler_R2P0_STALL     ;     16Ch: 75, RPM2PWM 0 Fan Stall\r
+    DCD    NVIC_Handler_R2P1_FAIL      ;     170h: 76, RPM2PWM 1 Fan Fail\r
+    DCD    NVIC_Handler_R2P1_STALL     ;     174h: 77, RPM2PWM 1 Fan Stall\r
+    DCD    NVIC_Handler_ADC_SNGL       ;     178h: 78, ADC_SNGL\r
+    DCD    NVIC_Handler_ADC_RPT        ;     17Ch: 79, ADC_RPT\r
+    DCD    NVIC_Handler_RCID0          ;     180h: 80, RCID 0\r
+    DCD    NVIC_Handler_RCID1          ;     184h: 81, RCID 1\r
+    DCD    NVIC_Handler_RCID2          ;     188h: 82, RCID 2\r
+    DCD    NVIC_Handler_LED0           ;     18Ch: 83, LED0\r
+    DCD    NVIC_Handler_LED1           ;     190h: 84, LED1\r
+    DCD    NVIC_Handler_LED2           ;     194h: 85, LED2\r
+    DCD    NVIC_Handler_LED3           ;     198h: 86, LED2\r
+    DCD    NVIC_Handler_PHOT           ;     19Ch: 87, ProcHot Monitor\r
+    DCD    NVIC_Handler_PWRGD0         ;     1A0h: 88, PowerGuard 0 Status\r
+    DCD    NVIC_Handler_PWRGD1         ;     1A4h: 89, PowerGuard 1 Status\r
+    DCD    NVIC_Handler_LPCBERR        ;     1A8h: 90, LPC Bus Error\r
+    DCD    NVIC_Handler_QMSPI0         ;     1ACh: 91, QMSPI 0\r
+    DCD    NVIC_Handler_GPSPI0_TX      ;     1B0h: 92, GP-SPI0 TX\r
+    DCD    NVIC_Handler_GPSPI0_RX      ;     1B4h: 93, GP-SPI0 RX\r
+    DCD    NVIC_Handler_GPSPI1_TX      ;     1B8h: 94, GP-SPI1 TX\r
+    DCD    NVIC_Handler_GPSPI1_RX      ;     1BCh: 95, GP-SPI1 RX\r
+    DCD    NVIC_Handler_BC0_BUSY       ;     1C0h: 96, BC-Link0 Busy-Clear\r
+    DCD    NVIC_Handler_BC0_ERR        ;     1C4h: 97, BC-Link0 Error\r
+    DCD    NVIC_Handler_BC1_BUSY       ;     1C8h: 98, BC-Link1 Busy-Clear\r
+    DCD    NVIC_Handler_BC1_ERR        ;     1CCh: 99, BC-Link1 Error\r
+    DCD    NVIC_Handler_PS2_0          ;     1D0h: 100, PS2_0\r
+    DCD    NVIC_Handler_PS2_1          ;     1D4h: 101, PS2_1\r
+    DCD    NVIC_Handler_PS2_2          ;     1D8h: 102, PS2_2\r
+    DCD    NVIC_Handler_ESPI_PC        ;     1DCh: 103, eSPI Periph Chan\r
+    DCD    NVIC_Handler_ESPI_BM1       ;     1E0h: 104, eSPI Bus Master 1\r
+    DCD    NVIC_Handler_ESPI_BM2       ;     1E4h: 105, eSPI Bus Master 2\r
+    DCD    NVIC_Handler_ESPI_LTR       ;     1E8h: 106, eSPI LTR\r
+    DCD    NVIC_Handler_ESPI_OOB_UP    ;     1ECh: 107, eSPI Bus Master 1\r
+    DCD    NVIC_Handler_ESPI_OOB_DN    ;     1F0h: 108, eSPI Bus Master 2\r
+    DCD    NVIC_Handler_ESPI_FLASH     ;     1F4h: 109, eSPI Flash Chan\r
+    DCD    NVIC_Handler_ESPI_RESET     ;     1F8h: 110, eSPI Reset\r
+    DCD    NVIC_Handler_RTMR           ;     1FCh: 111, RTOS Timer\r
+    DCD    NVIC_Handler_HTMR0          ;     200h: 112, Hibernation Timer 0\r
+    DCD    NVIC_Handler_HTMR1          ;     204h: 113, Hibernation Timer 1\r
+    DCD    NVIC_Handler_WK             ;     208h: 114, Week Alarm\r
+    DCD    NVIC_Handler_WKSUB          ;     20Ch: 115, Week Alarm, sub week\r
+    DCD    NVIC_Handler_WKSEC          ;     210h: 116, Week Alarm, one sec\r
+    DCD    NVIC_Handler_WKSUBSEC       ;     214h: 117, Week Alarm, sub sec\r
+    DCD    NVIC_Handler_SYSPWR         ;     218h: 118, System Power Present pin\r
+    DCD    NVIC_Handler_RTC            ;     21Ch: 119, RTC\r
+    DCD    NVIC_Handler_RTC_ALARM      ;     220h: 120, RTC_ALARM\r
+    DCD    NVIC_Handler_VCI_OVRD_IN    ;     224h: 121, VCI Override Input\r
+    DCD    NVIC_Handler_VCI_IN0        ;     228h: 122, VCI Input 0\r
+    DCD    NVIC_Handler_VCI_IN1        ;     22Ch: 123, VCI Input 1\r
+    DCD    NVIC_Handler_VCI_IN2        ;     230h: 124, VCI Input 2\r
+    DCD    NVIC_Handler_VCI_IN3        ;     234h: 125, VCI Input 3\r
+    DCD    NVIC_Handler_VCI_IN4        ;     238h: 126, VCI Input 4\r
+    DCD    NVIC_Handler_VCI_IN5        ;     23Ch: 127, VCI Input 5\r
+    DCD    NVIC_Handler_VCI_IN6        ;     240h: 128, VCI Input 6\r
+    DCD    NVIC_Handler_PS20A_WAKE     ;     244h: 129, PS2 Port 0A Wake\r
+    DCD    NVIC_Handler_PS20B_WAKE     ;     248h: 130, PS2 Port 0B Wake\r
+    DCD    NVIC_Handler_PS21A_WAKE     ;     24Ch: 131, PS2 Port 1A Wake\r
+    DCD    NVIC_Handler_PS21B_WAKE     ;     250h: 132, PS2 Port 1B Wake\r
+    DCD    NVIC_Handler_PS21_WAKE      ;     254h: 133, PS2 Port 1 Wake\r
+    DCD    NVIC_Handler_ENVMON         ;     258h: 134, Thernal Monitor\r
+    DCD    NVIC_Handler_KEYSCAN        ;     25Ch: 135, Key Scan\r
+    DCD    NVIC_Handler_BTMR16_0       ;     260h: 136, 16-bit Basic Timer 0\r
+    DCD    NVIC_Handler_BTMR16_1       ;     264h: 137, 16-bit Basic Timer 1\r
+    DCD    NVIC_Handler_BTMR16_2       ;     268h: 138, 16-bit Basic Timer 2\r
+    DCD    NVIC_Handler_BTMR16_3       ;     26Ch: 139, 16-bit Basic Timer 3\r
+    DCD    NVIC_Handler_BTMR32_0       ;     270h: 140, 32-bit Basic Timer 0\r
+    DCD    NVIC_Handler_BTMR32_1       ;     274h: 141, 32-bit Basic Timer 1\r
+    DCD    NVIC_Handler_EVTMR0         ;     278h: 142, Event Counter/Timer 0\r
+    DCD    NVIC_Handler_EVTMR1         ;     27Ch: 143, Event Counter/Timer 1\r
+    DCD    NVIC_Handler_EVTMR2         ;     280h: 144, Event Counter/Timer 2\r
+    DCD    NVIC_Handler_EVTMR3         ;     284h: 145, Event Counter/Timer 3\r
+    DCD    NVIC_Handler_CAPTMR         ;     288h: 146, Capture Timer\r
+    DCD    NVIC_Handler_CAP0           ;     28Ch: 147, Capture 0 Event\r
+    DCD    NVIC_Handler_CAP1           ;     290h: 148, Capture 1 Event\r
+    DCD    NVIC_Handler_CAP2           ;     294h: 149, Capture 2 Event\r
+    DCD    NVIC_Handler_CAP3           ;     298h: 150, Capture 3 Event\r
+    DCD    NVIC_Handler_CAP4           ;     29Ch: 151, Capture 4 Event\r
+    DCD    NVIC_Handler_CAP5           ;     2A0h: 152, Capture 5 Event\r
+    DCD    NVIC_Handler_CMP0           ;     2A4h: 153, Compare 0 Event\r
+    DCD    NVIC_Handler_CMP1           ;     2A8h: 154, Compare 1 Event\r
+    ; Project build information\r
+\r
+                AREA    |.text|, CODE, READONLY\r
+;                AREA    RESET, CODE, READONLY\r
+\r
+; Reset Handler\r
+\r
+Reset_Handler   PROC\r
+                EXPORT  Reset_Handler             [WEAK]\r
+                IMPORT  __main\r
+                IMPORT  SystemInit\r
+\r
+                ; Remap vector table\r
+                LDR     R0, =__Vectors\r
+                LDR     R1, =0xE000ED08\r
+                STR     R0,  [r1]\r
+                NOP\r
+\r
+                IF      {CPU} = "Cortex-M4.fp"\r
+                LDR     R0, =0xE000ED88           ; Enable CP10,CP11\r
+                LDR     R1,[R0]\r
+                ORR     R1,R1,#(0xF << 20)\r
+                STR     R1,[R0]\r
+                ENDIF\r
+\r
+                LDR     R0, =__main\r
+                BX      R0\r
+                ENDP\r
+\r
+\r
+; Dummy Exception Handlers (infinite loops which can be modified)\r
+\r
+NMI_Handler     PROC\r
+                EXPORT  NMI_Handler               [WEAK]\r
+                B       .\r
+                ENDP\r
+HardFault_Handler\\r
+                PROC\r
+                EXPORT  HardFault_Handler         [WEAK]\r
+                B       .\r
+                ENDP\r
+MemManage_Handler\\r
+                PROC\r
+                EXPORT  MemManage_Handler         [WEAK]\r
+                B       .\r
+                ENDP\r
+BusFault_Handler\\r
+                PROC\r
+                EXPORT  BusFault_Handler          [WEAK]\r
+                B       .\r
+                ENDP\r
+UsageFault_Handler\\r
+                PROC\r
+                EXPORT  UsageFault_Handler        [WEAK]\r
+                B       .\r
+                ENDP\r
+SVC_Handler     PROC\r
+                EXPORT  SVC_Handler               [WEAK]\r
+                B       .\r
+                ENDP\r
+DebugMon_Handler\\r
+                PROC\r
+                EXPORT  DebugMon_Handler          [WEAK]\r
+                B       .\r
+                ENDP\r
+PendSV_Handler  PROC\r
+                EXPORT  PendSV_Handler            [WEAK]\r
+                B       .\r
+                ENDP\r
+SysTick_Handler PROC\r
+                EXPORT  SysTick_Handler           [WEAK]\r
+                B       .\r
+                ENDP\r
+\r
+Default_Handler PROC\r
+\r
+    EXPORT    NVIC_Handler_GIRQ08               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ09               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ10               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ11               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ12               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ13               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ14               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ15               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ16               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ17               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ18               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ19               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ20               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ21               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ23               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ24               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ25               [WEAK]\r
+    EXPORT    NVIC_Handler_GIRQ26               [WEAK]\r
+\r
+    EXPORT    NVIC_Handler_I2C0                 [WEAK]\r
+    EXPORT    NVIC_Handler_I2C1                 [WEAK]\r
+    EXPORT    NVIC_Handler_I2C2                 [WEAK]\r
+    EXPORT    NVIC_Handler_I2C3                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA0                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA1                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA2                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA3                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA4                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA5                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA6                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA7                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA8                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA9                 [WEAK]\r
+    EXPORT    NVIC_Handler_DMA10                [WEAK]\r
+    EXPORT    NVIC_Handler_DMA11                [WEAK]\r
+    EXPORT    NVIC_Handler_DMA12                [WEAK]\r
+    EXPORT    NVIC_Handler_DMA13                [WEAK]\r
+\r
+    EXPORT    NVIC_Handler_UART0                [WEAK]\r
+    EXPORT    NVIC_Handler_UART1                [WEAK]\r
+    EXPORT    NVIC_Handler_EMI0                 [WEAK]\r
+    EXPORT    NVIC_Handler_EMI1                 [WEAK]\r
+    EXPORT    NVIC_Handler_EMI2                 [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC0_IBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC0_OBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC1_IBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC1_OBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC2_IBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC2_OBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC3_IBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC3_OBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC4_IBF         [WEAK]\r
+    EXPORT    NVIC_Handler_ACPI_EC4_OBF         [WEAK]\r
+    EXPORT    NVIC_Handler_PM1_CTL              [WEAK]\r
+    EXPORT    NVIC_Handler_PM1_EN               [WEAK]\r
+    EXPORT    NVIC_Handler_PM1_STS              [WEAK]\r
+    EXPORT    NVIC_Handler_MIF8042_OBF          [WEAK]\r
+    EXPORT    NVIC_Handler_MIF8042_IBF          [WEAK]\r
+    EXPORT    NVIC_Handler_MB_H2EC              [WEAK]\r
+    EXPORT    NVIC_Handler_MB_DATA              [WEAK]\r
+    EXPORT    NVIC_Handler_P80A                 [WEAK]\r
+    EXPORT    NVIC_Handler_P80B                 [WEAK]\r
+\r
+    EXPORT    NVIC_Handler_PKE_ERR              [WEAK]\r
+    EXPORT    NVIC_Handler_PKE_END              [WEAK]\r
+    EXPORT    NVIC_Handler_TRNG                 [WEAK]\r
+    EXPORT    NVIC_Handler_AES                  [WEAK]\r
+    EXPORT    NVIC_Handler_HASH                 [WEAK]\r
+    EXPORT    NVIC_Handler_PECI                 [WEAK]\r
+    EXPORT    NVIC_Handler_TACH0                [WEAK]\r
+    EXPORT    NVIC_Handler_TACH1                [WEAK]\r
+    EXPORT    NVIC_Handler_TACH2                [WEAK]\r
+    EXPORT    NVIC_Handler_R2P0_FAIL            [WEAK]\r
+    EXPORT    NVIC_Handler_R2P0_STALL           [WEAK]\r
+    EXPORT    NVIC_Handler_R2P1_FAIL            [WEAK]\r
+    EXPORT    NVIC_Handler_R2P1_STALL           [WEAK]\r
+    EXPORT    NVIC_Handler_ADC_SNGL             [WEAK]\r
+    EXPORT    NVIC_Handler_ADC_RPT              [WEAK]\r
+    EXPORT    NVIC_Handler_RCID0                [WEAK]\r
+    EXPORT    NVIC_Handler_RCID1                [WEAK]\r
+    EXPORT    NVIC_Handler_RCID2                [WEAK]\r
+    EXPORT    NVIC_Handler_LED0                 [WEAK]\r
+    EXPORT    NVIC_Handler_LED1                 [WEAK]\r
+    EXPORT    NVIC_Handler_LED2                 [WEAK]\r
+    EXPORT    NVIC_Handler_LED3                 [WEAK]\r
+    EXPORT    NVIC_Handler_PHOT                 [WEAK]\r
+    EXPORT    NVIC_Handler_PWRGD0               [WEAK]\r
+    EXPORT    NVIC_Handler_PWRGD1               [WEAK]\r
+    EXPORT    NVIC_Handler_LPCBERR              [WEAK]\r
+    EXPORT    NVIC_Handler_QMSPI0               [WEAK]\r
+    EXPORT    NVIC_Handler_GPSPI0_TX            [WEAK]\r
+    EXPORT    NVIC_Handler_GPSPI0_RX            [WEAK]\r
+    EXPORT    NVIC_Handler_GPSPI1_TX            [WEAK]\r
+    EXPORT    NVIC_Handler_GPSPI1_RX            [WEAK]\r
+    EXPORT    NVIC_Handler_BC0_BUSY             [WEAK]\r
+    EXPORT    NVIC_Handler_BC0_ERR              [WEAK]\r
+    EXPORT    NVIC_Handler_BC1_BUSY             [WEAK]\r
+    EXPORT    NVIC_Handler_BC1_ERR              [WEAK]\r
+    EXPORT    NVIC_Handler_PS2_0                [WEAK]\r
+    EXPORT    NVIC_Handler_PS2_1                [WEAK]\r
+    EXPORT    NVIC_Handler_PS2_2                [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_PC              [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_BM1             [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_BM2             [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_LTR             [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_OOB_UP          [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_OOB_DN          [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_FLASH           [WEAK]\r
+    EXPORT    NVIC_Handler_ESPI_RESET           [WEAK]\r
+    EXPORT    NVIC_Handler_RTMR                 [WEAK]\r
+    EXPORT    NVIC_Handler_HTMR0                [WEAK]\r
+    EXPORT    NVIC_Handler_HTMR1                [WEAK]\r
+    EXPORT    NVIC_Handler_WK                   [WEAK]\r
+    EXPORT    NVIC_Handler_WKSUB                [WEAK]\r
+    EXPORT    NVIC_Handler_WKSEC                [WEAK]\r
+    EXPORT    NVIC_Handler_WKSUBSEC             [WEAK]\r
+    EXPORT    NVIC_Handler_SYSPWR               [WEAK]\r
+    EXPORT    NVIC_Handler_RTC                  [WEAK]\r
+    EXPORT    NVIC_Handler_RTC_ALARM            [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_OVRD_IN          [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN0              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN1              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN2              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN3              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN4              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN5              [WEAK]\r
+    EXPORT    NVIC_Handler_VCI_IN6              [WEAK]\r
+    EXPORT    NVIC_Handler_PS20A_WAKE           [WEAK]\r
+    EXPORT    NVIC_Handler_PS20B_WAKE           [WEAK]\r
+    EXPORT    NVIC_Handler_PS21A_WAKE           [WEAK]\r
+    EXPORT    NVIC_Handler_PS21B_WAKE           [WEAK]\r
+    EXPORT    NVIC_Handler_PS21_WAKE            [WEAK]\r
+    EXPORT    NVIC_Handler_ENVMON               [WEAK]\r
+    EXPORT    NVIC_Handler_KEYSCAN              [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR16_0             [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR16_1             [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR16_2             [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR16_3             [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR32_0             [WEAK]\r
+    EXPORT    NVIC_Handler_BTMR32_1             [WEAK]\r
+    EXPORT    NVIC_Handler_EVTMR0               [WEAK]\r
+    EXPORT    NVIC_Handler_EVTMR1               [WEAK]\r
+    EXPORT    NVIC_Handler_EVTMR2               [WEAK]\r
+    EXPORT    NVIC_Handler_EVTMR3               [WEAK]\r
+    EXPORT    NVIC_Handler_CAPTMR               [WEAK]\r
+    EXPORT    NVIC_Handler_CAP0                 [WEAK]\r
+    EXPORT    NVIC_Handler_CAP1                 [WEAK]\r
+    EXPORT    NVIC_Handler_CAP2                 [WEAK]\r
+    EXPORT    NVIC_Handler_CAP3                 [WEAK]\r
+    EXPORT    NVIC_Handler_CAP4                 [WEAK]\r
+    EXPORT    NVIC_Handler_CAP5                 [WEAK]\r
+    EXPORT    NVIC_Handler_CMP0                 [WEAK]\r
+    EXPORT    NVIC_Handler_CMP1                 [WEAK]\r
+\r
+NVIC_Handler_GIRQ08\r
+NVIC_Handler_GIRQ09\r
+NVIC_Handler_GIRQ10\r
+NVIC_Handler_GIRQ11\r
+NVIC_Handler_GIRQ12\r
+NVIC_Handler_GIRQ13\r
+NVIC_Handler_GIRQ14\r
+NVIC_Handler_GIRQ15\r
+NVIC_Handler_GIRQ16\r
+NVIC_Handler_GIRQ17\r
+NVIC_Handler_GIRQ18\r
+NVIC_Handler_GIRQ19\r
+NVIC_Handler_GIRQ20\r
+NVIC_Handler_GIRQ21\r
+NVIC_Handler_GIRQ23\r
+NVIC_Handler_GIRQ24\r
+NVIC_Handler_GIRQ25\r
+NVIC_Handler_GIRQ26\r
+\r
+NVIC_Handler_I2C0\r
+NVIC_Handler_I2C1\r
+NVIC_Handler_I2C2\r
+NVIC_Handler_I2C3\r
+NVIC_Handler_DMA0\r
+NVIC_Handler_DMA1\r
+NVIC_Handler_DMA2\r
+NVIC_Handler_DMA3\r
+NVIC_Handler_DMA4\r
+NVIC_Handler_DMA5\r
+NVIC_Handler_DMA6\r
+NVIC_Handler_DMA7\r
+NVIC_Handler_DMA8\r
+NVIC_Handler_DMA9\r
+NVIC_Handler_DMA10\r
+NVIC_Handler_DMA11\r
+NVIC_Handler_DMA12\r
+NVIC_Handler_DMA13\r
+\r
+NVIC_Handler_UART0\r
+NVIC_Handler_UART1\r
+NVIC_Handler_EMI0\r
+NVIC_Handler_EMI1\r
+NVIC_Handler_EMI2\r
+NVIC_Handler_ACPI_EC0_IBF\r
+NVIC_Handler_ACPI_EC0_OBF\r
+NVIC_Handler_ACPI_EC1_IBF\r
+NVIC_Handler_ACPI_EC1_OBF\r
+NVIC_Handler_ACPI_EC2_IBF\r
+NVIC_Handler_ACPI_EC2_OBF\r
+NVIC_Handler_ACPI_EC3_IBF\r
+NVIC_Handler_ACPI_EC3_OBF\r
+NVIC_Handler_ACPI_EC4_IBF\r
+NVIC_Handler_ACPI_EC4_OBF\r
+NVIC_Handler_PM1_CTL\r
+NVIC_Handler_PM1_EN\r
+NVIC_Handler_PM1_STS\r
+NVIC_Handler_MIF8042_OBF\r
+NVIC_Handler_MIF8042_IBF\r
+NVIC_Handler_MB_H2EC\r
+NVIC_Handler_MB_DATA\r
+NVIC_Handler_P80A\r
+NVIC_Handler_P80B\r
+\r
+NVIC_Handler_PKE_ERR\r
+NVIC_Handler_PKE_END\r
+NVIC_Handler_TRNG\r
+NVIC_Handler_AES\r
+NVIC_Handler_HASH\r
+NVIC_Handler_PECI\r
+NVIC_Handler_TACH0\r
+NVIC_Handler_TACH1\r
+NVIC_Handler_TACH2\r
+NVIC_Handler_R2P0_FAIL\r
+NVIC_Handler_R2P0_STALL\r
+NVIC_Handler_R2P1_FAIL\r
+NVIC_Handler_R2P1_STALL\r
+NVIC_Handler_ADC_SNGL\r
+NVIC_Handler_ADC_RPT\r
+NVIC_Handler_RCID0\r
+NVIC_Handler_RCID1\r
+NVIC_Handler_RCID2\r
+NVIC_Handler_LED0\r
+NVIC_Handler_LED1\r
+NVIC_Handler_LED2\r
+NVIC_Handler_LED3\r
+NVIC_Handler_PHOT\r
+NVIC_Handler_PWRGD0\r
+NVIC_Handler_PWRGD1\r
+NVIC_Handler_LPCBERR\r
+NVIC_Handler_QMSPI0\r
+NVIC_Handler_GPSPI0_TX\r
+NVIC_Handler_GPSPI0_RX\r
+NVIC_Handler_GPSPI1_TX\r
+NVIC_Handler_GPSPI1_RX\r
+NVIC_Handler_BC0_BUSY\r
+NVIC_Handler_BC0_ERR\r
+NVIC_Handler_BC1_BUSY\r
+NVIC_Handler_BC1_ERR\r
+NVIC_Handler_PS2_0\r
+NVIC_Handler_PS2_1\r
+NVIC_Handler_PS2_2\r
+NVIC_Handler_ESPI_PC\r
+NVIC_Handler_ESPI_BM1\r
+NVIC_Handler_ESPI_BM2\r
+NVIC_Handler_ESPI_LTR\r
+NVIC_Handler_ESPI_OOB_UP\r
+NVIC_Handler_ESPI_OOB_DN\r
+NVIC_Handler_ESPI_FLASH\r
+NVIC_Handler_ESPI_RESET\r
+NVIC_Handler_RTMR\r
+NVIC_Handler_HTMR0\r
+NVIC_Handler_HTMR1\r
+NVIC_Handler_WK\r
+NVIC_Handler_WKSUB\r
+NVIC_Handler_WKSEC\r
+NVIC_Handler_WKSUBSEC\r
+NVIC_Handler_SYSPWR\r
+NVIC_Handler_RTC\r
+NVIC_Handler_RTC_ALARM\r
+NVIC_Handler_VCI_OVRD_IN\r
+NVIC_Handler_VCI_IN0\r
+NVIC_Handler_VCI_IN1\r
+NVIC_Handler_VCI_IN2\r
+NVIC_Handler_VCI_IN3\r
+NVIC_Handler_VCI_IN4\r
+NVIC_Handler_VCI_IN5\r
+NVIC_Handler_VCI_IN6\r
+NVIC_Handler_PS20A_WAKE\r
+NVIC_Handler_PS20B_WAKE\r
+NVIC_Handler_PS21A_WAKE\r
+NVIC_Handler_PS21B_WAKE\r
+NVIC_Handler_PS21_WAKE\r
+NVIC_Handler_ENVMON\r
+NVIC_Handler_KEYSCAN\r
+NVIC_Handler_BTMR16_0\r
+NVIC_Handler_BTMR16_1\r
+NVIC_Handler_BTMR16_2\r
+NVIC_Handler_BTMR16_3\r
+NVIC_Handler_BTMR32_0\r
+NVIC_Handler_BTMR32_1\r
+NVIC_Handler_EVTMR0\r
+NVIC_Handler_EVTMR1\r
+NVIC_Handler_EVTMR2\r
+NVIC_Handler_EVTMR3\r
+NVIC_Handler_CAPTMR\r
+NVIC_Handler_CAP0\r
+NVIC_Handler_CAP1\r
+NVIC_Handler_CAP2\r
+NVIC_Handler_CAP3\r
+NVIC_Handler_CAP4\r
+NVIC_Handler_CAP5\r
+NVIC_Handler_CMP0\r
+NVIC_Handler_CMP1\r
+                B       .\r
+\r
+                ENDP\r
+\r
+\r
+                ALIGN\r
+\r
+\r
+; User Initial Stack & Heap\r
+\r
+                IF      :DEF:__MICROLIB\r
+\r
+                EXPORT  __initial_sp\r
+                EXPORT  __heap_base\r
+                EXPORT  __heap_limit\r
+\r
+                ELSE\r
+\r
+                IMPORT  __use_two_region_memory\r
+                EXPORT  __user_initial_stackheap\r
+__user_initial_stackheap\r
+\r
+                LDR     R0, =  Heap_Mem\r
+                LDR     R1, =(Stack_Mem + Stack_Size)\r
+                LDR     R2, = (Heap_Mem +  Heap_Size)\r
+                LDR     R3, = Stack_Mem\r
+                BX      LR\r
+\r
+                ALIGN\r
+\r
+                ENDIF\r
+\r
+\r
+                END\r