1/*********************************************************************************** 2 * SEGGER Microcontroller GmbH * 3 * The Embedded Experts * 4 *********************************************************************************** 5 * * 6 * (c) 2014 - 2018 SEGGER Microcontroller GmbH * 7 * * 8 * www.segger.com Support: support@segger.com * 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 GPIOTE_IRQHandler 134.thumb_set GPIOTE_IRQHandler, Dummy_Handler 135 136.weak TIMER0_IRQHandler 137.thumb_set TIMER0_IRQHandler, Dummy_Handler 138 139.weak TIMER1_IRQHandler 140.thumb_set TIMER1_IRQHandler, Dummy_Handler 141 142.weak TIMER2_IRQHandler 143.thumb_set TIMER2_IRQHandler, Dummy_Handler 144 145.weak RTC0_IRQHandler 146.thumb_set RTC0_IRQHandler, Dummy_Handler 147 148.weak TEMP_IRQHandler 149.thumb_set TEMP_IRQHandler, Dummy_Handler 150 151.weak RNG_IRQHandler 152.thumb_set RNG_IRQHandler, Dummy_Handler 153 154.weak ECB_IRQHandler 155.thumb_set ECB_IRQHandler, Dummy_Handler 156 157.weak CCM_AAR_IRQHandler 158.thumb_set CCM_AAR_IRQHandler, Dummy_Handler 159 160.weak WDT_IRQHandler 161.thumb_set WDT_IRQHandler, Dummy_Handler 162 163.weak RTC1_IRQHandler 164.thumb_set RTC1_IRQHandler, Dummy_Handler 165 166.weak QDEC_IRQHandler 167.thumb_set QDEC_IRQHandler, Dummy_Handler 168 169.weak COMP_IRQHandler 170.thumb_set COMP_IRQHandler, Dummy_Handler 171 172.weak SWI0_EGU0_IRQHandler 173.thumb_set SWI0_EGU0_IRQHandler, Dummy_Handler 174 175.weak SWI1_EGU1_IRQHandler 176.thumb_set SWI1_EGU1_IRQHandler, Dummy_Handler 177 178.weak SWI2_EGU2_IRQHandler 179.thumb_set SWI2_EGU2_IRQHandler, Dummy_Handler 180 181.weak SWI3_EGU3_IRQHandler 182.thumb_set SWI3_EGU3_IRQHandler, Dummy_Handler 183 184.weak SWI4_EGU4_IRQHandler 185.thumb_set SWI4_EGU4_IRQHandler, Dummy_Handler 186 187.weak SWI5_EGU5_IRQHandler 188.thumb_set SWI5_EGU5_IRQHandler, Dummy_Handler 189 190.weak TIMER3_IRQHandler 191.thumb_set TIMER3_IRQHandler, Dummy_Handler 192 193.weak USBD_IRQHandler 194.thumb_set USBD_IRQHandler, Dummy_Handler 195 196/************************************************************************************ 197 * Reset Handler Extensions * 198 ************************************************************************************/ 199 200 .extern Reset_Handler 201 .global nRFInitialize 202 .extern afterInitialize 203 204 .thumb_func 205nRFInitialize: 206 b afterInitialize 207 208 209/************************************************************************************ 210 * Vector Table * 211 ************************************************************************************/ 212 213 .section .vectors, "ax" 214 .align 0 215 .global _vectors 216 .extern __stack_end__ 217 218_vectors: 219 .word __stack_end__ 220 .word Reset_Handler 221 .word NMI_Handler 222 .word HardFault_Handler 223 .word MemoryManagement_Handler 224 .word BusFault_Handler 225 .word UsageFault_Handler 226 .word 0 /*Reserved */ 227 .word 0 /*Reserved */ 228 .word 0 /*Reserved */ 229 .word 0 /*Reserved */ 230 .word SVC_Handler 231 .word DebugMon_Handler 232 .word 0 /*Reserved */ 233 .word PendSV_Handler 234 .word SysTick_Handler 235 236/* External Interrupts */ 237 .word POWER_CLOCK_IRQHandler 238 .word RADIO_IRQHandler 239 .word UARTE0_UART0_IRQHandler 240 .word SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler 241 .word SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler 242 .word 0 /*Reserved */ 243 .word GPIOTE_IRQHandler 244 .word 0 /*Reserved */ 245 .word TIMER0_IRQHandler 246 .word TIMER1_IRQHandler 247 .word TIMER2_IRQHandler 248 .word RTC0_IRQHandler 249 .word TEMP_IRQHandler 250 .word RNG_IRQHandler 251 .word ECB_IRQHandler 252 .word CCM_AAR_IRQHandler 253 .word WDT_IRQHandler 254 .word RTC1_IRQHandler 255 .word QDEC_IRQHandler 256 .word COMP_IRQHandler 257 .word SWI0_EGU0_IRQHandler 258 .word SWI1_EGU1_IRQHandler 259 .word SWI2_EGU2_IRQHandler 260 .word SWI3_EGU3_IRQHandler 261 .word SWI4_EGU4_IRQHandler 262 .word SWI5_EGU5_IRQHandler 263 .word TIMER3_IRQHandler 264 .word 0 /*Reserved */ 265 .word 0 /*Reserved */ 266 .word 0 /*Reserved */ 267 .word 0 /*Reserved */ 268 .word 0 /*Reserved */ 269 .word 0 /*Reserved */ 270 .word 0 /*Reserved */ 271 .word 0 /*Reserved */ 272 .word 0 /*Reserved */ 273 .word 0 /*Reserved */ 274 .word 0 /*Reserved */ 275 .word 0 /*Reserved */ 276 .word USBD_IRQHandler 277 .word 0 /*Reserved */ 278 .word 0 /*Reserved */ 279 .word 0 /*Reserved */ 280 .word 0 /*Reserved */ 281 .word 0 /*Reserved */ 282 .word 0 /*Reserved */ 283 .word 0 /*Reserved */ 284 .word 0 /*Reserved */ 285 .word 0 /*Reserved */ 286 .word 0 /*Reserved */ 287 .word 0 /*Reserved */ 288 .word 0 /*Reserved */ 289 .word 0 /*Reserved */ 290 .word 0 /*Reserved */ 291 .word 0 /*Reserved */ 292 .word 0 /*Reserved */ 293 .word 0 /*Reserved */ 294 .word 0 /*Reserved */ 295 .word 0 /*Reserved */ 296 .word 0 /*Reserved */ 297 .word 0 /*Reserved */ 298 .word 0 /*Reserved */ 299 .word 0 /*Reserved */ 300 .word 0 /*Reserved */ 301 .word 0 /*Reserved */ 302 .word 0 /*Reserved */ 303 .word 0 /*Reserved */ 304 .word 0 /*Reserved */ 305 .word 0 /*Reserved */ 306 .word 0 /*Reserved */ 307 .word 0 /*Reserved */ 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_vectors_end: 350 351#ifdef VECTORS_IN_RAM 352 .section .vectors_ram, "ax" 353 .align 0 354 .global _vectors_ram 355 356_vectors_ram: 357 .space _vectors_end - _vectors, 0 358#endif 359