mbed SDK library sources

Fork of mbed-src by mbed official

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Dec 26 13:00:06 2013 +0000
Revision:
68:41613245dfd7
Synchronized with git revision fba199a9c4445231b0f38e1e113c118182635546

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

target K20D5M

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 68:41613245dfd7 1 /* File: startup_MK20D5.s
mbed_official 68:41613245dfd7 2 * Purpose: startup file for Cortex-M4 devices. Should use with
mbed_official 68:41613245dfd7 3 * GCC for ARM Embedded Processors
mbed_official 68:41613245dfd7 4 * Version: V1.3
mbed_official 68:41613245dfd7 5 * Date: 08 Feb 2012
mbed_official 68:41613245dfd7 6 *
mbed_official 68:41613245dfd7 7 * Copyright (c) 2012, ARM Limited
mbed_official 68:41613245dfd7 8 * All rights reserved.
mbed_official 68:41613245dfd7 9 *
mbed_official 68:41613245dfd7 10 * Redistribution and use in source and binary forms, with or without
mbed_official 68:41613245dfd7 11 * modification, are permitted provided that the following conditions are met:
mbed_official 68:41613245dfd7 12 * Redistributions of source code must retain the above copyright
mbed_official 68:41613245dfd7 13 notice, this list of conditions and the following disclaimer.
mbed_official 68:41613245dfd7 14 * Redistributions in binary form must reproduce the above copyright
mbed_official 68:41613245dfd7 15 notice, this list of conditions and the following disclaimer in the
mbed_official 68:41613245dfd7 16 documentation and/or other materials provided with the distribution.
mbed_official 68:41613245dfd7 17 * Neither the name of the ARM Limited nor the
mbed_official 68:41613245dfd7 18 names of its contributors may be used to endorse or promote products
mbed_official 68:41613245dfd7 19 derived from this software without specific prior written permission.
mbed_official 68:41613245dfd7 20 *
mbed_official 68:41613245dfd7 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
mbed_official 68:41613245dfd7 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
mbed_official 68:41613245dfd7 23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 68:41613245dfd7 24 * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY
mbed_official 68:41613245dfd7 25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
mbed_official 68:41613245dfd7 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
mbed_official 68:41613245dfd7 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
mbed_official 68:41613245dfd7 28 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
mbed_official 68:41613245dfd7 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
mbed_official 68:41613245dfd7 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 68:41613245dfd7 31 */
mbed_official 68:41613245dfd7 32 .syntax unified
mbed_official 68:41613245dfd7 33 .arch armv7-m
mbed_official 68:41613245dfd7 34
mbed_official 68:41613245dfd7 35 .section .stack
mbed_official 68:41613245dfd7 36 .align 3
mbed_official 68:41613245dfd7 37 #ifdef __STACK_SIZE
mbed_official 68:41613245dfd7 38 .equ Stack_Size, __STACK_SIZE
mbed_official 68:41613245dfd7 39 #else
mbed_official 68:41613245dfd7 40 .equ Stack_Size, 0x400
mbed_official 68:41613245dfd7 41 #endif
mbed_official 68:41613245dfd7 42 .globl __StackTop
mbed_official 68:41613245dfd7 43 .globl __StackLimit
mbed_official 68:41613245dfd7 44 __StackLimit:
mbed_official 68:41613245dfd7 45 .space Stack_Size
mbed_official 68:41613245dfd7 46 .size __StackLimit, . - __StackLimit
mbed_official 68:41613245dfd7 47 __StackTop:
mbed_official 68:41613245dfd7 48 .size __StackTop, . - __StackTop
mbed_official 68:41613245dfd7 49
mbed_official 68:41613245dfd7 50 .section .heap
mbed_official 68:41613245dfd7 51 .align 3
mbed_official 68:41613245dfd7 52 #ifdef __HEAP_SIZE
mbed_official 68:41613245dfd7 53 .equ Heap_Size, __HEAP_SIZE
mbed_official 68:41613245dfd7 54 #else
mbed_official 68:41613245dfd7 55 .equ Heap_Size, 0xC00
mbed_official 68:41613245dfd7 56 #endif
mbed_official 68:41613245dfd7 57 .globl __HeapBase
mbed_official 68:41613245dfd7 58 .globl __HeapLimit
mbed_official 68:41613245dfd7 59 __HeapBase:
mbed_official 68:41613245dfd7 60 .if Heap_Size
mbed_official 68:41613245dfd7 61 .space Heap_Size
mbed_official 68:41613245dfd7 62 .endif
mbed_official 68:41613245dfd7 63 .size __HeapBase, . - __HeapBase
mbed_official 68:41613245dfd7 64 __HeapLimit:
mbed_official 68:41613245dfd7 65 .size __HeapLimit, . - __HeapLimit
mbed_official 68:41613245dfd7 66
mbed_official 68:41613245dfd7 67 .section .isr_vector
mbed_official 68:41613245dfd7 68 .align 2
mbed_official 68:41613245dfd7 69 .globl __isr_vector
mbed_official 68:41613245dfd7 70 __isr_vector:
mbed_official 68:41613245dfd7 71 .long __StackTop /* Top of Stack */
mbed_official 68:41613245dfd7 72 .long Reset_Handler /* Reset Handler */
mbed_official 68:41613245dfd7 73 .long NMI_Handler /* NMI Handler */
mbed_official 68:41613245dfd7 74 .long HardFault_Handler /* Hard Fault Handler */
mbed_official 68:41613245dfd7 75 .long MemManage_Handler /* MPU Fault Handler */
mbed_official 68:41613245dfd7 76 .long BusFault_Handler /* Bus Fault Handler */
mbed_official 68:41613245dfd7 77 .long UsageFault_Handler /* Usage Fault Handler */
mbed_official 68:41613245dfd7 78 .long 0 /* Reserved */
mbed_official 68:41613245dfd7 79 .long 0 /* Reserved */
mbed_official 68:41613245dfd7 80 .long 0 /* Reserved */
mbed_official 68:41613245dfd7 81 .long 0 /* Reserved */
mbed_official 68:41613245dfd7 82 .long SVC_Handler /* SVCall Handler */
mbed_official 68:41613245dfd7 83 .long DebugMon_Handler /* Debug Monitor Handler */
mbed_official 68:41613245dfd7 84 .long 0 /* Reserved */
mbed_official 68:41613245dfd7 85 .long PendSV_Handler /* PendSV Handler */
mbed_official 68:41613245dfd7 86 .long SysTick_Handler /* SysTick Handler */
mbed_official 68:41613245dfd7 87
mbed_official 68:41613245dfd7 88 /* External interrupts */
mbed_official 68:41613245dfd7 89 .long DMA0_IRQHandler /* 0: Watchdog Timer */
mbed_official 68:41613245dfd7 90 .long DMA1_IRQHandler /* 1: Real Time Clock */
mbed_official 68:41613245dfd7 91 .long DMA2_IRQHandler /* 2: Timer0 / Timer1 */
mbed_official 68:41613245dfd7 92 .long DMA3_IRQHandler /* 3: Timer2 / Timer3 */
mbed_official 68:41613245dfd7 93 .long DMA_Error_IRQHandler /* 4: MCIa */
mbed_official 68:41613245dfd7 94 .long 0 /* 5: MCIb */
mbed_official 68:41613245dfd7 95 .long FTFL_IRQHandler /* 6: UART0 - DUT FPGA */
mbed_official 68:41613245dfd7 96 .long Read_Collision_IRQHandler /* 7: UART1 - DUT FPGA */
mbed_official 68:41613245dfd7 97 .long LVD_LVW_IRQHandler /* 8: UART2 - DUT FPGA */
mbed_official 68:41613245dfd7 98 .long LLW_IRQHandler /* 9: UART4 - not connected */
mbed_official 68:41613245dfd7 99 .long Watchdog_IRQHandler /* 10: AACI / AC97 */
mbed_official 68:41613245dfd7 100 .long I2C0_IRQHandler /* 11: CLCD Combined Interrupt */
mbed_official 68:41613245dfd7 101 .long SPI0_IRQHandler /* 12: Ethernet */
mbed_official 68:41613245dfd7 102 .long I2S0_Tx_IRQHandler /* 13: USB Device */
mbed_official 68:41613245dfd7 103 .long I2S0_Rx_IRQHandler /* 14: USB Host Controller */
mbed_official 68:41613245dfd7 104 .long UART0_LON_IRQHandler /* 15: Character LCD */
mbed_official 68:41613245dfd7 105 .long UART0_RX_TX_IRQHandler /* 16: Flexray */
mbed_official 68:41613245dfd7 106 .long UART0_ERR_IRQHandler /* 17: CAN */
mbed_official 68:41613245dfd7 107 .long UART1_RX_TX_IRQHandler /* 18: LIN */
mbed_official 68:41613245dfd7 108 .long UART1_ERR_IRQHandler /* 19: I2C ADC/DAC */
mbed_official 68:41613245dfd7 109 .long UART2_RX_TX_IRQHandler /* 20: Reserved */
mbed_official 68:41613245dfd7 110 .long UART2_ERR_IRQHandler /* 21: Reserved */
mbed_official 68:41613245dfd7 111 .long ADC0_IRQHandler /* 22: Reserved */
mbed_official 68:41613245dfd7 112 .long CMP0_IRQHandler /* 23: Reserved */
mbed_official 68:41613245dfd7 113 .long CMP1_IRQHandler /* 24: Reserved */
mbed_official 68:41613245dfd7 114 .long FTM0_IRQHandler /* 25: Reserved */
mbed_official 68:41613245dfd7 115 .long FTM1_IRQHandler /* 26: Reserved */
mbed_official 68:41613245dfd7 116 .long CMT_IRQHandler /* 27: Reserved */
mbed_official 68:41613245dfd7 117 .long RTC_IRQHandler /* 28: Reserved - CPU FPGA CLCD */
mbed_official 68:41613245dfd7 118 .long RTC_Seconds_IRQHandler /* 29: Reserved - CPU FPGA */
mbed_official 68:41613245dfd7 119 .long PIT0_IRQHandler /* 30: UART3 - CPU FPGA */
mbed_official 68:41613245dfd7 120 .long PIT1_IRQHandler /* 31: SPI Touchscreen - CPU FPGA */
mbed_official 68:41613245dfd7 121 .long PIT2_IRQHandler
mbed_official 68:41613245dfd7 122 .long PIT3_IRQHandler
mbed_official 68:41613245dfd7 123 .long PDB0_IRQHandler
mbed_official 68:41613245dfd7 124 .long USB0_IRQHandler
mbed_official 68:41613245dfd7 125 .long USBDCD_IRQHandler
mbed_official 68:41613245dfd7 126 .long TSI0_IRQHandler
mbed_official 68:41613245dfd7 127 .long MCG_IRQHandler
mbed_official 68:41613245dfd7 128 .long LPTimer_IRQHandler
mbed_official 68:41613245dfd7 129 .long PORTA_IRQHandler
mbed_official 68:41613245dfd7 130 .long PORTB_IRQHandler
mbed_official 68:41613245dfd7 131 .long PORTC_IRQHandler
mbed_official 68:41613245dfd7 132 .long PORTD_IRQHandler
mbed_official 68:41613245dfd7 133 .long PORTE_IRQHandler
mbed_official 68:41613245dfd7 134 .long SWI_IRQHandler
mbed_official 68:41613245dfd7 135 .size __isr_vector, . - __isr_vector
mbed_official 68:41613245dfd7 136
mbed_official 68:41613245dfd7 137 .section .text.Reset_Handler
mbed_official 68:41613245dfd7 138 .thumb
mbed_official 68:41613245dfd7 139 .thumb_func
mbed_official 68:41613245dfd7 140 .align 2
mbed_official 68:41613245dfd7 141 .globl Reset_Handler
mbed_official 68:41613245dfd7 142 .type Reset_Handler, %function
mbed_official 68:41613245dfd7 143 Reset_Handler:
mbed_official 68:41613245dfd7 144 /* Loop to copy data from read only memory to RAM. The ranges
mbed_official 68:41613245dfd7 145 * of copy from/to are specified by following symbols evaluated in
mbed_official 68:41613245dfd7 146 * linker script.
mbed_official 68:41613245dfd7 147 * __etext: End of code section, i.e., begin of data sections to copy from.
mbed_official 68:41613245dfd7 148 * __data_start__/__data_end__: RAM address range that data should be
mbed_official 68:41613245dfd7 149 * copied to. Both must be aligned to 4 bytes boundary. */
mbed_official 68:41613245dfd7 150
mbed_official 68:41613245dfd7 151 ldr r1, =__etext
mbed_official 68:41613245dfd7 152 ldr r2, =__data_start__
mbed_official 68:41613245dfd7 153 ldr r3, =__data_end__
mbed_official 68:41613245dfd7 154
mbed_official 68:41613245dfd7 155 .Lflash_to_ram_loop:
mbed_official 68:41613245dfd7 156 cmp r2, r3
mbed_official 68:41613245dfd7 157 ittt lt
mbed_official 68:41613245dfd7 158 ldrlt r0, [r1], #4
mbed_official 68:41613245dfd7 159 strlt r0, [r2], #4
mbed_official 68:41613245dfd7 160 blt .Lflash_to_ram_loop
mbed_official 68:41613245dfd7 161
mbed_official 68:41613245dfd7 162 .Lflash_to_ram_loop_end:
mbed_official 68:41613245dfd7 163
mbed_official 68:41613245dfd7 164 ldr r0, =SystemInit
mbed_official 68:41613245dfd7 165 blx r0
mbed_official 68:41613245dfd7 166 ldr r0, =_start
mbed_official 68:41613245dfd7 167 bx r0
mbed_official 68:41613245dfd7 168 .pool
mbed_official 68:41613245dfd7 169 .size Reset_Handler, . - Reset_Handler
mbed_official 68:41613245dfd7 170
mbed_official 68:41613245dfd7 171 .text
mbed_official 68:41613245dfd7 172 /* Macro to define default handlers. Default handler
mbed_official 68:41613245dfd7 173 * will be weak symbol and just dead loops. They can be
mbed_official 68:41613245dfd7 174 * overwritten by other handlers */
mbed_official 68:41613245dfd7 175 .macro def_default_handler handler_name
mbed_official 68:41613245dfd7 176 .align 1
mbed_official 68:41613245dfd7 177 .thumb_func
mbed_official 68:41613245dfd7 178 .weak \handler_name
mbed_official 68:41613245dfd7 179 .type \handler_name, %function
mbed_official 68:41613245dfd7 180 \handler_name :
mbed_official 68:41613245dfd7 181 b .
mbed_official 68:41613245dfd7 182 .size \handler_name, . - \handler_name
mbed_official 68:41613245dfd7 183 .endm
mbed_official 68:41613245dfd7 184
mbed_official 68:41613245dfd7 185 def_default_handler NMI_Handler
mbed_official 68:41613245dfd7 186 def_default_handler HardFault_Handler
mbed_official 68:41613245dfd7 187 def_default_handler MemManage_Handler
mbed_official 68:41613245dfd7 188 def_default_handler BusFault_Handler
mbed_official 68:41613245dfd7 189 def_default_handler UsageFault_Handler
mbed_official 68:41613245dfd7 190 def_default_handler SVC_Handler
mbed_official 68:41613245dfd7 191 def_default_handler DebugMon_Handler
mbed_official 68:41613245dfd7 192 def_default_handler PendSV_Handler
mbed_official 68:41613245dfd7 193 def_default_handler SysTick_Handler
mbed_official 68:41613245dfd7 194 def_default_handler Default_Handler
mbed_official 68:41613245dfd7 195
mbed_official 68:41613245dfd7 196 .macro def_irq_default_handler handler_name
mbed_official 68:41613245dfd7 197 .weak \handler_name
mbed_official 68:41613245dfd7 198 .set \handler_name, Default_Handler
mbed_official 68:41613245dfd7 199 .endm
mbed_official 68:41613245dfd7 200
mbed_official 68:41613245dfd7 201 def_irq_default_handler DMA0_IRQHandler
mbed_official 68:41613245dfd7 202 def_irq_default_handler DMA1_IRQHandler
mbed_official 68:41613245dfd7 203 def_irq_default_handler DMA2_IRQHandler
mbed_official 68:41613245dfd7 204 def_irq_default_handler DMA3_IRQHandler
mbed_official 68:41613245dfd7 205 def_irq_default_handler DMA_Error_IRQHandler
mbed_official 68:41613245dfd7 206 def_irq_default_handler FTFL_IRQHandler
mbed_official 68:41613245dfd7 207 def_irq_default_handler Read_Collision_IRQHandler
mbed_official 68:41613245dfd7 208 def_irq_default_handler LVD_LVW_IRQHandler
mbed_official 68:41613245dfd7 209 def_irq_default_handler LLW_IRQHandler
mbed_official 68:41613245dfd7 210 def_irq_default_handler Watchdog_IRQHandler
mbed_official 68:41613245dfd7 211 def_irq_default_handler I2C0_IRQHandler
mbed_official 68:41613245dfd7 212 def_irq_default_handler SPI0_IRQHandler
mbed_official 68:41613245dfd7 213 def_irq_default_handler I2S0_Tx_IRQHandler
mbed_official 68:41613245dfd7 214 def_irq_default_handler I2S0_Rx_IRQHandler
mbed_official 68:41613245dfd7 215 def_irq_default_handler UART0_LON_IRQHandler
mbed_official 68:41613245dfd7 216 def_irq_default_handler UART0_RX_TX_IRQHandler
mbed_official 68:41613245dfd7 217 def_irq_default_handler UART0_ERR_IRQHandler
mbed_official 68:41613245dfd7 218 def_irq_default_handler UART1_RX_TX_IRQHandler
mbed_official 68:41613245dfd7 219 def_irq_default_handler UART1_ERR_IRQHandler
mbed_official 68:41613245dfd7 220 def_irq_default_handler UART2_RX_TX_IRQHandler
mbed_official 68:41613245dfd7 221 def_irq_default_handler UART2_ERR_IRQHandler
mbed_official 68:41613245dfd7 222 def_irq_default_handler ADC0_IRQHandler
mbed_official 68:41613245dfd7 223 def_irq_default_handler CMP0_IRQHandler
mbed_official 68:41613245dfd7 224 def_irq_default_handler CMP1_IRQHandler
mbed_official 68:41613245dfd7 225 def_irq_default_handler FTM0_IRQHandler
mbed_official 68:41613245dfd7 226 def_irq_default_handler FTM1_IRQHandler
mbed_official 68:41613245dfd7 227 def_irq_default_handler CMT_IRQHandler
mbed_official 68:41613245dfd7 228 def_irq_default_handler RTC_IRQHandler
mbed_official 68:41613245dfd7 229 def_irq_default_handler RTC_Seconds_IRQHandler
mbed_official 68:41613245dfd7 230 def_irq_default_handler PIT0_IRQHandler
mbed_official 68:41613245dfd7 231 def_irq_default_handler PIT1_IRQHandler
mbed_official 68:41613245dfd7 232 def_irq_default_handler PIT2_IRQHandler
mbed_official 68:41613245dfd7 233 def_irq_default_handler PIT3_IRQHandler
mbed_official 68:41613245dfd7 234 def_irq_default_handler PDB0_IRQHandler
mbed_official 68:41613245dfd7 235 def_irq_default_handler USB0_IRQHandler
mbed_official 68:41613245dfd7 236 def_irq_default_handler USBDCD_IRQHandler
mbed_official 68:41613245dfd7 237 def_irq_default_handler TSI0_IRQHandler
mbed_official 68:41613245dfd7 238 def_irq_default_handler MCG_IRQHandler
mbed_official 68:41613245dfd7 239 def_irq_default_handler LPTimer_IRQHandler
mbed_official 68:41613245dfd7 240 def_irq_default_handler PORTA_IRQHandler
mbed_official 68:41613245dfd7 241 def_irq_default_handler PORTB_IRQHandler
mbed_official 68:41613245dfd7 242 def_irq_default_handler PORTC_IRQHandler
mbed_official 68:41613245dfd7 243 def_irq_default_handler PORTD_IRQHandler
mbed_official 68:41613245dfd7 244 def_irq_default_handler PORTE_IRQHandler
mbed_official 68:41613245dfd7 245 def_irq_default_handler SWI_IRQHandler
mbed_official 68:41613245dfd7 246 def_irq_default_handler DEF_IRQHandler
mbed_official 68:41613245dfd7 247
mbed_official 68:41613245dfd7 248 /* Flash protection region, placed at 0x400 */
mbed_official 68:41613245dfd7 249 .text
mbed_official 68:41613245dfd7 250 .thumb
mbed_official 68:41613245dfd7 251 .align 2
mbed_official 68:41613245dfd7 252 .section .kinetis_flash_config_field,"a",%progbits
mbed_official 68:41613245dfd7 253 kinetis_flash_config:
mbed_official 68:41613245dfd7 254 .long 0xffffffff
mbed_official 68:41613245dfd7 255 .long 0xffffffff
mbed_official 68:41613245dfd7 256 .long 0xffffffff
mbed_official 68:41613245dfd7 257 .long 0xfffffffe
mbed_official 68:41613245dfd7 258
mbed_official 68:41613245dfd7 259 .end