]> git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC23XX/TOOLCHAIN_GCC_CS/vector_functions.s
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[tmk_keyboard.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC23XX / TOOLCHAIN_GCC_CS / vector_functions.s
1 # 1 "vector_functions.s"
2 # 1 "<built-in>"
3 # 1 "<command line>"
4 # 1 "vector_functions.s"
5 ;
6 ;
7 ;
8
9 # 1 "vector_defns.h" 1
10 # 6 "vector_functions.s" 2
11
12
13
14
15
16
17 .section VECFUNCS, "ax"
18 .arm
19
20
21 .weak __mbed_fiq
22 .weak __mbed_undef
23 .weak __mbed_prefetch_abort
24 .weak __mbed_data_abort
25 .weak __mbed_irq
26 .weak __mbed_swi
27 .weak __mbed_dcc_irq
28 .weak __mbed_reset
29 .global __mbed_init_realmonitor
30 .global __mbed_init
31
32 ;
33 ;
34 __mbed_fiq:
35 B __mbed_fiq
36
37 ;
38 ;
39 __mbed_undef:
40 LDR PC, =0x7fffffa0
41
42 ;
43 ;
44 __mbed_prefetch_abort:
45 LDR PC, =0x7fffffb0
46
47 ;
48 ;
49 __mbed_data_abort:
50 LDR PC, =0x7fffffc0
51
52 ;
53 ;
54 ;
55 ;
56 ;
57 ;
58 ;
59 ;
60 ;
61 __mbed_irq:
62 ;
63 MSR CPSR_c, #0x1F|0x80|0x40
64
65 ;
66 STMDB sp!, {r0-r3,r12,lr}
67
68 ;
69 MOV r0, #0xFFFFFF00
70 LDR r0, [r0]
71
72 ;
73 MOV lr, pc
74 BX r0
75
76 ;
77 MOV r0, #0xFFFFFF00
78 STR r0, [r0] ;
79
80 ;
81 LDMFD sp!,{r0-r3,r12,lr}
82
83 ;
84 MSR CPSR_c, #0x12|0x80|0x40
85
86 ;
87 SUBS pc, lr, #4
88
89 ;
90 ;
91 ;
92 ;
93 __mbed_swi:
94 ;
95 ;
96 STMFD sp!, {a4, r4, ip, lr}
97
98 ;
99 LDR r4, =0x40000040
100
101 ;
102 ;
103 LDR a4, =0x00940000
104 LDR PC, =0x7ffff820
105
106 ;
107 ;
108 ;
109 ;
110 __mbed_dcc_irq:
111
112 ;
113
114 ;
115 LDMFD sp!,{r0-r3,r12,lr}
116
117 ;
118 MSR CPSR_c, #0x12|0x80|0x40
119
120 ;
121
122 ;
123 SUB lr, lr, #4 ;
124 STMFD sp!, {ip,lr} ;
125
126 ;
127 LDR LR, =0xfffff000
128 STR LR, [LR, #0xf00]
129
130 ;
131 ;
132 ;
133 ;
134 LDR PC, =0x7fffffe0
135
136 ;
137 ;
138 __mbed_reset:
139
140 ;
141
142 LDR R0, =(0x40000000 + 0x8000)
143
144 ;
145 MSR CPSR_c, #0x1B|0x80|0x40
146 MOV SP, R0
147 SUB R0, R0, #0x00000040
148
149 ;
150 MSR CPSR_c, #0x17|0x80|0x40
151 MOV SP, R0
152 SUB R0, R0, #0x00000040
153
154 ;
155 MSR CPSR_c, #0x11|0x80|0x40
156 MOV SP, R0
157 SUB R0, R0, #0x00000000
158
159 ;
160 MSR CPSR_c, #0x12|0x80|0x40
161 MOV SP, R0
162 SUB R0, R0, #0x00000040
163
164 ;
165 MSR CPSR_c, #0x13|0x80|0x40
166 MOV SP, R0
167 SUB R0, R0, #0x00000040
168
169 ;
170 MSR CPSR_c, #0x10
171 MOV SP, R0
172
173 ;
174 LDR R0, =__mbed_init_realmonitor
175 MOV LR, PC
176 BX R0
177
178 ;
179 LDR R0, =__mbed_init
180 BX R0
Imprint / Impressum