1;******************************************************************************************************************************************
2; 文件名称:	startup_SWM320.s
3; 功能说明:	SWM2400单片机的启动文件
4; 技术支持:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
5; 注意事项:
6; 版本日期: V1.1.0		201710257; 升级记录:
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