summaryrefslogtreecommitdiff
path: root/bsp/yichip/yc3121-pos/libraries/startup/flash_start.s
blob: 6c354c6f399e10aa3cc4d2f9be447bd89cc40eb5 (plain)
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
			AREA    |.flash_start|, CODE, READONLY  ,ALIGN=4

Reset_Handler PROC
			EXPORT  Reset_Handler
			IMPORT  __main
			LDR 	R0, =__main
			BX 		R0
			ENDP	


hard_fault_handler PROC
			EXPORT  hard_fault_handler 
            IMPORT HardFault_Handler
			ldr r0,=HardFault_Handler       
			bx r0
			nop
			ENDP
		
svc_handler PROC
			EXPORT  svc_handler         
			ldr r0,=SVC_IRQHandler
			bx r0
			nop
			ENDP

pendsv_handler PROC
			EXPORT  pendsv_handler
            IMPORT  PendSV_Handler
			ldr r0,=PendSV_Handler
			bx r0
			nop
			ENDP
		
systick 	PROC
			EXPORT systick 
            IMPORT SysTick_Handler
			ldr r0,=SysTick_Handler
			bx r0
			nop
			ENDP
		
irq0 		PROC
			EXPORT irq0
			movs r0,#4*0
			b isr
			ENDP
				
irq1 		PROC
			EXPORT irq1
			movs r0,#4*1
			b isr
			ENDP
				
irq2 		PROC
			EXPORT irq2
			movs r0,#4*2
			b isr
			ENDP
				
irq3 		PROC
			EXPORT irq3
			movs r0,#4*3
			b isr
			ENDP

irq4 		PROC
			EXPORT irq4
			movs r0,#4*4
			b isr
			ENDP
				
irq5 		PROC
			EXPORT irq5
			movs r0,#4*5
			b isr
			ENDP
				
irq6 		PROC
			EXPORT irq6
			movs r0,#4*6
			b isr
			ENDP
				
irq7 		PROC
			EXPORT irq7
			movs r0,#4*7
			b isr
			ENDP

irq8 		PROC
			EXPORT irq8
			movs r0,#4*8
			b isr
			ENDP
				
irq9 		PROC
			EXPORT irq9
			movs r0,#4*9
			b isr
			ENDP
				
irq10 		PROC
			EXPORT irq10
			movs r0,#4*10
			b isr
			ENDP
				
irq11 		PROC
			EXPORT irq11
			movs r0,#4*11
			b isr
			ENDP

irq12 		PROC
			EXPORT irq12
			movs r0,#4*12
			b isr
			ENDP
				
irq13 		PROC
			EXPORT irq13
			movs r0,#4*13
			b isr
			ENDP
				
irq14 		PROC
			EXPORT irq14
			movs r0,#4*14
			b isr
			ENDP
				
irq15 		PROC
			EXPORT irq15
			movs r0,#4*15
			b isr
			ENDP
				
irq16 		PROC
			EXPORT irq16
			movs r0,#4*16
			b isr
			ENDP
				
irq17 		PROC
			EXPORT irq17
			movs r0,#4*17
			b isr
			ENDP
				
irq18 		PROC
			EXPORT irq18
			movs r0,#4*18
			b isr
			ENDP
				
irq19 		PROC
			EXPORT irq19
			movs r0,#4*19
			b isr
			ENDP

irq20 		PROC
			EXPORT irq20
			movs r0,#4*20
			b isr
			ENDP
				
irq21 		PROC
			EXPORT irq21
			movs r0,#4*21
			b isr
			ENDP
				
irq22 		PROC
			EXPORT irq22
			movs r0,#4*22
			b isr
			ENDP
				
irq23 		PROC
			EXPORT irq23
			movs r0,#4*23
			b isr
			ENDP

irq24 		PROC
			EXPORT irq24
			movs r0,#4*24
			b isr
			ENDP
				
irq25 		PROC
			EXPORT irq25
			movs r0,#4*25
			b isr
			ENDP
				
irq26 		PROC
			EXPORT irq26
			movs r0,#4*26
			b isr
			ENDP
				
irq27 		PROC
			EXPORT irq27
			movs r0,#4*27
			b isr
			ENDP

irq28 		PROC
			EXPORT irq28
			movs r0,#4*28
			b isr
			ENDP
				
irq29 		PROC
			EXPORT irq29
			movs r0,#4*29
			b isr
			ENDP
				
irq30		PROC
			EXPORT irq30
			movs r0,#4*30
			b isr
			ENDP
				
irq31 		PROC
			EXPORT irq31
			movs r0,#4*31
			b isr
			ENDP				
				

isr    		PROC
			ldr r1,=isr_table
			ldr r0,[r0, r1]
			bx r0
			ENDP
					
				ALIGN	
NMI_IRQHandler  		PROC
						EXPORT      NMI_IRQHandler				[WEAK]
						B	.
						ENDP

HARD_FAULT_IRQHandler   PROC
						EXPORT      HARD_FAULT_IRQHandler		[WEAK]
						B	.
						ENDP

SVC_IRQHandler   		PROC
						EXPORT      SVC_IRQHandler				[WEAK]
						B	.
						ENDP

PENDSV_IRQHandler   	PROC
						EXPORT      PENDSV_IRQHandler			[WEAK]
						B	.
						ENDP
							
SYSTICK_IRQHandler   	PROC
						EXPORT      SYSTICK_IRQHandler			[WEAK]
						B	.
						ENDP
					
EXTI0_IRQHandler   		PROC
						EXPORT      EXTI0_IRQHandler			[WEAK]
						B	.
						ENDP
							
EXTI1_IRQHandler   		PROC
						EXPORT      EXTI1_IRQHandler			[WEAK]
						B	.
						ENDP
							
EXTI2_IRQHandler   		PROC
						EXPORT      EXTI2_IRQHandler			[WEAK]
						B	.
						ENDP
							
EXTI3_IRQHandler   		PROC
						EXPORT      EXTI3_IRQHandler			[WEAK]
						B	.
						ENDP
							
EXTI4_IRQHandler   		PROC
						EXPORT      EXTI4_IRQHandler			[WEAK]
						B	.
						ENDP
							
EXTI5_IRQHandler   		PROC
						EXPORT      EXTI5_IRQHandler			[WEAK]
						B	.
						ENDP	
					
Default_Handler PROC
; ToDo:  Add here the export definition for the device specific external interrupts handler
                EXPORT		USB_IRQHandler	 	[WEAK]
				EXPORT		IIC_IRQHandler   	[WEAK]
				EXPORT		QSPI_IRQHandler  	[WEAK]
				EXPORT		SPI0_IRQHandler  	[WEAK]
				EXPORT		SPI1_IRQHandler  	[WEAK]
				EXPORT		UART0_IRQHandler 	[WEAK]
				EXPORT		UART1_IRQHandler 	[WEAK]
				EXPORT 		MEMCP_IRQHandler 	[WEAK]				
				EXPORT		RSA_IRQHandler   	[WEAK]
				EXPORT		SCI0_IRQHandler  	[WEAK]
				EXPORT		SCI1_IRQHandler  	[WEAK]
				EXPORT		BT_IRQHandler 		[WEAK]
				EXPORT		GPIO_IRQHandler    	[WEAK]
				EXPORT		TIMER0_IRQHandler	[WEAK]
				EXPORT		TIMER1_IRQHandler	[WEAK]
				EXPORT		TIMER2_IRQHandler	[WEAK]
				EXPORT		TIMER3_IRQHandler	[WEAK]
				EXPORT		TIMER4_IRQHandler	[WEAK]
				EXPORT		TIMER5_IRQHandler	[WEAK]
				EXPORT		TIMER6_IRQHandler	[WEAK]
				EXPORT		TIMER7_IRQHandler	[WEAK]
				EXPORT		TIMER8_IRQHandler 	[WEAK]
				EXPORT		SM4_IRQHandler   	[WEAK]	
				EXPORT		SEC_IRQHandler		[WEAK]	
				EXPORT		MSR_IRQHandler		[WEAK]	
				EXPORT		TRNG_IRQHandler		[WEAK]	
				EXPORT 		WDT_IRQHandler		[WEAK]

; ToDo:  Add here the names for the device specific external interrupts handler
USB_IRQHandler	 	
IIC_IRQHandler   	
QSPI_IRQHandler  	
SPI0_IRQHandler  	
SPI1_IRQHandler  	
UART0_IRQHandler 	
UART1_IRQHandler 	
MEMCP_IRQHandler 	
RSA_IRQHandler   	
SCI0_IRQHandler  	
SCI1_IRQHandler  	
BT_IRQHandler 		
GPIO_IRQHandler    	
TIMER0_IRQHandler	
TIMER1_IRQHandler	
TIMER2_IRQHandler	
TIMER3_IRQHandler	
TIMER4_IRQHandler	
TIMER5_IRQHandler	
TIMER6_IRQHandler	
TIMER7_IRQHandler	
TIMER8_IRQHandler 	
SM4_IRQHandler   	
SEC_IRQHandler		
MSR_IRQHandler		
TRNG_IRQHandler		
WDT_IRQHandler		
                B       .
                ENDP
					
					
					
			EXPORT isr_table				
isr_table	DCD     USB_IRQHandler	 
			DCD 	IIC_IRQHandler   
			DCD 	QSPI_IRQHandler  
			DCD 	SPI0_IRQHandler  
			DCD 	SPI1_IRQHandler  
			DCD 	UART0_IRQHandler 
			DCD 	UART1_IRQHandler 
			DCD 	MEMCP_IRQHandler 
			DCD 	RSA_IRQHandler   
			DCD 	SCI0_IRQHandler  
			DCD 	SCI1_IRQHandler  
			DCD 	BT_IRQHandler 
			DCD 	GPIO_IRQHandler         
			DCD 	TIMER0_IRQHandler
			DCD 	TIMER1_IRQHandler
			DCD 	TIMER2_IRQHandler
			DCD 	TIMER3_IRQHandler
			DCD 	TIMER4_IRQHandler
			DCD 	TIMER5_IRQHandler
			DCD 	TIMER6_IRQHandler
			DCD 	TIMER7_IRQHandler
			DCD 	TIMER8_IRQHandler 
			DCD 	SM4_IRQHandler   
			DCD 	SEC_IRQHandler
			DCD 	MSR_IRQHandler
			DCD 	TRNG_IRQHandler
			DCD 	WDT_IRQHandler
			END