1;****************************************************************************************************************************************** 2; 文件名称: startup_SWM320.s 3; 功能说明: SWM2400单片机的启动文件 4; 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1 5; 注意事项: 6; 版本日期: V1.1.0 2017年10月25日 7; 升级记录: 8; 9; 10;****************************************************************************************************************************************** 11; @attention 12; 13; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION 14; REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE 15; FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT 16; OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN- 17; -ECTION WITH THEIR PRODUCTS. 18; 19; COPYRIGHT 2012 Synwit Technology 20;****************************************************************************************************************************************** 21 22; Amount of memory (in bytes) allocated for Stack 23; Tailor this value to your application needs 24; <h> Stack Configuration 25; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> 26; </h> 27 28Stack_Size EQU 0x00001000 29 30 AREA STACK, NOINIT, READWRITE, ALIGN=3 31Stack_Mem SPACE Stack_Size 32__initial_sp 33 34 35; <h> Heap Configuration 36; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> 37; </h> 38 39Heap_Size EQU 0x00000000 40 41 AREA HEAP, NOINIT, READWRITE, ALIGN=3 42__heap_base 43Heap_Mem SPACE Heap_Size 44__heap_limit 45 46 PRESERVE8 47 THUMB 48 49 50; Vector Table Mapped to Address 0 at Reset 51 AREA RESET, DATA, READONLY 52 EXPORT __Vectors 53 EXPORT __Vectors_End 54 EXPORT __Vectors_Size 55 56__Vectors DCD __initial_sp ; Top of Stack 57 DCD Reset_Handler ; Reset Handler 58 DCD NMI_Handler ; NMI Handler 59 DCD HardFault_Handler ; Hard Fault Handler 60 DCD MemManage_Handler ; MPU Fault Handler 61 DCD BusFault_Handler ; Bus Fault Handler 62 DCD UsageFault_Handler ; Usage Fault Handler 63 DCD 0 ; Reserved 64 DCD 0 ; Reserved 65 DCD 0 ; Reserved 66 DCD 0 ; Reserved 67 DCD SVC_Handler ; SVCall Handler 68 DCD DebugMon_Handler ; Debug Monitor Handler 69 DCD 0 ; Reserved 70 DCD PendSV_Handler ; PendSV Handler 71 DCD SysTick_Handler ; SysTick Handler 72 73 ; External Interrupts 74 DCD GPIOA0_Handler 75 DCD GPIOA1_Handler 76 DCD GPIOA2_Handler 77 DCD GPIOA3_Handler 78 DCD GPIOA4_Handler 79 DCD GPIOA5_Handler 80 DCD GPIOA6_Handler 81 DCD GPIOA7_Handler 82 DCD GPIOB0_Handler 83 DCD GPIOB1_Handler 84 DCD GPIOB2_Handler 85 DCD GPIOB3_Handler 86 DCD GPIOB4_Handler 87 DCD GPIOB5_Handler 88 DCD GPIOB6_Handler 89 DCD GPIOB7_Handler 90 DCD GPIOC0_Handler 91 DCD GPIOC1_Handler 92 DCD GPIOC2_Handler 93 DCD GPIOC3_Handler 94 DCD GPIOC4_Handler 95 DCD GPIOC5_Handler 96 DCD GPIOC6_Handler 97 DCD GPIOC7_Handler 98 DCD GPIOM0_Handler 99 DCD GPIOM1_Handler 100 DCD GPIOM2_Handler 101 DCD GPIOM3_Handler 102 DCD GPIOM4_Handler 103 DCD GPIOM5_Handler 104 DCD GPIOM6_Handler 105 DCD GPIOM7_Handler 106 DCD DMA_Handler 107 DCD LCD_Handler 108 DCD NORFLC_Handler 109 DCD CAN_Handler 110 DCD PULSE_Handler 111 DCD WDT_Handler 112 DCD PWM_Handler 113 DCD UART0_Handler 114 DCD UART1_Handler 115 DCD UART2_Handler 116 DCD UART3_Handler 117 DCD 0 118 DCD I2C0_Handler 119 DCD I2C1_Handler 120 DCD SPI0_Handler 121 DCD ADC0_Handler 122 DCD RTC_Handler 123 DCD BOD_Handler 124 DCD SDIO_Handler 125 DCD GPIOA_Handler 126 DCD GPIOB_Handler 127 DCD GPIOC_Handler 128 DCD GPIOM_Handler 129 DCD GPION_Handler 130 DCD GPIOP_Handler 131 DCD ADC1_Handler 132 DCD FPU_Handler 133 DCD SPI1_Handler 134 DCD TIMR0_Handler 135 DCD TIMR1_Handler 136 DCD TIMR2_Handler 137 DCD TIMR3_Handler 138 DCD TIMR4_Handler 139 DCD TIMR5_Handler 140 141__Vectors_End 142 143__Vectors_Size EQU __Vectors_End - __Vectors 144 145 146 147 AREA |.text|, CODE, READONLY 148 149 150Reset_Handler PROC 151 EXPORT Reset_Handler [WEAK] 152 IMPORT __main 153 LDR R0, =__main 154 BX R0 155 ENDP 156 157; Dummy Exception Handlers (infinite loops which can be modified) 158 159NMI_Handler PROC 160 EXPORT NMI_Handler [WEAK] 161 B . 162 ENDP 163 164HardFault_Handler PROC 165 EXPORT HardFault_Handler [WEAK] 166 B . 167 ENDP 168 169MemManage_Handler PROC 170 EXPORT MemManage_Handler [WEAK] 171 B . 172 ENDP 173 174BusFault_Handler PROC 175 EXPORT BusFault_Handler [WEAK] 176 B . 177 ENDP 178 179UsageFault_Handler PROC 180 EXPORT UsageFault_Handler [WEAK] 181 B . 182 ENDP 183 184SVC_Handler PROC 185 EXPORT SVC_Handler [WEAK] 186 B . 187 ENDP 188 189DebugMon_Handler PROC 190 EXPORT DebugMon_Handler [WEAK] 191 B . 192 ENDP 193 194PendSV_Handler PROC 195 EXPORT PendSV_Handler [WEAK] 196 B . 197 ENDP 198 199SysTick_Handler PROC 200 EXPORT SysTick_Handler [WEAK] 201 B . 202 ENDP 203 204GPIOA0_Handler PROC 205 EXPORT GPIOA0_Handler [WEAK] 206 B . 207 ENDP 208 209GPIOA1_Handler PROC 210 EXPORT GPIOA1_Handler [WEAK] 211 B . 212 ENDP 213 214GPIOA2_Handler PROC 215 EXPORT GPIOA2_Handler [WEAK] 216 B . 217 ENDP 218 219GPIOA3_Handler PROC 220 EXPORT GPIOA3_Handler [WEAK] 221 B . 222 ENDP 223 224GPIOA4_Handler PROC 225 EXPORT GPIOA4_Handler [WEAK] 226 B . 227 ENDP 228 229GPIOA5_Handler PROC 230 EXPORT GPIOA5_Handler [WEAK] 231 B . 232 ENDP 233 234GPIOA6_Handler PROC 235 EXPORT GPIOA6_Handler [WEAK] 236 B . 237 ENDP 238 239GPIOA7_Handler PROC 240 EXPORT GPIOA7_Handler [WEAK] 241 B . 242 ENDP 243 244GPIOB0_Handler PROC 245 EXPORT GPIOB0_Handler [WEAK] 246 B . 247 ENDP 248 249GPIOB1_Handler PROC 250 EXPORT GPIOB1_Handler [WEAK] 251 B . 252 ENDP 253 254GPIOB2_Handler PROC 255 EXPORT GPIOB2_Handler [WEAK] 256 B . 257 ENDP 258 259GPIOB3_Handler PROC 260 EXPORT GPIOB3_Handler [WEAK] 261 B . 262 ENDP 263 264GPIOB4_Handler PROC 265 EXPORT GPIOB4_Handler [WEAK] 266 B . 267 ENDP 268 269GPIOB5_Handler PROC 270 EXPORT GPIOB5_Handler [WEAK] 271 B . 272 ENDP 273 274GPIOB6_Handler PROC 275 EXPORT GPIOB6_Handler [WEAK] 276 B . 277 ENDP 278 279GPIOB7_Handler PROC 280 EXPORT GPIOB7_Handler [WEAK] 281 B . 282 ENDP 283 284GPIOC0_Handler PROC 285 EXPORT GPIOC0_Handler [WEAK] 286 B . 287 ENDP 288 289GPIOC1_Handler PROC 290 EXPORT GPIOC1_Handler [WEAK] 291 B . 292 ENDP 293 294GPIOC2_Handler PROC 295 EXPORT GPIOC2_Handler [WEAK] 296 B . 297 ENDP 298 299GPIOC3_Handler PROC 300 EXPORT GPIOC3_Handler [WEAK] 301 B . 302 ENDP 303 304GPIOC4_Handler PROC 305 EXPORT GPIOC4_Handler [WEAK] 306 B . 307 ENDP 308 309GPIOC5_Handler PROC 310 EXPORT GPIOC5_Handler [WEAK] 311 B . 312 ENDP 313 314GPIOC6_Handler PROC 315 EXPORT GPIOC6_Handler [WEAK] 316 B . 317 ENDP 318 319GPIOC7_Handler PROC 320 EXPORT GPIOC7_Handler [WEAK] 321 B . 322 ENDP 323 324GPIOM0_Handler PROC 325 EXPORT GPIOM0_Handler [WEAK] 326 B . 327 ENDP 328 329GPIOM1_Handler PROC 330 EXPORT GPIOM1_Handler [WEAK] 331 B . 332 ENDP 333 334GPIOM2_Handler PROC 335 EXPORT GPIOM2_Handler [WEAK] 336 B . 337 ENDP 338 339GPIOM3_Handler PROC 340 EXPORT GPIOM3_Handler [WEAK] 341 B . 342 ENDP 343 344GPIOM4_Handler PROC 345 EXPORT GPIOM4_Handler [WEAK] 346 B . 347 ENDP 348 349GPIOM5_Handler PROC 350 EXPORT GPIOM5_Handler [WEAK] 351 B . 352 ENDP 353 354GPIOM6_Handler PROC 355 EXPORT GPIOM6_Handler [WEAK] 356 B . 357 ENDP 358 359GPIOM7_Handler PROC 360 EXPORT GPIOM7_Handler [WEAK] 361 B . 362 ENDP 363 364DMA_Handler PROC 365 EXPORT DMA_Handler [WEAK] 366 B . 367 ENDP 368 369LCD_Handler PROC 370 EXPORT LCD_Handler [WEAK] 371 B . 372 ENDP 373 374NORFLC_Handler PROC 375 EXPORT NORFLC_Handler [WEAK] 376 B . 377 ENDP 378 379CAN_Handler PROC 380 EXPORT CAN_Handler [WEAK] 381 B . 382 ENDP 383 384PULSE_Handler PROC 385 EXPORT PULSE_Handler [WEAK] 386 B . 387 ENDP 388 389WDT_Handler PROC 390 EXPORT WDT_Handler [WEAK] 391 B . 392 ENDP 393 394PWM_Handler PROC 395 EXPORT PWM_Handler [WEAK] 396 B . 397 ENDP 398 399UART0_Handler PROC 400 EXPORT UART0_Handler [WEAK] 401 B . 402 ENDP 403 404UART1_Handler PROC 405 EXPORT UART1_Handler [WEAK] 406 B . 407 ENDP 408 409UART2_Handler PROC 410 EXPORT UART2_Handler [WEAK] 411 B . 412 ENDP 413 414UART3_Handler PROC 415 EXPORT UART3_Handler [WEAK] 416 B . 417 ENDP 418 419I2C0_Handler PROC 420 EXPORT I2C0_Handler [WEAK] 421 B . 422 ENDP 423 424I2C1_Handler PROC 425 EXPORT I2C1_Handler [WEAK] 426 B . 427 ENDP 428 429SPI0_Handler PROC 430 EXPORT SPI0_Handler [WEAK] 431 B . 432 ENDP 433 434ADC0_Handler PROC 435 EXPORT ADC0_Handler [WEAK] 436 B . 437 ENDP 438 439RTC_Handler PROC 440 EXPORT RTC_Handler [WEAK] 441 B . 442 ENDP 443 444BOD_Handler PROC 445 EXPORT BOD_Handler [WEAK] 446 B . 447 ENDP 448 449SDIO_Handler PROC 450 EXPORT SDIO_Handler [WEAK] 451 B . 452 ENDP 453 454GPIOA_Handler PROC 455 EXPORT GPIOA_Handler [WEAK] 456 B . 457 ENDP 458 459GPIOB_Handler PROC 460 EXPORT GPIOB_Handler [WEAK] 461 B . 462 ENDP 463 464GPIOC_Handler PROC 465 EXPORT GPIOC_Handler [WEAK] 466 B . 467 ENDP 468 469GPIOM_Handler PROC 470 EXPORT GPIOM_Handler [WEAK] 471 B . 472 ENDP 473 474GPION_Handler PROC 475 EXPORT GPION_Handler [WEAK] 476 B . 477 ENDP 478 479GPIOP_Handler PROC 480 EXPORT GPIOP_Handler [WEAK] 481 B . 482 ENDP 483 484ADC1_Handler PROC 485 EXPORT ADC1_Handler [WEAK] 486 B . 487 ENDP 488 489FPU_Handler PROC 490 EXPORT FPU_Handler [WEAK] 491 B . 492 ENDP 493 494SPI1_Handler PROC 495 EXPORT SPI1_Handler [WEAK] 496 B . 497 ENDP 498 499TIMR0_Handler PROC 500 EXPORT TIMR0_Handler [WEAK] 501 B . 502 ENDP 503 504TIMR1_Handler PROC 505 EXPORT TIMR1_Handler [WEAK] 506 B . 507 ENDP 508 509TIMR2_Handler PROC 510 EXPORT TIMR2_Handler [WEAK] 511 B . 512 ENDP 513 514TIMR3_Handler PROC 515 EXPORT TIMR3_Handler [WEAK] 516 B . 517 ENDP 518 519TIMR4_Handler PROC 520 EXPORT TIMR4_Handler [WEAK] 521 B . 522 ENDP 523 524TIMR5_Handler PROC 525 EXPORT TIMR5_Handler [WEAK] 526 B . 527 ENDP 528 529 ALIGN 530 531 532;******************************************************************************* 533; User Stack and Heap initialization 534;******************************************************************************* 535 IF :DEF:__MICROLIB 536 537 EXPORT __initial_sp 538 EXPORT __heap_base 539 EXPORT __heap_limit 540 541 ELSE 542 543 IMPORT __use_two_region_memory 544 EXPORT __user_initial_stackheap 545 546__user_initial_stackheap 547 548 LDR R0, = Heap_Mem 549 LDR R1, =(Stack_Mem + Stack_Size) 550 LDR R2, = (Heap_Mem + Heap_Size) 551 LDR R3, = Stack_Mem 552 BX LR 553 554 ALIGN 555 556 ENDIF 557 558 END 559