mips-rt 0.3.7

Minimal runtime for MIPS MCU cores
Documentation
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
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
/*
 * Exception table for PIC32
 * generated by gen_isr_table.py
 */

#include <regdef.h>
#include <cp0defs.h>
.set noreorder
.set nomips16

.section .text.default_isr, "ax"
.ent _default_isr_fn
.global _default_isr_fn
_default_isr_fn:
        jr      ra
        nop
.end _default_isr_fn

.weak _general_exception_handler
_general_exception_handler = _default_isr_fn

.weak _nmi_handler
_nmi_handler = _default_isr_fn

# General Exception
.section .gen_handler, "ax"
.ent _gen_exception
.global _gen_exception
_gen_exception:
        la      k0,_general_exception_handler
        j       _exception_context
        nop
.end _gen_exception

# vector 0
.section .vector_0, "ax"
.ent _vector_0
_vector_0:
        la  k0,_vector_0_fn
        j   _vector_0_context
        nop
.end _vector_0

# vector 1
.section .vector_1, "ax"
.ent _vector_1
_vector_1:
        la  k0,_vector_1_fn
        j   _vector_1_context
        nop
.end _vector_1

# vector 2
.section .vector_2, "ax"
.ent _vector_2
_vector_2:
        la  k0,_vector_2_fn
        j   _vector_2_context
        nop
.end _vector_2

# vector 3
.section .vector_3, "ax"
.ent _vector_3
_vector_3:
        la  k0,_vector_3_fn
        j   _vector_3_context
        nop
.end _vector_3

# vector 4
.section .vector_4, "ax"
.ent _vector_4
_vector_4:
        la  k0,_vector_4_fn
        j   _vector_4_context
        nop
.end _vector_4

# vector 5
.section .vector_5, "ax"
.ent _vector_5
_vector_5:
        la  k0,_vector_5_fn
        j   _vector_5_context
        nop
.end _vector_5

# vector 6
.section .vector_6, "ax"
.ent _vector_6
_vector_6:
        la  k0,_vector_6_fn
        j   _vector_6_context
        nop
.end _vector_6

# vector 7
.section .vector_7, "ax"
.ent _vector_7
_vector_7:
        la  k0,_vector_7_fn
        j   _vector_7_context
        nop
.end _vector_7

# vector 8
.section .vector_8, "ax"
.ent _vector_8
_vector_8:
        la  k0,_vector_8_fn
        j   _vector_8_context
        nop
.end _vector_8

# vector 9
.section .vector_9, "ax"
.ent _vector_9
_vector_9:
        la  k0,_vector_9_fn
        j   _vector_9_context
        nop
.end _vector_9

# vector 10
.section .vector_10, "ax"
.ent _vector_10
_vector_10:
        la  k0,_vector_10_fn
        j   _vector_10_context
        nop
.end _vector_10

# vector 11
.section .vector_11, "ax"
.ent _vector_11
_vector_11:
        la  k0,_vector_11_fn
        j   _vector_11_context
        nop
.end _vector_11

# vector 12
.section .vector_12, "ax"
.ent _vector_12
_vector_12:
        la  k0,_vector_12_fn
        j   _vector_12_context
        nop
.end _vector_12

# vector 13
.section .vector_13, "ax"
.ent _vector_13
_vector_13:
        la  k0,_vector_13_fn
        j   _vector_13_context
        nop
.end _vector_13

# vector 14
.section .vector_14, "ax"
.ent _vector_14
_vector_14:
        la  k0,_vector_14_fn
        j   _vector_14_context
        nop
.end _vector_14

# vector 15
.section .vector_15, "ax"
.ent _vector_15
_vector_15:
        la  k0,_vector_15_fn
        j   _vector_15_context
        nop
.end _vector_15

# vector 16
.section .vector_16, "ax"
.ent _vector_16
_vector_16:
        la  k0,_vector_16_fn
        j   _vector_16_context
        nop
.end _vector_16

# vector 17
.section .vector_17, "ax"
.ent _vector_17
_vector_17:
        la  k0,_vector_17_fn
        j   _vector_17_context
        nop
.end _vector_17

# vector 18
.section .vector_18, "ax"
.ent _vector_18
_vector_18:
        la  k0,_vector_18_fn
        j   _vector_18_context
        nop
.end _vector_18

# vector 19
.section .vector_19, "ax"
.ent _vector_19
_vector_19:
        la  k0,_vector_19_fn
        j   _vector_19_context
        nop
.end _vector_19

# vector 20
.section .vector_20, "ax"
.ent _vector_20
_vector_20:
        la  k0,_vector_20_fn
        j   _vector_20_context
        nop
.end _vector_20

# vector 21
.section .vector_21, "ax"
.ent _vector_21
_vector_21:
        la  k0,_vector_21_fn
        j   _vector_21_context
        nop
.end _vector_21

# vector 22
.section .vector_22, "ax"
.ent _vector_22
_vector_22:
        la  k0,_vector_22_fn
        j   _vector_22_context
        nop
.end _vector_22

# vector 23
.section .vector_23, "ax"
.ent _vector_23
_vector_23:
        la  k0,_vector_23_fn
        j   _vector_23_context
        nop
.end _vector_23

# vector 24
.section .vector_24, "ax"
.ent _vector_24
_vector_24:
        la  k0,_vector_24_fn
        j   _vector_24_context
        nop
.end _vector_24

# vector 25
.section .vector_25, "ax"
.ent _vector_25
_vector_25:
        la  k0,_vector_25_fn
        j   _vector_25_context
        nop
.end _vector_25

# vector 26
.section .vector_26, "ax"
.ent _vector_26
_vector_26:
        la  k0,_vector_26_fn
        j   _vector_26_context
        nop
.end _vector_26

# vector 27
.section .vector_27, "ax"
.ent _vector_27
_vector_27:
        la  k0,_vector_27_fn
        j   _vector_27_context
        nop
.end _vector_27

# vector 28
.section .vector_28, "ax"
.ent _vector_28
_vector_28:
        la  k0,_vector_28_fn
        j   _vector_28_context
        nop
.end _vector_28

# vector 29
.section .vector_29, "ax"
.ent _vector_29
_vector_29:
        la  k0,_vector_29_fn
        j   _vector_29_context
        nop
.end _vector_29

# vector 30
.section .vector_30, "ax"
.ent _vector_30
_vector_30:
        la  k0,_vector_30_fn
        j   _vector_30_context
        nop
.end _vector_30

# vector 31
.section .vector_31, "ax"
.ent _vector_31
_vector_31:
        la  k0,_vector_31_fn
        j   _vector_31_context
        nop
.end _vector_31

# vector 32
.section .vector_32, "ax"
.ent _vector_32
_vector_32:
        la  k0,_vector_32_fn
        j   _vector_32_context
        nop
.end _vector_32

# vector 33
.section .vector_33, "ax"
.ent _vector_33
_vector_33:
        la  k0,_vector_33_fn
        j   _vector_33_context
        nop
.end _vector_33

# vector 34
.section .vector_34, "ax"
.ent _vector_34
_vector_34:
        la  k0,_vector_34_fn
        j   _vector_34_context
        nop
.end _vector_34

# vector 35
.section .vector_35, "ax"
.ent _vector_35
_vector_35:
        la  k0,_vector_35_fn
        j   _vector_35_context
        nop
.end _vector_35

# vector 36
.section .vector_36, "ax"
.ent _vector_36
_vector_36:
        la  k0,_vector_36_fn
        j   _vector_36_context
        nop
.end _vector_36

# vector 37
.section .vector_37, "ax"
.ent _vector_37
_vector_37:
        la  k0,_vector_37_fn
        j   _vector_37_context
        nop
.end _vector_37

# vector 38
.section .vector_38, "ax"
.ent _vector_38
_vector_38:
        la  k0,_vector_38_fn
        j   _vector_38_context
        nop
.end _vector_38

# vector 39
.section .vector_39, "ax"
.ent _vector_39
_vector_39:
        la  k0,_vector_39_fn
        j   _vector_39_context
        nop
.end _vector_39

# vector 40
.section .vector_40, "ax"
.ent _vector_40
_vector_40:
        la  k0,_vector_40_fn
        j   _vector_40_context
        nop
.end _vector_40

# vector 41
.section .vector_41, "ax"
.ent _vector_41
_vector_41:
        la  k0,_vector_41_fn
        j   _vector_41_context
        nop
.end _vector_41

# vector 42
.section .vector_42, "ax"
.ent _vector_42
_vector_42:
        la  k0,_vector_42_fn
        j   _vector_42_context
        nop
.end _vector_42

# vector 43
.section .vector_43, "ax"
.ent _vector_43
_vector_43:
        la  k0,_vector_43_fn
        j   _vector_43_context
        nop
.end _vector_43

# vector 44
.section .vector_44, "ax"
.ent _vector_44
_vector_44:
        la  k0,_vector_44_fn
        j   _vector_44_context
        nop
.end _vector_44

# vector 45
.section .vector_45, "ax"
.ent _vector_45
_vector_45:
        la  k0,_vector_45_fn
        j   _vector_45_context
        nop
.end _vector_45

# vector 46
.section .vector_46, "ax"
.ent _vector_46
_vector_46:
        la  k0,_vector_46_fn
        j   _vector_46_context
        nop
.end _vector_46

# vector 47
.section .vector_47, "ax"
.ent _vector_47
_vector_47:
        la  k0,_vector_47_fn
        j   _vector_47_context
        nop
.end _vector_47

# vector 48
.section .vector_48, "ax"
.ent _vector_48
_vector_48:
        la  k0,_vector_48_fn
        j   _vector_48_context
        nop
.end _vector_48

# vector 49
.section .vector_49, "ax"
.ent _vector_49
_vector_49:
        la  k0,_vector_49_fn
        j   _vector_49_context
        nop
.end _vector_49

# vector 50
.section .vector_50, "ax"
.ent _vector_50
_vector_50:
        la  k0,_vector_50_fn
        j   _vector_50_context
        nop
.end _vector_50

# vector 51
.section .vector_51, "ax"
.ent _vector_51
_vector_51:
        la  k0,_vector_51_fn
        j   _vector_51_context
        nop
.end _vector_51

# vector 52
.section .vector_52, "ax"
.ent _vector_52
_vector_52:
        la  k0,_vector_52_fn
        j   _vector_52_context
        nop
.end _vector_52

# vector 53
.section .vector_53, "ax"
.ent _vector_53
_vector_53:
        la  k0,_vector_53_fn
        j   _vector_53_context
        nop
.end _vector_53

# vector 54
.section .vector_54, "ax"
.ent _vector_54
_vector_54:
        la  k0,_vector_54_fn
        j   _vector_54_context
        nop
.end _vector_54

# vector 55
.section .vector_55, "ax"
.ent _vector_55
_vector_55:
        la  k0,_vector_55_fn
        j   _vector_55_context
        nop
.end _vector_55

# vector 56
.section .vector_56, "ax"
.ent _vector_56
_vector_56:
        la  k0,_vector_56_fn
        j   _vector_56_context
        nop
.end _vector_56

# vector 57
.section .vector_57, "ax"
.ent _vector_57
_vector_57:
        la  k0,_vector_57_fn
        j   _vector_57_context
        nop
.end _vector_57

# vector 58
.section .vector_58, "ax"
.ent _vector_58
_vector_58:
        la  k0,_vector_58_fn
        j   _vector_58_context
        nop
.end _vector_58

# vector 59
.section .vector_59, "ax"
.ent _vector_59
_vector_59:
        la  k0,_vector_59_fn
        j   _vector_59_context
        nop
.end _vector_59

# vector 60
.section .vector_60, "ax"
.ent _vector_60
_vector_60:
        la  k0,_vector_60_fn
        j   _vector_60_context
        nop
.end _vector_60

# vector 61
.section .vector_61, "ax"
.ent _vector_61
_vector_61:
        la  k0,_vector_61_fn
        j   _vector_61_context
        nop
.end _vector_61

# vector 62
.section .vector_62, "ax"
.ent _vector_62
_vector_62:
        la  k0,_vector_62_fn
        j   _vector_62_context
        nop
.end _vector_62

# vector 63
.section .vector_63, "ax"
.ent _vector_63
_vector_63:
        la  k0,_vector_63_fn
        j   _vector_63_context
        nop
.end _vector_63