]> begriffs open source - cmsis-freertos/blob - Demo/MCF5235_GCC/system/vector.S
Update cmsis_os2.c
[cmsis-freertos] / Demo / MCF5235_GCC / system / vector.S
1 /*
2     FreeRTOS MCF5235 port - Copyright (C) 2006 Christian Walter.
3
4     This file is part of the FreeRTOS distribution.
5
6     FreeRTOS is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License** as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     FreeRTOS is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with FreeRTOS; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20     A special exception to the GPL can be applied should you wish to distribute
21     a combined work that includes FreeRTOS, without being obliged to provide
22     the source code for any proprietary components.  See the licensing section
23     of http://www.FreeRTOS.org for full details of how and when the exception
24     can be applied.
25
26     ***************************************************************************
27     ***************************************************************************
28     *                                                                         *
29     * Get the FreeRTOS eBook!  See http://www.FreeRTOS.org/Documentation      *
30         *                                                                         *
31         * This is a concise, step by step, 'hands on' guide that describes both   *
32         * general multitasking concepts and FreeRTOS specifics. It presents and   *
33         * explains numerous examples that are written using the FreeRTOS API.     *
34         * Full source code for all the examples is provided in an accompanying    *
35         * .zip file.                                                              *
36     *                                                                         *
37     ***************************************************************************
38     ***************************************************************************
39
40         Please ensure to read the configuration and relevant port sections of the
41         online documentation.
42
43         http://www.FreeRTOS.org - Documentation, latest information, license and 
44         contact details.
45
46         http://www.SafeRTOS.com - A version that is certified for use in safety 
47         critical systems.
48
49         http://www.OpenRTOS.com - Commercial support, development, porting, 
50         licensing and training services.
51 */
52
53   .extern __stack
54   .extern start
55   .extern fec_handler
56   .extern fec_if
57   .extern decrement_timers
58   .global __RAMVEC
59   .global __ROMVEC
60
61   .equ    MCF_PIT_PCSR0, IPSBAR + 0x150000
62   .equ    MCF_PIT_PCSR_PIF, 0x0004
63
64   .section  .vector_rom, "x"
65 __ROMVEC:
66   .long   __stack               /* Reset: Initial Stack Pointer */
67   .long   start                 /* Reset: Initial Program Counter */
68   .long   VecDefault            /* Bus Error */
69   .long   VecDefault            /* Address Error */
70   .long   VecDefault            /* Illegal Instruction */
71   .long   VecDefault            /* Zero Divison */
72   .space  4                     /* reserved */
73   .space  4                     /* reserved */
74   .long   VecDefault            /* Privilege Violation */
75   .long   VecDefault            /* Trace */
76   .long   VecDefault            /* Unimplemented line-a opcode */
77   .long   VecDefault            /* Unimplemented line-b opcode */
78   .long   VecDefault            /* Non-PC breakpoint debug interrupt */
79   .long   VecDefault            /* PC breakpoint debug interrupt */
80   .long   VecDefault            /* Format Error */
81   .long   VecDefault            /* Uninitialized Interrupt */
82   .org    0x60
83   .long   IRQSpurious           /* Spurious Interrupt */
84   .long   IRQDefault            /* Level 1 Interrupt */
85   .long   IRQDefault            /* Level 2 Interrupt */
86   .long   IRQDefault            /* Level 3 Interrupt */
87   .long   IRQDefault            /* Level 4 Interrupt */
88   .long   IRQDefault            /* Level 5 Interrupt */
89   .long   IRQDefault            /* Level 6 Interrupt */
90   .long   IRQDefault            /* Level 7 Interrupt */
91   .org    0x80
92   .long   TrapDefault           /* TRAP 0 */
93   .long   TrapDefault           /* TRAP 1 */
94   .long   TrapDefault           /* TRAP 2 */
95   .long   TrapDefault           /* TRAP 3 */
96   .long   TrapDefault           /* TRAP 4 */
97   .long   TrapDefault           /* TRAP 5 */
98   .long   TrapDefault           /* TRAP 6 */
99   .long   TrapDefault           /* TRAP 7 */
100   .long   TrapDefault           /* TRAP 8 */
101   .long   TrapDefault           /* TRAP 9 */
102   .long   TrapDefault           /* TRAP 10 */
103   .long   TrapDefault           /* TRAP 11 */
104   .long   TrapDefault           /* TRAP 12 */
105   .long   TrapDefault           /* TRAP 13 */
106   .long   TrapDefault           /* TRAP 14 */
107   .long   TrapDefault           /* TRAP 15 */
108   .org    0x100
109   .long   IRQDefault            /* User-Defined Interrupt 0 */
110   .long   IRQDefault            /* User-Defined Interrupt 1 */
111   .long   IRQDefault            /* User-Defined Interrupt 2 */
112   .long   IRQDefault            /* User-Defined Interrupt 3 */
113   .long   IRQDefault            /* User-Defined Interrupt 4 */
114   .long   IRQDefault            /* User-Defined Interrupt 5 */
115   .long   IRQDefault            /* User-Defined Interrupt 6 */
116   .long   IRQDefault            /* User-Defined Interrupt 7 */
117   .long   IRQDefault            /* User-Defined Interrupt 8 */
118   .long   IRQDefault            /* User-Defined Interrupt 9 */
119   .long   IRQDefault            /* User-Defined Interrupt 10 */
120   .long   IRQDefault            /* User-Defined Interrupt 11 */
121   .long   IRQDefault            /* User-Defined Interrupt 12 */
122   .long   IRQDefault            /* User-Defined Interrupt 13 */
123   .long   IRQDefault            /* User-Defined Interrupt 14 */
124   .long   IRQDefault            /* User-Defined Interrupt 15 */
125   .long   IRQDefault            /* User-Defined Interrupt 16 */
126   .long   IRQDefault            /* User-Defined Interrupt 17 */
127   .long   IRQDefault            /* User-Defined Interrupt 18 */
128   .long   IRQDefault            /* User-Defined Interrupt 19 */
129   .long   IRQDefault            /* User-Defined Interrupt 20 */
130   .long   IRQDefault            /* User-Defined Interrupt 21 */
131   .long   IRQDefault            /* User-Defined Interrupt 22 */
132   .long   IRQDefault            /* Transmit frame interrupt */
133   .long   IRQDefault            /* Transmit buffer interrupt */
134   .long   IRQDefault            /* Transmit FIFO underrun */
135   .long   IRQDefault            /* Collision retry limit */
136   .long   IRQDefault            /* Receive frame interrupt */
137   .long   IRQDefault            /* Receive buffer interrupt */
138   .long   IRQDefault            /* MII interrupt */
139   .long   IRQDefault            /* Late collision */
140   .long   IRQDefault            /* Heartbeat error */
141   .long   IRQDefault            /* Graceful stop complete */
142   .long   IRQDefault            /* Ethernet bus error */
143   .long   IRQDefault            /* Babbling transmit error */
144   .long   IRQDefault            /* Babbling receive error */
145   .long   IRQDefault            /* Timer interrupt */
146   .long   IRQDefault            /* User-Defined Interrupt 37 */
147   .long   IRQDefault            /* User-Defined Interrupt 38 */
148   .long   IRQDefault            /* User-Defined Interrupt 39 */
149   .long   IRQDefault            /* User-Defined Interrupt 40 */
150   .long   IRQDefault            /* User-Defined Interrupt 41 */
151   .long   IRQDefault            /* User-Defined Interrupt 42 */
152   .long   IRQDefault            /* User-Defined Interrupt 43 */
153   .long   IRQDefault            /* User-Defined Interrupt 44 */
154   .long   IRQDefault            /* User-Defined Interrupt 45 */
155   .long   IRQDefault            /* User-Defined Interrupt 46 */
156   .long   IRQDefault            /* User-Defined Interrupt 47 */
157   .long   IRQDefault            /* User-Defined Interrupt 48 */
158   .long   IRQDefault            /* User-Defined Interrupt 49 */
159   .long   IRQDefault            /* User-Defined Interrupt 50 */
160   .long   IRQDefault            /* User-Defined Interrupt 51 */
161   .long   IRQDefault            /* User-Defined Interrupt 52 */
162   .long   IRQDefault            /* User-Defined Interrupt 53 */
163   .long   IRQDefault            /* User-Defined Interrupt 54 */
164   .long   IRQDefault            /* User-Defined Interrupt 55 */
165   .long   IRQDefault            /* User-Defined Interrupt 56 */
166   .long   IRQDefault            /* User-Defined Interrupt 57 */
167   .long   IRQDefault            /* User-Defined Interrupt 58 */
168   .long   IRQDefault            /* User-Defined Interrupt 59 */
169   .long   IRQDefault            /* User-Defined Interrupt 60 */
170   .long   IRQDefault            /* User-Defined Interrupt 61 */
171   .long   IRQDefault            /* User-Defined Interrupt 62 */
172   .long   IRQDefault            /* User-Defined Interrupt 63 */
173   .long   IRQDefault            /* User-Defined Interrupt 64 */
174   .long   IRQDefault            /* User-Defined Interrupt 65 */
175   .long   IRQDefault            /* User-Defined Interrupt 66 */
176   .long   IRQDefault            /* User-Defined Interrupt 67 */
177   .long   IRQDefault            /* User-Defined Interrupt 68 */
178   .long   IRQDefault            /* User-Defined Interrupt 69 */
179   .long   IRQDefault            /* User-Defined Interrupt 70 */
180   .long   IRQDefault            /* User-Defined Interrupt 71 */
181   .long   IRQDefault            /* User-Defined Interrupt 72 */
182   .long   IRQDefault            /* User-Defined Interrupt 73 */
183   .long   IRQDefault            /* User-Defined Interrupt 74 */
184   .long   IRQDefault            /* User-Defined Interrupt 75 */
185   .long   IRQDefault            /* User-Defined Interrupt 76 */
186   .long   IRQDefault            /* User-Defined Interrupt 77 */
187   .long   IRQDefault            /* User-Defined Interrupt 78 */
188   .long   IRQDefault            /* User-Defined Interrupt 79 */
189   .long   IRQDefault            /* User-Defined Interrupt 80 */
190   .long   IRQDefault            /* User-Defined Interrupt 81 */
191   .long   IRQDefault            /* User-Defined Interrupt 82 */
192   .long   IRQDefault            /* User-Defined Interrupt 83 */
193   .long   IRQDefault            /* User-Defined Interrupt 84 */
194   .long   IRQDefault            /* User-Defined Interrupt 85 */
195   .long   IRQDefault            /* User-Defined Interrupt 86 */
196   .long   IRQDefault            /* User-Defined Interrupt 87 */
197   .long   IRQDefault            /* User-Defined Interrupt 88 */
198   .long   IRQDefault            /* User-Defined Interrupt 89 */
199   .long   IRQDefault            /* User-Defined Interrupt 90 */
200   .long   IRQDefault            /* User-Defined Interrupt 91 */
201   .long   IRQDefault            /* User-Defined Interrupt 92 */
202   .long   IRQDefault            /* User-Defined Interrupt 93 */
203   .long   IRQDefault            /* User-Defined Interrupt 94 */
204   .long   IRQDefault            /* User-Defined Interrupt 95 */
205   .long   IRQDefault            /* User-Defined Interrupt 96 */
206   .long   IRQDefault            /* User-Defined Interrupt 97 */
207   .long   IRQDefault            /* User-Defined Interrupt 98 */
208   .long   IRQDefault            /* User-Defined Interrupt 99 */
209   .long   IRQDefault            /* User-Defined Interrupt 100 */
210   .long   IRQDefault            /* User-Defined Interrupt 101 */
211   .long   IRQDefault            /* User-Defined Interrupt 102 */
212   .long   IRQDefault            /* User-Defined Interrupt 103 */
213   .long   IRQDefault            /* User-Defined Interrupt 104 */
214   .long   IRQDefault            /* User-Defined Interrupt 105 */
215   .long   IRQDefault            /* User-Defined Interrupt 106 */
216   .long   IRQDefault            /* User-Defined Interrupt 107 */
217   .long   IRQDefault            /* User-Defined Interrupt 108 */
218   .long   IRQDefault            /* User-Defined Interrupt 109 */
219   .long   IRQDefault            /* User-Defined Interrupt 110 */
220   .long   IRQDefault            /* User-Defined Interrupt 111 */
221   .long   IRQDefault            /* User-Defined Interrupt 112 */
222   .long   IRQDefault            /* User-Defined Interrupt 113 */
223   .long   IRQDefault            /* User-Defined Interrupt 114 */
224   .long   IRQDefault            /* User-Defined Interrupt 115 */
225   .long   IRQDefault            /* User-Defined Interrupt 116 */
226   .long   IRQDefault            /* User-Defined Interrupt 117 */
227   .long   IRQDefault            /* User-Defined Interrupt 118 */
228   .long   IRQDefault            /* User-Defined Interrupt 119 */
229   .long   IRQDefault            /* User-Defined Interrupt 120 */
230   .long   IRQDefault            /* User-Defined Interrupt 121 */
231   .long   IRQDefault            /* User-Defined Interrupt 122 */
232   .long   IRQDefault            /* User-Defined Interrupt 123 */
233   .long   IRQDefault            /* User-Defined Interrupt 124 */
234   .long   IRQDefault            /* User-Defined Interrupt 125 */
235   .long   IRQDefault            /* User-Defined Interrupt 126 */
236   .long   IRQDefault            /* User-Defined Interrupt 127 */
237   .long   IRQDefault            /* User-Defined Interrupt 128 */
238   .long   IRQDefault            /* User-Defined Interrupt 129 */
239   .long   IRQDefault            /* User-Defined Interrupt 130 */
240   .long   IRQDefault            /* User-Defined Interrupt 131 */
241   .long   IRQDefault            /* User-Defined Interrupt 132 */
242   .long   IRQDefault            /* User-Defined Interrupt 133 */
243   .long   IRQDefault            /* User-Defined Interrupt 134 */
244   .long   IRQDefault            /* User-Defined Interrupt 135 */
245   .long   IRQDefault            /* User-Defined Interrupt 136 */
246   .long   IRQDefault            /* User-Defined Interrupt 137 */
247   .long   IRQDefault            /* User-Defined Interrupt 138 */
248   .long   IRQDefault            /* User-Defined Interrupt 139 */
249   .long   IRQDefault            /* User-Defined Interrupt 140 */
250   .long   IRQDefault            /* User-Defined Interrupt 141 */
251   .long   IRQDefault            /* User-Defined Interrupt 142 */
252   .long   IRQDefault            /* User-Defined Interrupt 143 */
253   .long   IRQDefault            /* User-Defined Interrupt 144 */
254   .long   IRQDefault            /* User-Defined Interrupt 145 */
255   .long   IRQDefault            /* User-Defined Interrupt 146 */
256   .long   IRQDefault            /* User-Defined Interrupt 147 */
257   .long   IRQDefault            /* User-Defined Interrupt 148 */
258   .long   IRQDefault            /* User-Defined Interrupt 149 */
259   .long   IRQDefault            /* User-Defined Interrupt 150 */
260   .long   IRQDefault            /* User-Defined Interrupt 151 */
261   .long   IRQDefault            /* User-Defined Interrupt 152 */
262   .long   IRQDefault            /* User-Defined Interrupt 153 */
263   .long   IRQDefault            /* User-Defined Interrupt 154 */
264   .long   IRQDefault            /* User-Defined Interrupt 155 */
265   .long   IRQDefault            /* User-Defined Interrupt 156 */
266   .long   IRQDefault            /* User-Defined Interrupt 157 */
267   .long   IRQDefault            /* User-Defined Interrupt 158 */
268   .long   IRQDefault            /* User-Defined Interrupt 159 */
269   .long   IRQDefault            /* User-Defined Interrupt 160 */
270   .long   IRQDefault            /* User-Defined Interrupt 161 */
271   .long   IRQDefault            /* User-Defined Interrupt 162 */
272   .long   IRQDefault            /* User-Defined Interrupt 163 */
273   .long   IRQDefault            /* User-Defined Interrupt 164 */
274   .long   IRQDefault            /* User-Defined Interrupt 165 */
275   .long   IRQDefault            /* User-Defined Interrupt 166 */
276   .long   IRQDefault            /* User-Defined Interrupt 167 */
277   .long   IRQDefault            /* User-Defined Interrupt 168 */
278   .long   IRQDefault            /* User-Defined Interrupt 169 */
279   .long   IRQDefault            /* User-Defined Interrupt 170 */
280   .long   IRQDefault            /* User-Defined Interrupt 171 */
281   .long   IRQDefault            /* User-Defined Interrupt 172 */
282   .long   IRQDefault            /* User-Defined Interrupt 173 */
283   .long   IRQDefault            /* User-Defined Interrupt 174 */
284   .long   IRQDefault            /* User-Defined Interrupt 175 */
285   .long   IRQDefault            /* User-Defined Interrupt 176 */
286   .long   IRQDefault            /* User-Defined Interrupt 177 */
287   .long   IRQDefault            /* User-Defined Interrupt 178 */
288   .long   IRQDefault            /* User-Defined Interrupt 179 */
289   .long   IRQDefault            /* User-Defined Interrupt 180 */
290   .long   IRQDefault            /* User-Defined Interrupt 181 */
291   .long   IRQDefault            /* User-Defined Interrupt 182 */
292   .long   IRQDefault            /* User-Defined Interrupt 183 */
293   .long   IRQDefault            /* User-Defined Interrupt 184 */
294   .long   IRQDefault            /* User-Defined Interrupt 185 */
295   .long   IRQDefault            /* User-Defined Interrupt 186 */
296   .long   IRQDefault            /* User-Defined Interrupt 187 */
297   .long   IRQDefault            /* User-Defined Interrupt 188 */
298   .long   IRQDefault            /* User-Defined Interrupt 189 */
299   .long   IRQDefault            /* User-Defined Interrupt 190 */
300   .long   IRQDefault            /* User-Defined Interrupt 191 */
301   .org    0x00000400
302
303   .section  .vector_ram
304 __RAMVEC:
305   .space  0x400
306
307   .section  .text
308 VecDefault:
309   halt
310   bra VecDefault
311
312 IRQDefault:
313   halt
314   bra IRQDefault
315
316 IRQSpurious:
317   halt
318   bra IRQSpurious
319
320 TrapDefault:
321   halt
322   bra TrapDefault