1/*********************************************************************************** 2 * SEGGER Microcontroller GmbH * 3 * The Embedded Experts * 4 *********************************************************************************** 5 * * 6 * (c) 2014 - 2018 SEGGER Microcontroller GmbH * 7 * * 8 * www.segger.com Support: [email protected] * 9 * * 10 *********************************************************************************** 11 * * 12 * All rights reserved. * 13 * * 14 * Redistribution and use in source and binary forms, with or * 15 * without modification, are permitted provided that the following * 16 * conditions are met: * 17 * * 18 * - Redistributions of source code must retain the above copyright * 19 * notice, this list of conditions and the following disclaimer. * 20 * * 21 * - Neither the name of SEGGER Microcontroller GmbH * 22 * nor the names of its contributors may be used to endorse or * 23 * promote products derived from this software without specific * 24 * prior written permission. * 25 * * 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * 27 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * 28 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * 29 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * 30 * DISCLAIMED. * 31 * IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR * 32 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * 33 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * 34 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * 35 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * 36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * 38 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * 39 * DAMAGE. * 40 * * 41 ***********************************************************************************/ 42 43/************************************************************************************ 44 * Preprocessor Definitions * 45 * ------------------------ * 46 * VECTORS_IN_RAM * 47 * * 48 * If defined, an area of RAM will large enough to store the vector table * 49 * will be reserved. * 50 * * 51 ************************************************************************************/ 52 53 .syntax unified 54 .code 16 55 56 .section .init, "ax" 57 .align 0 58 59/************************************************************************************ 60 * Default Exception Handlers * 61 ************************************************************************************/ 62 63 64 .thumb_func 65 .weak NMI_Handler 66NMI_Handler: 67 b . 68 69 .thumb_func 70 .weak HardFault_Handler 71HardFault_Handler: 72 b . 73 74 .thumb_func 75 .weak MemoryManagement_Handler 76MemoryManagement_Handler: 77 b . 78 79 .thumb_func 80 .weak BusFault_Handler 81BusFault_Handler: 82 b . 83 84 .thumb_func 85 .weak UsageFault_Handler 86UsageFault_Handler: 87 b . 88 89 .thumb_func 90 .weak SVC_Handler 91SVC_Handler: 92 b . 93 94 .thumb_func 95 .weak DebugMon_Handler 96DebugMon_Handler: 97 b . 98 99 .thumb_func 100 .weak PendSV_Handler 101PendSV_Handler: 102 b . 103 104 .thumb_func 105 .weak SysTick_Handler 106SysTick_Handler: 107 b . 108 109 .thumb_func 110 .weak Dummy_Handler 111Dummy_Handler: 112 b . 113 114/************************************************************************************ 115 * Default Interrupt Handlers * 116 ************************************************************************************/ 117 118.weak POWER_CLOCK_IRQHandler 119.thumb_set POWER_CLOCK_IRQHandler, Dummy_Handler 120 121.weak RADIO_IRQHandler 122.thumb_set RADIO_IRQHandler, Dummy_Handler 123 124.weak UARTE0_UART0_IRQHandler 125.thumb_set UARTE0_UART0_IRQHandler, Dummy_Handler 126 127.weak SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler 128.thumb_set SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler, Dummy_Handler 129 130.weak SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler 131.thumb_set SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler, Dummy_Handler 132 133.weak NFCT_IRQHandler 134.thumb_set NFCT_IRQHandler, Dummy_Handler 135 136.weak GPIOTE_IRQHandler 137.thumb_set GPIOTE_IRQHandler, Dummy_Handler 138 139.weak SAADC_IRQHandler 140.thumb_set SAADC_IRQHandler, Dummy_Handler 141 142.weak TIMER0_IRQHandler 143.thumb_set TIMER0_IRQHandler, Dummy_Handler 144 145.weak TIMER1_IRQHandler 146.thumb_set TIMER1_IRQHandler, Dummy_Handler 147 148.weak TIMER2_IRQHandler 149.thumb_set TIMER2_IRQHandler, Dummy_Handler 150 151.weak RTC0_IRQHandler 152.thumb_set RTC0_IRQHandler, Dummy_Handler 153 154.weak TEMP_IRQHandler 155.thumb_set TEMP_IRQHandler, Dummy_Handler 156 157.weak RNG_IRQHandler 158.thumb_set RNG_IRQHandler, Dummy_Handler 159 160.weak ECB_IRQHandler 161.thumb_set ECB_IRQHandler, Dummy_Handler 162 163.weak CCM_AAR_IRQHandler 164.thumb_set CCM_AAR_IRQHandler, Dummy_Handler 165 166.weak WDT_IRQHandler 167.thumb_set WDT_IRQHandler, Dummy_Handler 168 169.weak RTC1_IRQHandler 170.thumb_set RTC1_IRQHandler, Dummy_Handler 171 172.weak QDEC_IRQHandler 173.thumb_set QDEC_IRQHandler, Dummy_Handler 174 175.weak COMP_LPCOMP_IRQHandler 176.thumb_set COMP_LPCOMP_IRQHandler, Dummy_Handler 177 178.weak SWI0_EGU0_IRQHandler 179.thumb_set SWI0_EGU0_IRQHandler, Dummy_Handler 180 181.weak SWI1_EGU1_IRQHandler 182.thumb_set SWI1_EGU1_IRQHandler, Dummy_Handler 183 184.weak SWI2_EGU2_IRQHandler 185.thumb_set SWI2_EGU2_IRQHandler, Dummy_Handler 186 187.weak SWI3_EGU3_IRQHandler 188.thumb_set SWI3_EGU3_IRQHandler, Dummy_Handler 189 190.weak SWI4_EGU4_IRQHandler 191.thumb_set SWI4_EGU4_IRQHandler, Dummy_Handler 192 193.weak SWI5_EGU5_IRQHandler 194.thumb_set SWI5_EGU5_IRQHandler, Dummy_Handler 195 196.weak TIMER3_IRQHandler 197.thumb_set TIMER3_IRQHandler, Dummy_Handler 198 199.weak TIMER4_IRQHandler 200.thumb_set TIMER4_IRQHandler, Dummy_Handler 201 202.weak PWM0_IRQHandler 203.thumb_set PWM0_IRQHandler, Dummy_Handler 204 205.weak PDM_IRQHandler 206.thumb_set PDM_IRQHandler, Dummy_Handler 207 208.weak MWU_IRQHandler 209.thumb_set MWU_IRQHandler, Dummy_Handler 210 211.weak PWM1_IRQHandler 212.thumb_set PWM1_IRQHandler, Dummy_Handler 213 214.weak PWM2_IRQHandler 215.thumb_set PWM2_IRQHandler, Dummy_Handler 216 217.weak SPIM2_SPIS2_SPI2_IRQHandler 218.thumb_set SPIM2_SPIS2_SPI2_IRQHandler, Dummy_Handler 219 220.weak RTC2_IRQHandler 221.thumb_set RTC2_IRQHandler, Dummy_Handler 222 223.weak I2S_IRQHandler 224.thumb_set I2S_IRQHandler, Dummy_Handler 225 226.weak FPU_IRQHandler 227.thumb_set FPU_IRQHandler, Dummy_Handler 228 229/************************************************************************************ 230 * Reset Handler Extensions * 231 ************************************************************************************/ 232 233 .extern Reset_Handler 234 .global nRFInitialize 235 236 .thumb_func 237nRFInitialize: 238 bx lr 239 240 241/************************************************************************************ 242 * Vector Table * 243 ************************************************************************************/ 244 245 .section .vectors, "ax" 246 .align 0 247 .global _vectors 248 .extern __stack_end__ 249 250_vectors: 251 .word __stack_end__ 252 .word Reset_Handler 253 .word NMI_Handler 254 .word HardFault_Handler 255 .word MemoryManagement_Handler 256 .word BusFault_Handler 257 .word UsageFault_Handler 258 .word 0 /*Reserved */ 259 .word 0 /*Reserved */ 260 .word 0 /*Reserved */ 261 .word 0 /*Reserved */ 262 .word SVC_Handler 263 .word DebugMon_Handler 264 .word 0 /*Reserved */ 265 .word PendSV_Handler 266 .word SysTick_Handler 267 268/* External Interrupts */ 269 .word POWER_CLOCK_IRQHandler 270 .word RADIO_IRQHandler 271 .word UARTE0_UART0_IRQHandler 272 .word SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler 273 .word SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler 274 .word NFCT_IRQHandler 275 .word GPIOTE_IRQHandler 276 .word SAADC_IRQHandler 277 .word TIMER0_IRQHandler 278 .word TIMER1_IRQHandler 279 .word TIMER2_IRQHandler 280 .word RTC0_IRQHandler 281 .word TEMP_IRQHandler 282 .word RNG_IRQHandler 283 .word ECB_IRQHandler 284 .word CCM_AAR_IRQHandler 285 .word WDT_IRQHandler 286 .word RTC1_IRQHandler 287 .word QDEC_IRQHandler 288 .word COMP_LPCOMP_IRQHandler 289 .word SWI0_EGU0_IRQHandler 290 .word SWI1_EGU1_IRQHandler 291 .word SWI2_EGU2_IRQHandler 292 .word SWI3_EGU3_IRQHandler 293 .word SWI4_EGU4_IRQHandler 294 .word SWI5_EGU5_IRQHandler 295 .word TIMER3_IRQHandler 296 .word TIMER4_IRQHandler 297 .word PWM0_IRQHandler 298 .word PDM_IRQHandler 299 .word 0 /*Reserved */ 300 .word 0 /*Reserved */ 301 .word MWU_IRQHandler 302 .word PWM1_IRQHandler 303 .word PWM2_IRQHandler 304 .word SPIM2_SPIS2_SPI2_IRQHandler 305 .word RTC2_IRQHandler 306 .word I2S_IRQHandler 307 .word FPU_IRQHandler 308 .word 0 /*Reserved */ 309 .word 0 /*Reserved */ 310 .word 0 /*Reserved */ 311 .word 0 /*Reserved */ 312 .word 0 /*Reserved */ 313 .word 0 /*Reserved */ 314 .word 0 /*Reserved */ 315 .word 0 /*Reserved */ 316 .word 0 /*Reserved */ 317 .word 0 /*Reserved */ 318 .word 0 /*Reserved */ 319 .word 0 /*Reserved */ 320 .word 0 /*Reserved */ 321 .word 0 /*Reserved */ 322 .word 0 /*Reserved */ 323 .word 0 /*Reserved */ 324 .word 0 /*Reserved */ 325 .word 0 /*Reserved */ 326 .word 0 /*Reserved */ 327 .word 0 /*Reserved */ 328 .word 0 /*Reserved */ 329 .word 0 /*Reserved */ 330 .word 0 /*Reserved */ 331 .word 0 /*Reserved */ 332 .word 0 /*Reserved */ 333 .word 0 /*Reserved */ 334 .word 0 /*Reserved */ 335 .word 0 /*Reserved */ 336 .word 0 /*Reserved */ 337 .word 0 /*Reserved */ 338 .word 0 /*Reserved */ 339 .word 0 /*Reserved */ 340 .word 0 /*Reserved */ 341 .word 0 /*Reserved */ 342 .word 0 /*Reserved */ 343 .word 0 /*Reserved */ 344 .word 0 /*Reserved */ 345 .word 0 /*Reserved */ 346 .word 0 /*Reserved */ 347 .word 0 /*Reserved */ 348 .word 0 /*Reserved */ 349 .word 0 /*Reserved */ 350 .word 0 /*Reserved */ 351 .word 0 /*Reserved */ 352 .word 0 /*Reserved */ 353 .word 0 /*Reserved */ 354 .word 0 /*Reserved */ 355 .word 0 /*Reserved */ 356 .word 0 /*Reserved */ 357 .word 0 /*Reserved */ 358 .word 0 /*Reserved */ 359 .word 0 /*Reserved */ 360 .word 0 /*Reserved */ 361 .word 0 /*Reserved */ 362 .word 0 /*Reserved */ 363 .word 0 /*Reserved */ 364 .word 0 /*Reserved */ 365 .word 0 /*Reserved */ 366 .word 0 /*Reserved */ 367 .word 0 /*Reserved */ 368 .word 0 /*Reserved */ 369 .word 0 /*Reserved */ 370 .word 0 /*Reserved */ 371 .word 0 /*Reserved */ 372 .word 0 /*Reserved */ 373 .word 0 /*Reserved */ 374 .word 0 /*Reserved */ 375 .word 0 /*Reserved */ 376 .word 0 /*Reserved */ 377 .word 0 /*Reserved */ 378 .word 0 /*Reserved */ 379 .word 0 /*Reserved */ 380 .word 0 /*Reserved */ 381_vectors_end: 382 383#ifdef VECTORS_IN_RAM 384 .section .vectors_ram, "ax" 385 .align 0 386 .global _vectors_ram 387 388_vectors_ram: 389 .space _vectors_end - _vectors, 0 390#endif 391