1;/**************************************************************************//** 2; * @file 3; * @brief CMSIS Core Device Startup File 4; * Silicon Labs EFR32FG13P Device Series 5; ****************************************************************************** 6; * # License 7; * 8; * The licensor of this software is Silicon Laboratories Inc. Your use of this 9; * software is governed by the terms of Silicon Labs Master Software License 10; * Agreement (MSLA) available at 11; * www.silabs.com/about-us/legal/master-software-license-agreement. This 12; * software is Third Party Software licensed by Silicon Labs from a third party 13; * and is governed by the sections of the MSLA applicable to Third Party 14; * Software and the additional terms set forth below. 15; * 16; *****************************************************************************/ 17;/* 18; * Copyright (c) 2009-2016 ARM Limited. All rights reserved. 19; * 20; * SPDX-License-Identifier: Apache-2.0 21; * 22; * Licensed under the Apache License, Version 2.0 (the License); you may 23; * not use this file except in compliance with the License. 24; * You may obtain a copy of the License at 25; * 26; * www.apache.org/licenses/LICENSE-2.0 27; * 28; * Unless required by applicable law or agreed to in writing, software 29; * distributed under the License is distributed on an AS IS BASIS, WITHOUT 30; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 31; * See the License for the specific language governing permissions and 32; * limitations under the License. 33; */ 34 35; 36; The modules in this file are included in the libraries, and may be replaced 37; by any user-defined modules that define the PUBLIC symbol _program_start or 38; a user defined start symbol. 39; To override the cstartup defined in the library, simply add your modified 40; version to the workbench project. 41; 42; The vector table is normally located at address 0. 43; 44; When debugging in RAM, it can be located in RAM with at least a 128 byte 45; alignment, 256 byte alignment is requied if all interrupt vectors are in use. 46; 47; The name "__vector_table" has special meaning for C-SPY: 48; it is where the SP start value is found, and the NVIC vector 49; table register (VTOR) is initialized to this address if != 0. 50; 51; Cortex-M version 52; 53 MODULE ?cstartup 54 55 ;; Forward declaration of sections. 56 SECTION CSTACK:DATA:NOROOT(3) 57 58 SECTION .intvec:CODE:NOROOT(8) 59 60 EXTERN __iar_program_start 61 EXTERN SystemInit 62 PUBLIC __vector_table 63 PUBLIC __vector_table_0x1c 64 PUBLIC __Vectors 65 PUBLIC __Vectors_End 66 PUBLIC __Vectors_Size 67 68 DATA 69 70__vector_table 71 DCD sfe(CSTACK) 72 DCD Reset_Handler 73 74 DCD NMI_Handler 75 DCD HardFault_Handler 76 DCD MemManage_Handler 77 DCD BusFault_Handler 78 DCD UsageFault_Handler 79__vector_table_0x1c 80 DCD 0 81 DCD 0 82 DCD 0 83 DCD 0 84 DCD SVC_Handler 85 DCD DebugMon_Handler 86 DCD sl_app_properties 87 DCD PendSV_Handler 88 DCD SysTick_Handler 89 90 ; External Interrupts 91 92 DCD EMU_IRQHandler ; 0: EMU Interrupt 93 DCD FRC_PRI_IRQHandler ; 1: FRC_PRI Interrupt 94 DCD WDOG0_IRQHandler ; 2: WDOG0 Interrupt 95 DCD WDOG1_IRQHandler ; 3: WDOG1 Interrupt 96 DCD FRC_IRQHandler ; 4: FRC Interrupt 97 DCD MODEM_IRQHandler ; 5: MODEM Interrupt 98 DCD RAC_SEQ_IRQHandler ; 6: RAC_SEQ Interrupt 99 DCD RAC_RSM_IRQHandler ; 7: RAC_RSM Interrupt 100 DCD BUFC_IRQHandler ; 8: BUFC Interrupt 101 DCD LDMA_IRQHandler ; 9: LDMA Interrupt 102 DCD GPIO_EVEN_IRQHandler ; 10: GPIO_EVEN Interrupt 103 DCD TIMER0_IRQHandler ; 11: TIMER0 Interrupt 104 DCD USART0_RX_IRQHandler ; 12: USART0_RX Interrupt 105 DCD USART0_TX_IRQHandler ; 13: USART0_TX Interrupt 106 DCD ACMP0_IRQHandler ; 14: ACMP0 Interrupt 107 DCD ADC0_IRQHandler ; 15: ADC0 Interrupt 108 DCD IDAC0_IRQHandler ; 16: IDAC0 Interrupt 109 DCD I2C0_IRQHandler ; 17: I2C0 Interrupt 110 DCD GPIO_ODD_IRQHandler ; 18: GPIO_ODD Interrupt 111 DCD TIMER1_IRQHandler ; 19: TIMER1 Interrupt 112 DCD USART1_RX_IRQHandler ; 20: USART1_RX Interrupt 113 DCD USART1_TX_IRQHandler ; 21: USART1_TX Interrupt 114 DCD LEUART0_IRQHandler ; 22: LEUART0 Interrupt 115 DCD PCNT0_IRQHandler ; 23: PCNT0 Interrupt 116 DCD CMU_IRQHandler ; 24: CMU Interrupt 117 DCD MSC_IRQHandler ; 25: MSC Interrupt 118 DCD CRYPTO0_IRQHandler ; 26: CRYPTO0 Interrupt 119 DCD LETIMER0_IRQHandler ; 27: LETIMER0 Interrupt 120 DCD AGC_IRQHandler ; 28: AGC Interrupt 121 DCD PROTIMER_IRQHandler ; 29: PROTIMER Interrupt 122 DCD PRORTC_IRQHandler ; 30: PRORTC Interrupt 123 DCD RTCC_IRQHandler ; 31: RTCC Interrupt 124 DCD SYNTH_IRQHandler ; 32: SYNTH Interrupt 125 DCD CRYOTIMER_IRQHandler ; 33: CRYOTIMER Interrupt 126 DCD RFSENSE_IRQHandler ; 34: RFSENSE Interrupt 127 DCD FPUEH_IRQHandler ; 35: FPUEH Interrupt 128 DCD SMU_IRQHandler ; 36: SMU Interrupt 129 DCD WTIMER0_IRQHandler ; 37: WTIMER0 Interrupt 130 DCD USART2_RX_IRQHandler ; 38: USART2_RX Interrupt 131 DCD USART2_TX_IRQHandler ; 39: USART2_TX Interrupt 132 DCD I2C1_IRQHandler ; 40: I2C1 Interrupt 133 DCD VDAC0_IRQHandler ; 41: VDAC0 Interrupt 134 DCD CSEN_IRQHandler ; 42: CSEN Interrupt 135 DCD LESENSE_IRQHandler ; 43: LESENSE Interrupt 136 DCD CRYPTO1_IRQHandler ; 44: CRYPTO1 Interrupt 137 DCD TRNG0_IRQHandler ; 45: TRNG0 Interrupt 138 DCD 0 ; 46: Reserved Interrupt 139 140__Vectors_End 141 142__Vectors EQU __vector_table 143__Vectors_Size EQU __Vectors_End - __Vectors 144 145 146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 147;; 148;; Default interrupt handlers. 149;; 150 THUMB 151 152 PUBWEAK Reset_Handler 153 SECTION .text:CODE:REORDER:NOROOT(2) 154Reset_Handler 155 LDR R0, =SystemInit 156 BLX R0 157 LDR R0, =__iar_program_start 158 BX R0 159 160 PUBWEAK NMI_Handler 161 PUBWEAK sl_app_properties 162 SECTION .text:CODE:REORDER:NOROOT(1) 163NMI_Handler 164sl_app_properties ; Provide a dummy value for the sl_app_properties symbol. 165 B NMI_Handler 166 167 PUBWEAK HardFault_Handler 168 SECTION .text:CODE:REORDER:NOROOT(1) 169HardFault_Handler 170 B HardFault_Handler 171 172 PUBWEAK MemManage_Handler 173 SECTION .text:CODE:REORDER:NOROOT(1) 174MemManage_Handler 175 B MemManage_Handler 176 177 PUBWEAK BusFault_Handler 178 SECTION .text:CODE:REORDER:NOROOT(1) 179BusFault_Handler 180 B BusFault_Handler 181 182 PUBWEAK UsageFault_Handler 183 SECTION .text:CODE:REORDER:NOROOT(1) 184UsageFault_Handler 185 B UsageFault_Handler 186 187 PUBWEAK SVC_Handler 188 SECTION .text:CODE:REORDER:NOROOT(1) 189SVC_Handler 190 B SVC_Handler 191 192 PUBWEAK DebugMon_Handler 193 SECTION .text:CODE:REORDER:NOROOT(1) 194DebugMon_Handler 195 B DebugMon_Handler 196 197 PUBWEAK PendSV_Handler 198 SECTION .text:CODE:REORDER:NOROOT(1) 199PendSV_Handler 200 B PendSV_Handler 201 202 PUBWEAK SysTick_Handler 203 SECTION .text:CODE:REORDER:NOROOT(1) 204SysTick_Handler 205 B SysTick_Handler 206 207 ; Device specific interrupt handlers 208 209 PUBWEAK EMU_IRQHandler 210 SECTION .text:CODE:REORDER:NOROOT(1) 211EMU_IRQHandler 212 B EMU_IRQHandler 213 214 PUBWEAK FRC_PRI_IRQHandler 215 SECTION .text:CODE:REORDER:NOROOT(1) 216FRC_PRI_IRQHandler 217 B FRC_PRI_IRQHandler 218 219 PUBWEAK WDOG0_IRQHandler 220 SECTION .text:CODE:REORDER:NOROOT(1) 221WDOG0_IRQHandler 222 B WDOG0_IRQHandler 223 224 PUBWEAK WDOG1_IRQHandler 225 SECTION .text:CODE:REORDER:NOROOT(1) 226WDOG1_IRQHandler 227 B WDOG1_IRQHandler 228 229 PUBWEAK FRC_IRQHandler 230 SECTION .text:CODE:REORDER:NOROOT(1) 231FRC_IRQHandler 232 B FRC_IRQHandler 233 234 PUBWEAK MODEM_IRQHandler 235 SECTION .text:CODE:REORDER:NOROOT(1) 236MODEM_IRQHandler 237 B MODEM_IRQHandler 238 239 PUBWEAK RAC_SEQ_IRQHandler 240 SECTION .text:CODE:REORDER:NOROOT(1) 241RAC_SEQ_IRQHandler 242 B RAC_SEQ_IRQHandler 243 244 PUBWEAK RAC_RSM_IRQHandler 245 SECTION .text:CODE:REORDER:NOROOT(1) 246RAC_RSM_IRQHandler 247 B RAC_RSM_IRQHandler 248 249 PUBWEAK BUFC_IRQHandler 250 SECTION .text:CODE:REORDER:NOROOT(1) 251BUFC_IRQHandler 252 B BUFC_IRQHandler 253 254 PUBWEAK LDMA_IRQHandler 255 SECTION .text:CODE:REORDER:NOROOT(1) 256LDMA_IRQHandler 257 B LDMA_IRQHandler 258 259 PUBWEAK GPIO_EVEN_IRQHandler 260 SECTION .text:CODE:REORDER:NOROOT(1) 261GPIO_EVEN_IRQHandler 262 B GPIO_EVEN_IRQHandler 263 264 PUBWEAK TIMER0_IRQHandler 265 SECTION .text:CODE:REORDER:NOROOT(1) 266TIMER0_IRQHandler 267 B TIMER0_IRQHandler 268 269 PUBWEAK USART0_RX_IRQHandler 270 SECTION .text:CODE:REORDER:NOROOT(1) 271USART0_RX_IRQHandler 272 B USART0_RX_IRQHandler 273 274 PUBWEAK USART0_TX_IRQHandler 275 SECTION .text:CODE:REORDER:NOROOT(1) 276USART0_TX_IRQHandler 277 B USART0_TX_IRQHandler 278 279 PUBWEAK ACMP0_IRQHandler 280 SECTION .text:CODE:REORDER:NOROOT(1) 281ACMP0_IRQHandler 282 B ACMP0_IRQHandler 283 284 PUBWEAK ADC0_IRQHandler 285 SECTION .text:CODE:REORDER:NOROOT(1) 286ADC0_IRQHandler 287 B ADC0_IRQHandler 288 289 PUBWEAK IDAC0_IRQHandler 290 SECTION .text:CODE:REORDER:NOROOT(1) 291IDAC0_IRQHandler 292 B IDAC0_IRQHandler 293 294 PUBWEAK I2C0_IRQHandler 295 SECTION .text:CODE:REORDER:NOROOT(1) 296I2C0_IRQHandler 297 B I2C0_IRQHandler 298 299 PUBWEAK GPIO_ODD_IRQHandler 300 SECTION .text:CODE:REORDER:NOROOT(1) 301GPIO_ODD_IRQHandler 302 B GPIO_ODD_IRQHandler 303 304 PUBWEAK TIMER1_IRQHandler 305 SECTION .text:CODE:REORDER:NOROOT(1) 306TIMER1_IRQHandler 307 B TIMER1_IRQHandler 308 309 PUBWEAK USART1_RX_IRQHandler 310 SECTION .text:CODE:REORDER:NOROOT(1) 311USART1_RX_IRQHandler 312 B USART1_RX_IRQHandler 313 314 PUBWEAK USART1_TX_IRQHandler 315 SECTION .text:CODE:REORDER:NOROOT(1) 316USART1_TX_IRQHandler 317 B USART1_TX_IRQHandler 318 319 PUBWEAK LEUART0_IRQHandler 320 SECTION .text:CODE:REORDER:NOROOT(1) 321LEUART0_IRQHandler 322 B LEUART0_IRQHandler 323 324 PUBWEAK PCNT0_IRQHandler 325 SECTION .text:CODE:REORDER:NOROOT(1) 326PCNT0_IRQHandler 327 B PCNT0_IRQHandler 328 329 PUBWEAK CMU_IRQHandler 330 SECTION .text:CODE:REORDER:NOROOT(1) 331CMU_IRQHandler 332 B CMU_IRQHandler 333 334 PUBWEAK MSC_IRQHandler 335 SECTION .text:CODE:REORDER:NOROOT(1) 336MSC_IRQHandler 337 B MSC_IRQHandler 338 339 PUBWEAK CRYPTO0_IRQHandler 340 SECTION .text:CODE:REORDER:NOROOT(1) 341CRYPTO0_IRQHandler 342 B CRYPTO0_IRQHandler 343 344 PUBWEAK LETIMER0_IRQHandler 345 SECTION .text:CODE:REORDER:NOROOT(1) 346LETIMER0_IRQHandler 347 B LETIMER0_IRQHandler 348 349 PUBWEAK AGC_IRQHandler 350 SECTION .text:CODE:REORDER:NOROOT(1) 351AGC_IRQHandler 352 B AGC_IRQHandler 353 354 PUBWEAK PROTIMER_IRQHandler 355 SECTION .text:CODE:REORDER:NOROOT(1) 356PROTIMER_IRQHandler 357 B PROTIMER_IRQHandler 358 359 PUBWEAK PRORTC_IRQHandler 360 SECTION .text:CODE:REORDER:NOROOT(1) 361PRORTC_IRQHandler 362 B PRORTC_IRQHandler 363 364 PUBWEAK RTCC_IRQHandler 365 SECTION .text:CODE:REORDER:NOROOT(1) 366RTCC_IRQHandler 367 B RTCC_IRQHandler 368 369 PUBWEAK SYNTH_IRQHandler 370 SECTION .text:CODE:REORDER:NOROOT(1) 371SYNTH_IRQHandler 372 B SYNTH_IRQHandler 373 374 PUBWEAK CRYOTIMER_IRQHandler 375 SECTION .text:CODE:REORDER:NOROOT(1) 376CRYOTIMER_IRQHandler 377 B CRYOTIMER_IRQHandler 378 379 PUBWEAK RFSENSE_IRQHandler 380 SECTION .text:CODE:REORDER:NOROOT(1) 381RFSENSE_IRQHandler 382 B RFSENSE_IRQHandler 383 384 PUBWEAK FPUEH_IRQHandler 385 SECTION .text:CODE:REORDER:NOROOT(1) 386FPUEH_IRQHandler 387 B FPUEH_IRQHandler 388 389 PUBWEAK SMU_IRQHandler 390 SECTION .text:CODE:REORDER:NOROOT(1) 391SMU_IRQHandler 392 B SMU_IRQHandler 393 394 PUBWEAK WTIMER0_IRQHandler 395 SECTION .text:CODE:REORDER:NOROOT(1) 396WTIMER0_IRQHandler 397 B WTIMER0_IRQHandler 398 399 PUBWEAK USART2_RX_IRQHandler 400 SECTION .text:CODE:REORDER:NOROOT(1) 401USART2_RX_IRQHandler 402 B USART2_RX_IRQHandler 403 404 PUBWEAK USART2_TX_IRQHandler 405 SECTION .text:CODE:REORDER:NOROOT(1) 406USART2_TX_IRQHandler 407 B USART2_TX_IRQHandler 408 409 PUBWEAK I2C1_IRQHandler 410 SECTION .text:CODE:REORDER:NOROOT(1) 411I2C1_IRQHandler 412 B I2C1_IRQHandler 413 414 PUBWEAK VDAC0_IRQHandler 415 SECTION .text:CODE:REORDER:NOROOT(1) 416VDAC0_IRQHandler 417 B VDAC0_IRQHandler 418 419 PUBWEAK CSEN_IRQHandler 420 SECTION .text:CODE:REORDER:NOROOT(1) 421CSEN_IRQHandler 422 B CSEN_IRQHandler 423 424 PUBWEAK LESENSE_IRQHandler 425 SECTION .text:CODE:REORDER:NOROOT(1) 426LESENSE_IRQHandler 427 B LESENSE_IRQHandler 428 429 PUBWEAK CRYPTO1_IRQHandler 430 SECTION .text:CODE:REORDER:NOROOT(1) 431CRYPTO1_IRQHandler 432 B CRYPTO1_IRQHandler 433 434 PUBWEAK TRNG0_IRQHandler 435 SECTION .text:CODE:REORDER:NOROOT(1) 436TRNG0_IRQHandler 437 B TRNG0_IRQHandler 438 439 440 END 441