mbed library with additional peripherals for ST F401 board

Fork of mbed-src by mbed official

This mbed LIB has additional peripherals for ST F401 board

  • UART2 : PA_3 rx, PA_2 tx
  • UART3 : PC_7 rx, PC_6 tx
  • I2C2 : PB_3 SDA, PB_10 SCL
  • I2C3 : PB_4 SDA, PA_8 SCL
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