1;/**************************************************************************//** 2; * @file 3; * @brief CMSIS Core Device Startup File 4; * Silicon Labs EFR32FG1P 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 FRC_IRQHandler ; 3: FRC Interrupt 96 DCD MODEM_IRQHandler ; 4: MODEM Interrupt 97 DCD RAC_SEQ_IRQHandler ; 5: RAC_SEQ Interrupt 98 DCD RAC_RSM_IRQHandler ; 6: RAC_RSM Interrupt 99 DCD BUFC_IRQHandler ; 7: BUFC Interrupt 100 DCD LDMA_IRQHandler ; 8: LDMA Interrupt 101 DCD GPIO_EVEN_IRQHandler ; 9: GPIO_EVEN Interrupt 102 DCD TIMER0_IRQHandler ; 10: TIMER0 Interrupt 103 DCD USART0_RX_IRQHandler ; 11: USART0_RX Interrupt 104 DCD USART0_TX_IRQHandler ; 12: USART0_TX Interrupt 105 DCD ACMP0_IRQHandler ; 13: ACMP0 Interrupt 106 DCD ADC0_IRQHandler ; 14: ADC0 Interrupt 107 DCD IDAC0_IRQHandler ; 15: IDAC0 Interrupt 108 DCD I2C0_IRQHandler ; 16: I2C0 Interrupt 109 DCD GPIO_ODD_IRQHandler ; 17: GPIO_ODD Interrupt 110 DCD TIMER1_IRQHandler ; 18: TIMER1 Interrupt 111 DCD USART1_RX_IRQHandler ; 19: USART1_RX Interrupt 112 DCD USART1_TX_IRQHandler ; 20: USART1_TX Interrupt 113 DCD LEUART0_IRQHandler ; 21: LEUART0 Interrupt 114 DCD PCNT0_IRQHandler ; 22: PCNT0 Interrupt 115 DCD CMU_IRQHandler ; 23: CMU Interrupt 116 DCD MSC_IRQHandler ; 24: MSC Interrupt 117 DCD CRYPTO_IRQHandler ; 25: CRYPTO Interrupt 118 DCD LETIMER0_IRQHandler ; 26: LETIMER0 Interrupt 119 DCD AGC_IRQHandler ; 27: AGC Interrupt 120 DCD PROTIMER_IRQHandler ; 28: PROTIMER Interrupt 121 DCD RTCC_IRQHandler ; 29: RTCC Interrupt 122 DCD SYNTH_IRQHandler ; 30: SYNTH Interrupt 123 DCD CRYOTIMER_IRQHandler ; 31: CRYOTIMER Interrupt 124 DCD RFSENSE_IRQHandler ; 32: RFSENSE Interrupt 125 DCD FPUEH_IRQHandler ; 33: FPUEH Interrupt 126 127__Vectors_End 128 129__Vectors EQU __vector_table 130__Vectors_Size EQU __Vectors_End - __Vectors 131 132 133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 134;; 135;; Default interrupt handlers. 136;; 137 THUMB 138 139 PUBWEAK Reset_Handler 140 SECTION .text:CODE:REORDER:NOROOT(2) 141Reset_Handler 142 LDR R0, =SystemInit 143 BLX R0 144 LDR R0, =__iar_program_start 145 BX R0 146 147 PUBWEAK NMI_Handler 148 PUBWEAK sl_app_properties 149 SECTION .text:CODE:REORDER:NOROOT(1) 150NMI_Handler 151sl_app_properties ; Provide a dummy value for the sl_app_properties symbol. 152 B NMI_Handler 153 154 PUBWEAK HardFault_Handler 155 SECTION .text:CODE:REORDER:NOROOT(1) 156HardFault_Handler 157 B HardFault_Handler 158 159 PUBWEAK MemManage_Handler 160 SECTION .text:CODE:REORDER:NOROOT(1) 161MemManage_Handler 162 B MemManage_Handler 163 164 PUBWEAK BusFault_Handler 165 SECTION .text:CODE:REORDER:NOROOT(1) 166BusFault_Handler 167 B BusFault_Handler 168 169 PUBWEAK UsageFault_Handler 170 SECTION .text:CODE:REORDER:NOROOT(1) 171UsageFault_Handler 172 B UsageFault_Handler 173 174 PUBWEAK SVC_Handler 175 SECTION .text:CODE:REORDER:NOROOT(1) 176SVC_Handler 177 B SVC_Handler 178 179 PUBWEAK DebugMon_Handler 180 SECTION .text:CODE:REORDER:NOROOT(1) 181DebugMon_Handler 182 B DebugMon_Handler 183 184 PUBWEAK PendSV_Handler 185 SECTION .text:CODE:REORDER:NOROOT(1) 186PendSV_Handler 187 B PendSV_Handler 188 189 PUBWEAK SysTick_Handler 190 SECTION .text:CODE:REORDER:NOROOT(1) 191SysTick_Handler 192 B SysTick_Handler 193 194 ; Device specific interrupt handlers 195 196 PUBWEAK EMU_IRQHandler 197 SECTION .text:CODE:REORDER:NOROOT(1) 198EMU_IRQHandler 199 B EMU_IRQHandler 200 201 PUBWEAK FRC_PRI_IRQHandler 202 SECTION .text:CODE:REORDER:NOROOT(1) 203FRC_PRI_IRQHandler 204 B FRC_PRI_IRQHandler 205 206 PUBWEAK WDOG0_IRQHandler 207 SECTION .text:CODE:REORDER:NOROOT(1) 208WDOG0_IRQHandler 209 B WDOG0_IRQHandler 210 211 PUBWEAK FRC_IRQHandler 212 SECTION .text:CODE:REORDER:NOROOT(1) 213FRC_IRQHandler 214 B FRC_IRQHandler 215 216 PUBWEAK MODEM_IRQHandler 217 SECTION .text:CODE:REORDER:NOROOT(1) 218MODEM_IRQHandler 219 B MODEM_IRQHandler 220 221 PUBWEAK RAC_SEQ_IRQHandler 222 SECTION .text:CODE:REORDER:NOROOT(1) 223RAC_SEQ_IRQHandler 224 B RAC_SEQ_IRQHandler 225 226 PUBWEAK RAC_RSM_IRQHandler 227 SECTION .text:CODE:REORDER:NOROOT(1) 228RAC_RSM_IRQHandler 229 B RAC_RSM_IRQHandler 230 231 PUBWEAK BUFC_IRQHandler 232 SECTION .text:CODE:REORDER:NOROOT(1) 233BUFC_IRQHandler 234 B BUFC_IRQHandler 235 236 PUBWEAK LDMA_IRQHandler 237 SECTION .text:CODE:REORDER:NOROOT(1) 238LDMA_IRQHandler 239 B LDMA_IRQHandler 240 241 PUBWEAK GPIO_EVEN_IRQHandler 242 SECTION .text:CODE:REORDER:NOROOT(1) 243GPIO_EVEN_IRQHandler 244 B GPIO_EVEN_IRQHandler 245 246 PUBWEAK TIMER0_IRQHandler 247 SECTION .text:CODE:REORDER:NOROOT(1) 248TIMER0_IRQHandler 249 B TIMER0_IRQHandler 250 251 PUBWEAK USART0_RX_IRQHandler 252 SECTION .text:CODE:REORDER:NOROOT(1) 253USART0_RX_IRQHandler 254 B USART0_RX_IRQHandler 255 256 PUBWEAK USART0_TX_IRQHandler 257 SECTION .text:CODE:REORDER:NOROOT(1) 258USART0_TX_IRQHandler 259 B USART0_TX_IRQHandler 260 261 PUBWEAK ACMP0_IRQHandler 262 SECTION .text:CODE:REORDER:NOROOT(1) 263ACMP0_IRQHandler 264 B ACMP0_IRQHandler 265 266 PUBWEAK ADC0_IRQHandler 267 SECTION .text:CODE:REORDER:NOROOT(1) 268ADC0_IRQHandler 269 B ADC0_IRQHandler 270 271 PUBWEAK IDAC0_IRQHandler 272 SECTION .text:CODE:REORDER:NOROOT(1) 273IDAC0_IRQHandler 274 B IDAC0_IRQHandler 275 276 PUBWEAK I2C0_IRQHandler 277 SECTION .text:CODE:REORDER:NOROOT(1) 278I2C0_IRQHandler 279 B I2C0_IRQHandler 280 281 PUBWEAK GPIO_ODD_IRQHandler 282 SECTION .text:CODE:REORDER:NOROOT(1) 283GPIO_ODD_IRQHandler 284 B GPIO_ODD_IRQHandler 285 286 PUBWEAK TIMER1_IRQHandler 287 SECTION .text:CODE:REORDER:NOROOT(1) 288TIMER1_IRQHandler 289 B TIMER1_IRQHandler 290 291 PUBWEAK USART1_RX_IRQHandler 292 SECTION .text:CODE:REORDER:NOROOT(1) 293USART1_RX_IRQHandler 294 B USART1_RX_IRQHandler 295 296 PUBWEAK USART1_TX_IRQHandler 297 SECTION .text:CODE:REORDER:NOROOT(1) 298USART1_TX_IRQHandler 299 B USART1_TX_IRQHandler 300 301 PUBWEAK LEUART0_IRQHandler 302 SECTION .text:CODE:REORDER:NOROOT(1) 303LEUART0_IRQHandler 304 B LEUART0_IRQHandler 305 306 PUBWEAK PCNT0_IRQHandler 307 SECTION .text:CODE:REORDER:NOROOT(1) 308PCNT0_IRQHandler 309 B PCNT0_IRQHandler 310 311 PUBWEAK CMU_IRQHandler 312 SECTION .text:CODE:REORDER:NOROOT(1) 313CMU_IRQHandler 314 B CMU_IRQHandler 315 316 PUBWEAK MSC_IRQHandler 317 SECTION .text:CODE:REORDER:NOROOT(1) 318MSC_IRQHandler 319 B MSC_IRQHandler 320 321 PUBWEAK CRYPTO_IRQHandler 322 SECTION .text:CODE:REORDER:NOROOT(1) 323CRYPTO_IRQHandler 324 B CRYPTO_IRQHandler 325 326 PUBWEAK LETIMER0_IRQHandler 327 SECTION .text:CODE:REORDER:NOROOT(1) 328LETIMER0_IRQHandler 329 B LETIMER0_IRQHandler 330 331 PUBWEAK AGC_IRQHandler 332 SECTION .text:CODE:REORDER:NOROOT(1) 333AGC_IRQHandler 334 B AGC_IRQHandler 335 336 PUBWEAK PROTIMER_IRQHandler 337 SECTION .text:CODE:REORDER:NOROOT(1) 338PROTIMER_IRQHandler 339 B PROTIMER_IRQHandler 340 341 PUBWEAK RTCC_IRQHandler 342 SECTION .text:CODE:REORDER:NOROOT(1) 343RTCC_IRQHandler 344 B RTCC_IRQHandler 345 346 PUBWEAK SYNTH_IRQHandler 347 SECTION .text:CODE:REORDER:NOROOT(1) 348SYNTH_IRQHandler 349 B SYNTH_IRQHandler 350 351 PUBWEAK CRYOTIMER_IRQHandler 352 SECTION .text:CODE:REORDER:NOROOT(1) 353CRYOTIMER_IRQHandler 354 B CRYOTIMER_IRQHandler 355 356 PUBWEAK RFSENSE_IRQHandler 357 SECTION .text:CODE:REORDER:NOROOT(1) 358RFSENSE_IRQHandler 359 B RFSENSE_IRQHandler 360 361 PUBWEAK FPUEH_IRQHandler 362 SECTION .text:CODE:REORDER:NOROOT(1) 363FPUEH_IRQHandler 364 B FPUEH_IRQHandler 365 366 367 END 368