WXK
2024-09-18 05e2e954bd127de378a9d1dfbb0ed95d725aad63
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
 
;/******************************************************************************
; * @file     startup_PANSeries.s
; * @version  V1.00
; * $Revision: 3 $
; * $Date: 20/09/23 12:13 $
; * @brief    CMSIS ARM Cortex-M0 Core Device Startup File
; *
; * @note
; * Copyright (C) 2020 Panchip Technology Corp. All rights reserved.
;*****************************************************************************/
 
Stack_Size      EQU     0x00000800 ;2k ram
 
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp
 
Heap_Size       EQU     0x00000000
 
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
 
                PRESERVE8
                THUMB
 
 
; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size
 
 
__Vectors       DCD     __initial_sp               ; -16, Top of Stack
                DCD     Reset_Handler              ; -15, Reset Handler
                DCD     NMI_Handler                ; -14, NMI Handler
                DCD     HardFault_Handler          ; -13, Hard Fault Handler
                DCD     0                          ; -12, Reserved
                DCD     0                          ; -11, Reserved
                DCD     0                          ; -10, Reserved
                DCD     0                          ; -9,  Reserved
                DCD     0                          ; -8,  Reserved
                DCD     0                          ; -7,  Reserved
                DCD     0                          ; -6,  Reserved
                DCD     SVC_Handler                ; -5,  SVCall Handler
                DCD     0                          ; -4,  Reserved
                DCD     0                          ; -3,  Reserved
                DCD     PendSV_Handler             ; -2,  PendSV Handler
                DCD     SysTick_Handler            ; -1,  SysTick Handler
 
                ; External Interrupts
                DCD     I2C0_IRQHandler            ; 0,
                DCD     SPI0_IRQHandler            ; 1,
                DCD     0                          ; 2,
                DCD     UART0_IRQHandler           ; 3,
                DCD     PWM_IRQHandler            ; 4,
                DCD     ADC_IRQHandler             ; 5,
                DCD     WDT_IRQHandler             ; 6,
                DCD     WWDT_IRQHandler            ; 7,
                DCD     TMR0_IRQHandler            ; 8,
                DCD     0                          ; 9,
                DCD     SPI1_IRQHandler            ; 10,
                DCD     LL_IRQHandler              ; 11,
                DCD     UART1_IRQHandler           ; 12,
                DCD     TMR1_IRQHandler            ; 13,
                DCD     TMR2_IRQHandler            ; 14,
                DCD     GPIO0_IRQHandler           ; 15,
                DCD     GPIO1_IRQHandler           ; 16,
                DCD     GPIO2_IRQHandler           ; 17,
                DCD     GPIO3_IRQHandler           ; 18,
                DCD     0                          ; 19,
                DCD     0                          ; 20,
                DCD     USBDMA_IRQHandler          ; 21,
                DCD     USB_IRQHandler             ; 22,
                DCD     TRIM_IRQHandler            ; 23,
                DCD     0                          ; 24,
                DCD     0                          ; 25,
                DCD     0                          ; 26,
                DCD     DMA_IRQHandler             ; 27,
                DCD     BOD_IRQHandler             ; 28,
                DCD     SLPTMR_IRQHandler          ; 29,
                DCD     LP_IRQHandler              ; 30,
                DCD     0                          ; 31,
 
__Vectors_End
 
__Vectors_Size  EQU  __Vectors_End - __Vectors
 
                AREA    |.text|, CODE, READONLY
 
; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
                 IMPORT  SystemInit
                 IMPORT  __main
 
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP
 
; Dummy Exception Handlers (infinite loops which can be modified)
 
NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP
 
Default_Handler PROC
                EXPORT  I2C0_IRQHandler            [WEAK]
                EXPORT  SPI0_IRQHandler            [WEAK]
                EXPORT  UART0_IRQHandler           [WEAK]
                EXPORT  PWM_IRQHandler            [WEAK]
                EXPORT  ADC_IRQHandler             [WEAK]
                EXPORT  WDT_IRQHandler             [WEAK]
                EXPORT  WWDT_IRQHandler            [WEAK]
                EXPORT  TMR0_IRQHandler            [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  LL_IRQHandler              [WEAK]
                EXPORT  UART1_IRQHandler           [WEAK]
                EXPORT  TMR1_IRQHandler            [WEAK]
                EXPORT  TMR2_IRQHandler            [WEAK]
                EXPORT  GPIO0_IRQHandler           [WEAK]
                EXPORT  GPIO1_IRQHandler           [WEAK]
                EXPORT  GPIO2_IRQHandler           [WEAK]
                EXPORT  GPIO3_IRQHandler           [WEAK]
                EXPORT  USBDMA_IRQHandler          [WEAK]
                EXPORT  USB_IRQHandler             [WEAK]
                EXPORT  TRIM_IRQHandler            [WEAK]
                EXPORT  DMA_IRQHandler             [WEAK]
                EXPORT  BOD_IRQHandler             [WEAK]
                EXPORT  SLPTMR_IRQHandler          [WEAK]
                EXPORT  LP_IRQHandler              [WEAK]
 
 
I2C0_IRQHandler            ; 0,
SPI0_IRQHandler            ; 1,
UART0_IRQHandler           ; 3,
PWM_IRQHandler            ; 4,
ADC_IRQHandler             ; 5,
WDT_IRQHandler             ; 6,
WWDT_IRQHandler            ; 7,
TMR0_IRQHandler            ; 8,
 
SPI1_IRQHandler            ; 10,
LL_IRQHandler              ; 11,
UART1_IRQHandler           ; 12,
TMR1_IRQHandler            ; 13,
TMR2_IRQHandler            ; 14,
GPIO0_IRQHandler           ; 15,
GPIO1_IRQHandler           ; 16,
GPIO2_IRQHandler           ; 17,
GPIO3_IRQHandler           ; 18,
USBDMA_IRQHandler          ; 21,
USB_IRQHandler             ; 22,
TRIM_IRQHandler            ; 23,
DMA_IRQHandler             ; 27,
BOD_IRQHandler             ; 28,
SLPTMR_IRQHandler          ; 29,
LP_IRQHandler              ; 30,
 
                B       .
                ENDP
 
                ALIGN
 
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB
 
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
 
                 ELSE
 
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
 
__user_initial_stackheap
 
                 LDR     R0, = Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR
 
                 ALIGN
 
                 ENDIF
 
                 END
 
;***************** (C) COPYRIGHT Panchip Microelectronics *****END OF FILE*****