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_IRQHandler 125.thumb_set UARTE0_IRQHandler, Dummy_Handler 126 127.weak TWIM0_TWIS0_IRQHandler 128.thumb_set TWIM0_TWIS0_IRQHandler, Dummy_Handler 129 130.weak SPIM0_SPIS0_IRQHandler 131.thumb_set SPIM0_SPIS0_IRQHandler, Dummy_Handler 132 133.weak GPIOTE_IRQHandler 134.thumb_set GPIOTE_IRQHandler, Dummy_Handler 135 136.weak SAADC_IRQHandler 137.thumb_set SAADC_IRQHandler, Dummy_Handler 138 139.weak TIMER0_IRQHandler 140.thumb_set TIMER0_IRQHandler, Dummy_Handler 141 142.weak TIMER1_IRQHandler 143.thumb_set TIMER1_IRQHandler, Dummy_Handler 144 145.weak TIMER2_IRQHandler 146.thumb_set TIMER2_IRQHandler, Dummy_Handler 147 148.weak RTC0_IRQHandler 149.thumb_set RTC0_IRQHandler, Dummy_Handler 150 151.weak TEMP_IRQHandler 152.thumb_set TEMP_IRQHandler, Dummy_Handler 153 154.weak RNG_IRQHandler 155.thumb_set RNG_IRQHandler, Dummy_Handler 156 157.weak ECB_IRQHandler 158.thumb_set ECB_IRQHandler, Dummy_Handler 159 160.weak CCM_AAR_IRQHandler 161.thumb_set CCM_AAR_IRQHandler, Dummy_Handler 162 163.weak WDT_IRQHandler 164.thumb_set WDT_IRQHandler, Dummy_Handler 165 166.weak RTC1_IRQHandler 167.thumb_set RTC1_IRQHandler, Dummy_Handler 168 169.weak QDEC_IRQHandler 170.thumb_set QDEC_IRQHandler, Dummy_Handler 171 172.weak COMP_IRQHandler 173.thumb_set COMP_IRQHandler, Dummy_Handler 174 175.weak SWI0_EGU0_IRQHandler 176.thumb_set SWI0_EGU0_IRQHandler, Dummy_Handler 177 178.weak SWI1_EGU1_IRQHandler 179.thumb_set SWI1_EGU1_IRQHandler, Dummy_Handler 180 181.weak SWI2_IRQHandler 182.thumb_set SWI2_IRQHandler, Dummy_Handler 183 184.weak SWI3_IRQHandler 185.thumb_set SWI3_IRQHandler, Dummy_Handler 186 187.weak SWI4_IRQHandler 188.thumb_set SWI4_IRQHandler, Dummy_Handler 189 190.weak SWI5_IRQHandler 191.thumb_set SWI5_IRQHandler, Dummy_Handler 192 193.weak PWM0_IRQHandler 194.thumb_set PWM0_IRQHandler, Dummy_Handler 195 196.weak PDM_IRQHandler 197.thumb_set PDM_IRQHandler, Dummy_Handler 198 199/************************************************************************************ 200 * Reset Handler Extensions * 201 ************************************************************************************/ 202 203 .extern Reset_Handler 204 .global nRFInitialize 205 206 .thumb_func 207nRFInitialize: 208 bx lr 209 210 211/************************************************************************************ 212 * Vector Table * 213 ************************************************************************************/ 214 215 .section .vectors, "ax" 216 .align 0 217 .global _vectors 218 .extern __stack_end__ 219 220_vectors: 221 .word __stack_end__ 222 .word Reset_Handler 223 .word NMI_Handler 224 .word HardFault_Handler 225 .word MemoryManagement_Handler 226 .word BusFault_Handler 227 .word UsageFault_Handler 228 .word 0 /*Reserved */ 229 .word 0 /*Reserved */ 230 .word 0 /*Reserved */ 231 .word 0 /*Reserved */ 232 .word SVC_Handler 233 .word DebugMon_Handler 234 .word 0 /*Reserved */ 235 .word PendSV_Handler 236 .word SysTick_Handler 237 238/* External Interrupts */ 239 .word POWER_CLOCK_IRQHandler 240 .word RADIO_IRQHandler 241 .word UARTE0_IRQHandler 242 .word TWIM0_TWIS0_IRQHandler 243 .word SPIM0_SPIS0_IRQHandler 244 .word 0 /*Reserved */ 245 .word GPIOTE_IRQHandler 246 .word SAADC_IRQHandler 247 .word TIMER0_IRQHandler 248 .word TIMER1_IRQHandler 249 .word TIMER2_IRQHandler 250 .word RTC0_IRQHandler 251 .word TEMP_IRQHandler 252 .word RNG_IRQHandler 253 .word ECB_IRQHandler 254 .word CCM_AAR_IRQHandler 255 .word WDT_IRQHandler 256 .word RTC1_IRQHandler 257 .word QDEC_IRQHandler 258 .word COMP_IRQHandler 259 .word SWI0_EGU0_IRQHandler 260 .word SWI1_EGU1_IRQHandler 261 .word SWI2_IRQHandler 262 .word SWI3_IRQHandler 263 .word SWI4_IRQHandler 264 .word SWI5_IRQHandler 265 .word 0 /*Reserved */ 266 .word 0 /*Reserved */ 267 .word PWM0_IRQHandler 268 .word PDM_IRQHandler 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 0 /*Reserved */ 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 .word 0 /*Reserved */ 350 .word 0 /*Reserved */ 351_vectors_end: 352 353#ifdef VECTORS_IN_RAM 354 .section .vectors_ram, "ax" 355 .align 0 356 .global _vectors_ram 357 358_vectors_ram: 359 .space _vectors_end - _vectors, 0 360#endif 361