/* | |
FreeRTOS MCF5235 port - Copyright (C) 2006 Christian Walter. | |
This file is part of the FreeRTOS distribution. | |
FreeRTOS is free software; you can redistribute it and/or modify | |
it under the terms of the GNU General Public License** as published by | |
the Free Software Foundation; either version 2 of the License, or | |
(at your option) any later version. | |
FreeRTOS is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with FreeRTOS; if not, write to the Free Software | |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
A special exception to the GPL can be applied should you wish to distribute | |
a combined work that includes FreeRTOS, without being obliged to provide | |
the source code for any proprietary components. See the licensing section | |
of http://www.FreeRTOS.org for full details of how and when the exception | |
can be applied. | |
*************************************************************************** | |
*************************************************************************** | |
* * | |
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation * | |
* * | |
* This is a concise, step by step, 'hands on' guide that describes both * | |
* general multitasking concepts and FreeRTOS specifics. It presents and * | |
* explains numerous examples that are written using the FreeRTOS API. * | |
* Full source code for all the examples is provided in an accompanying * | |
* .zip file. * | |
* * | |
*************************************************************************** | |
*************************************************************************** | |
Please ensure to read the configuration and relevant port sections of the | |
online documentation. | |
http://www.FreeRTOS.org - Documentation, latest information, license and | |
contact details. | |
http://www.SafeRTOS.com - A version that is certified for use in safety | |
critical systems. | |
http://www.OpenRTOS.com - Commercial support, development, porting, | |
licensing and training services. | |
*/ | |
.extern __stack | |
.extern start | |
.extern fec_handler | |
.extern fec_if | |
.extern decrement_timers | |
.global __RAMVEC | |
.global __ROMVEC | |
.equ MCF_PIT_PCSR0, IPSBAR + 0x150000 | |
.equ MCF_PIT_PCSR_PIF, 0x0004 | |
.section .vector_rom, "x" | |
__ROMVEC: | |
.long __stack /* Reset: Initial Stack Pointer */ | |
.long start /* Reset: Initial Program Counter */ | |
.long VecDefault /* Bus Error */ | |
.long VecDefault /* Address Error */ | |
.long VecDefault /* Illegal Instruction */ | |
.long VecDefault /* Zero Divison */ | |
.space 4 /* reserved */ | |
.space 4 /* reserved */ | |
.long VecDefault /* Privilege Violation */ | |
.long VecDefault /* Trace */ | |
.long VecDefault /* Unimplemented line-a opcode */ | |
.long VecDefault /* Unimplemented line-b opcode */ | |
.long VecDefault /* Non-PC breakpoint debug interrupt */ | |
.long VecDefault /* PC breakpoint debug interrupt */ | |
.long VecDefault /* Format Error */ | |
.long VecDefault /* Uninitialized Interrupt */ | |
.org 0x60 | |
.long IRQSpurious /* Spurious Interrupt */ | |
.long IRQDefault /* Level 1 Interrupt */ | |
.long IRQDefault /* Level 2 Interrupt */ | |
.long IRQDefault /* Level 3 Interrupt */ | |
.long IRQDefault /* Level 4 Interrupt */ | |
.long IRQDefault /* Level 5 Interrupt */ | |
.long IRQDefault /* Level 6 Interrupt */ | |
.long IRQDefault /* Level 7 Interrupt */ | |
.org 0x80 | |
.long TrapDefault /* TRAP 0 */ | |
.long TrapDefault /* TRAP 1 */ | |
.long TrapDefault /* TRAP 2 */ | |
.long TrapDefault /* TRAP 3 */ | |
.long TrapDefault /* TRAP 4 */ | |
.long TrapDefault /* TRAP 5 */ | |
.long TrapDefault /* TRAP 6 */ | |
.long TrapDefault /* TRAP 7 */ | |
.long TrapDefault /* TRAP 8 */ | |
.long TrapDefault /* TRAP 9 */ | |
.long TrapDefault /* TRAP 10 */ | |
.long TrapDefault /* TRAP 11 */ | |
.long TrapDefault /* TRAP 12 */ | |
.long TrapDefault /* TRAP 13 */ | |
.long TrapDefault /* TRAP 14 */ | |
.long TrapDefault /* TRAP 15 */ | |
.org 0x100 | |
.long IRQDefault /* User-Defined Interrupt 0 */ | |
.long IRQDefault /* User-Defined Interrupt 1 */ | |
.long IRQDefault /* User-Defined Interrupt 2 */ | |
.long IRQDefault /* User-Defined Interrupt 3 */ | |
.long IRQDefault /* User-Defined Interrupt 4 */ | |
.long IRQDefault /* User-Defined Interrupt 5 */ | |
.long IRQDefault /* User-Defined Interrupt 6 */ | |
.long IRQDefault /* User-Defined Interrupt 7 */ | |
.long IRQDefault /* User-Defined Interrupt 8 */ | |
.long IRQDefault /* User-Defined Interrupt 9 */ | |
.long IRQDefault /* User-Defined Interrupt 10 */ | |
.long IRQDefault /* User-Defined Interrupt 11 */ | |
.long IRQDefault /* User-Defined Interrupt 12 */ | |
.long IRQDefault /* User-Defined Interrupt 13 */ | |
.long IRQDefault /* User-Defined Interrupt 14 */ | |
.long IRQDefault /* User-Defined Interrupt 15 */ | |
.long IRQDefault /* User-Defined Interrupt 16 */ | |
.long IRQDefault /* User-Defined Interrupt 17 */ | |
.long IRQDefault /* User-Defined Interrupt 18 */ | |
.long IRQDefault /* User-Defined Interrupt 19 */ | |
.long IRQDefault /* User-Defined Interrupt 20 */ | |
.long IRQDefault /* User-Defined Interrupt 21 */ | |
.long IRQDefault /* User-Defined Interrupt 22 */ | |
.long IRQDefault /* Transmit frame interrupt */ | |
.long IRQDefault /* Transmit buffer interrupt */ | |
.long IRQDefault /* Transmit FIFO underrun */ | |
.long IRQDefault /* Collision retry limit */ | |
.long IRQDefault /* Receive frame interrupt */ | |
.long IRQDefault /* Receive buffer interrupt */ | |
.long IRQDefault /* MII interrupt */ | |
.long IRQDefault /* Late collision */ | |
.long IRQDefault /* Heartbeat error */ | |
.long IRQDefault /* Graceful stop complete */ | |
.long IRQDefault /* Ethernet bus error */ | |
.long IRQDefault /* Babbling transmit error */ | |
.long IRQDefault /* Babbling receive error */ | |
.long IRQDefault /* Timer interrupt */ | |
.long IRQDefault /* User-Defined Interrupt 37 */ | |
.long IRQDefault /* User-Defined Interrupt 38 */ | |
.long IRQDefault /* User-Defined Interrupt 39 */ | |
.long IRQDefault /* User-Defined Interrupt 40 */ | |
.long IRQDefault /* User-Defined Interrupt 41 */ | |
.long IRQDefault /* User-Defined Interrupt 42 */ | |
.long IRQDefault /* User-Defined Interrupt 43 */ | |
.long IRQDefault /* User-Defined Interrupt 44 */ | |
.long IRQDefault /* User-Defined Interrupt 45 */ | |
.long IRQDefault /* User-Defined Interrupt 46 */ | |
.long IRQDefault /* User-Defined Interrupt 47 */ | |
.long IRQDefault /* User-Defined Interrupt 48 */ | |
.long IRQDefault /* User-Defined Interrupt 49 */ | |
.long IRQDefault /* User-Defined Interrupt 50 */ | |
.long IRQDefault /* User-Defined Interrupt 51 */ | |
.long IRQDefault /* User-Defined Interrupt 52 */ | |
.long IRQDefault /* User-Defined Interrupt 53 */ | |
.long IRQDefault /* User-Defined Interrupt 54 */ | |
.long IRQDefault /* User-Defined Interrupt 55 */ | |
.long IRQDefault /* User-Defined Interrupt 56 */ | |
.long IRQDefault /* User-Defined Interrupt 57 */ | |
.long IRQDefault /* User-Defined Interrupt 58 */ | |
.long IRQDefault /* User-Defined Interrupt 59 */ | |
.long IRQDefault /* User-Defined Interrupt 60 */ | |
.long IRQDefault /* User-Defined Interrupt 61 */ | |
.long IRQDefault /* User-Defined Interrupt 62 */ | |
.long IRQDefault /* User-Defined Interrupt 63 */ | |
.long IRQDefault /* User-Defined Interrupt 64 */ | |
.long IRQDefault /* User-Defined Interrupt 65 */ | |
.long IRQDefault /* User-Defined Interrupt 66 */ | |
.long IRQDefault /* User-Defined Interrupt 67 */ | |
.long IRQDefault /* User-Defined Interrupt 68 */ | |
.long IRQDefault /* User-Defined Interrupt 69 */ | |
.long IRQDefault /* User-Defined Interrupt 70 */ | |
.long IRQDefault /* User-Defined Interrupt 71 */ | |
.long IRQDefault /* User-Defined Interrupt 72 */ | |
.long IRQDefault /* User-Defined Interrupt 73 */ | |
.long IRQDefault /* User-Defined Interrupt 74 */ | |
.long IRQDefault /* User-Defined Interrupt 75 */ | |
.long IRQDefault /* User-Defined Interrupt 76 */ | |
.long IRQDefault /* User-Defined Interrupt 77 */ | |
.long IRQDefault /* User-Defined Interrupt 78 */ | |
.long IRQDefault /* User-Defined Interrupt 79 */ | |
.long IRQDefault /* User-Defined Interrupt 80 */ | |
.long IRQDefault /* User-Defined Interrupt 81 */ | |
.long IRQDefault /* User-Defined Interrupt 82 */ | |
.long IRQDefault /* User-Defined Interrupt 83 */ | |
.long IRQDefault /* User-Defined Interrupt 84 */ | |
.long IRQDefault /* User-Defined Interrupt 85 */ | |
.long IRQDefault /* User-Defined Interrupt 86 */ | |
.long IRQDefault /* User-Defined Interrupt 87 */ | |
.long IRQDefault /* User-Defined Interrupt 88 */ | |
.long IRQDefault /* User-Defined Interrupt 89 */ | |
.long IRQDefault /* User-Defined Interrupt 90 */ | |
.long IRQDefault /* User-Defined Interrupt 91 */ | |
.long IRQDefault /* User-Defined Interrupt 92 */ | |
.long IRQDefault /* User-Defined Interrupt 93 */ | |
.long IRQDefault /* User-Defined Interrupt 94 */ | |
.long IRQDefault /* User-Defined Interrupt 95 */ | |
.long IRQDefault /* User-Defined Interrupt 96 */ | |
.long IRQDefault /* User-Defined Interrupt 97 */ | |
.long IRQDefault /* User-Defined Interrupt 98 */ | |
.long IRQDefault /* User-Defined Interrupt 99 */ | |
.long IRQDefault /* User-Defined Interrupt 100 */ | |
.long IRQDefault /* User-Defined Interrupt 101 */ | |
.long IRQDefault /* User-Defined Interrupt 102 */ | |
.long IRQDefault /* User-Defined Interrupt 103 */ | |
.long IRQDefault /* User-Defined Interrupt 104 */ | |
.long IRQDefault /* User-Defined Interrupt 105 */ | |
.long IRQDefault /* User-Defined Interrupt 106 */ | |
.long IRQDefault /* User-Defined Interrupt 107 */ | |
.long IRQDefault /* User-Defined Interrupt 108 */ | |
.long IRQDefault /* User-Defined Interrupt 109 */ | |
.long IRQDefault /* User-Defined Interrupt 110 */ | |
.long IRQDefault /* User-Defined Interrupt 111 */ | |
.long IRQDefault /* User-Defined Interrupt 112 */ | |
.long IRQDefault /* User-Defined Interrupt 113 */ | |
.long IRQDefault /* User-Defined Interrupt 114 */ | |
.long IRQDefault /* User-Defined Interrupt 115 */ | |
.long IRQDefault /* User-Defined Interrupt 116 */ | |
.long IRQDefault /* User-Defined Interrupt 117 */ | |
.long IRQDefault /* User-Defined Interrupt 118 */ | |
.long IRQDefault /* User-Defined Interrupt 119 */ | |
.long IRQDefault /* User-Defined Interrupt 120 */ | |
.long IRQDefault /* User-Defined Interrupt 121 */ | |
.long IRQDefault /* User-Defined Interrupt 122 */ | |
.long IRQDefault /* User-Defined Interrupt 123 */ | |
.long IRQDefault /* User-Defined Interrupt 124 */ | |
.long IRQDefault /* User-Defined Interrupt 125 */ | |
.long IRQDefault /* User-Defined Interrupt 126 */ | |
.long IRQDefault /* User-Defined Interrupt 127 */ | |
.long IRQDefault /* User-Defined Interrupt 128 */ | |
.long IRQDefault /* User-Defined Interrupt 129 */ | |
.long IRQDefault /* User-Defined Interrupt 130 */ | |
.long IRQDefault /* User-Defined Interrupt 131 */ | |
.long IRQDefault /* User-Defined Interrupt 132 */ | |
.long IRQDefault /* User-Defined Interrupt 133 */ | |
.long IRQDefault /* User-Defined Interrupt 134 */ | |
.long IRQDefault /* User-Defined Interrupt 135 */ | |
.long IRQDefault /* User-Defined Interrupt 136 */ | |
.long IRQDefault /* User-Defined Interrupt 137 */ | |
.long IRQDefault /* User-Defined Interrupt 138 */ | |
.long IRQDefault /* User-Defined Interrupt 139 */ | |
.long IRQDefault /* User-Defined Interrupt 140 */ | |
.long IRQDefault /* User-Defined Interrupt 141 */ | |
.long IRQDefault /* User-Defined Interrupt 142 */ | |
.long IRQDefault /* User-Defined Interrupt 143 */ | |
.long IRQDefault /* User-Defined Interrupt 144 */ | |
.long IRQDefault /* User-Defined Interrupt 145 */ | |
.long IRQDefault /* User-Defined Interrupt 146 */ | |
.long IRQDefault /* User-Defined Interrupt 147 */ | |
.long IRQDefault /* User-Defined Interrupt 148 */ | |
.long IRQDefault /* User-Defined Interrupt 149 */ | |
.long IRQDefault /* User-Defined Interrupt 150 */ | |
.long IRQDefault /* User-Defined Interrupt 151 */ | |
.long IRQDefault /* User-Defined Interrupt 152 */ | |
.long IRQDefault /* User-Defined Interrupt 153 */ | |
.long IRQDefault /* User-Defined Interrupt 154 */ | |
.long IRQDefault /* User-Defined Interrupt 155 */ | |
.long IRQDefault /* User-Defined Interrupt 156 */ | |
.long IRQDefault /* User-Defined Interrupt 157 */ | |
.long IRQDefault /* User-Defined Interrupt 158 */ | |
.long IRQDefault /* User-Defined Interrupt 159 */ | |
.long IRQDefault /* User-Defined Interrupt 160 */ | |
.long IRQDefault /* User-Defined Interrupt 161 */ | |
.long IRQDefault /* User-Defined Interrupt 162 */ | |
.long IRQDefault /* User-Defined Interrupt 163 */ | |
.long IRQDefault /* User-Defined Interrupt 164 */ | |
.long IRQDefault /* User-Defined Interrupt 165 */ | |
.long IRQDefault /* User-Defined Interrupt 166 */ | |
.long IRQDefault /* User-Defined Interrupt 167 */ | |
.long IRQDefault /* User-Defined Interrupt 168 */ | |
.long IRQDefault /* User-Defined Interrupt 169 */ | |
.long IRQDefault /* User-Defined Interrupt 170 */ | |
.long IRQDefault /* User-Defined Interrupt 171 */ | |
.long IRQDefault /* User-Defined Interrupt 172 */ | |
.long IRQDefault /* User-Defined Interrupt 173 */ | |
.long IRQDefault /* User-Defined Interrupt 174 */ | |
.long IRQDefault /* User-Defined Interrupt 175 */ | |
.long IRQDefault /* User-Defined Interrupt 176 */ | |
.long IRQDefault /* User-Defined Interrupt 177 */ | |
.long IRQDefault /* User-Defined Interrupt 178 */ | |
.long IRQDefault /* User-Defined Interrupt 179 */ | |
.long IRQDefault /* User-Defined Interrupt 180 */ | |
.long IRQDefault /* User-Defined Interrupt 181 */ | |
.long IRQDefault /* User-Defined Interrupt 182 */ | |
.long IRQDefault /* User-Defined Interrupt 183 */ | |
.long IRQDefault /* User-Defined Interrupt 184 */ | |
.long IRQDefault /* User-Defined Interrupt 185 */ | |
.long IRQDefault /* User-Defined Interrupt 186 */ | |
.long IRQDefault /* User-Defined Interrupt 187 */ | |
.long IRQDefault /* User-Defined Interrupt 188 */ | |
.long IRQDefault /* User-Defined Interrupt 189 */ | |
.long IRQDefault /* User-Defined Interrupt 190 */ | |
.long IRQDefault /* User-Defined Interrupt 191 */ | |
.org 0x00000400 | |
.section .vector_ram | |
__RAMVEC: | |
.space 0x400 | |
.section .text | |
VecDefault: | |
halt | |
bra VecDefault | |
IRQDefault: | |
halt | |
bra IRQDefault | |
IRQSpurious: | |
halt | |
bra IRQSpurious | |
TrapDefault: | |
halt | |
bra TrapDefault |