|
ChibiOS/RT
2.5.1 |
00001 /* 00002 ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 00003 2011,2012 Giovanni Di Sirio. 00004 00005 This file is part of ChibiOS/RT. 00006 00007 ChibiOS/RT is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 ChibiOS/RT is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 /** 00022 * @file ARM/AT91SAM7/vectors.s 00023 * @brief Interrupt vectors for the AT91SAM7 family. 00024 * 00025 * @defgroup ARM_AT91SAM7_VECTORS AT91SAM7 Interrupt Vectors 00026 * @ingroup ARM_SPECIFIC 00027 * @details Interrupt vectors for the AT91SAM7 family. 00028 * @{ 00029 */ 00030 00031 #if defined(__DOXYGEN__) 00032 /** 00033 * @brief Unhandled exceptions handler. 00034 * @details Any undefined exception vector points to this function by default. 00035 * This function simply stops the system into an infinite loop. 00036 * 00037 * @notapi 00038 */ 00039 void _unhandled_exception(void) {} 00040 #endif 00041 00042 #if !defined(__DOXYGEN__) 00043 00044 .section vectors 00045 .code 32 00046 .balign 4 00047 /* 00048 * System entry points. 00049 */ 00050 _start: 00051 ldr pc, _reset 00052 ldr pc, _undefined 00053 ldr pc, _swi 00054 ldr pc, _prefetch 00055 ldr pc, _abort 00056 nop 00057 ldr pc, [pc,#-0xF20] /* AIC - AIC_IVR */ 00058 ldr pc, [pc,#-0xF20] /* AIC - AIC_FVR */ 00059 00060 _reset: 00061 .word ResetHandler /* In crt0.s */ 00062 _undefined: 00063 .word UndHandler 00064 _swi: 00065 .word SwiHandler 00066 _prefetch: 00067 .word PrefetchHandler 00068 _abort: 00069 .word AbortHandler 00070 .word 0 00071 .word 0 00072 .word 0 00073 00074 .text 00075 .code 32 00076 .balign 4 00077 00078 /* 00079 * Default exceptions handlers. The handlers are declared weak in order to be 00080 * replaced by the real handling code. Everything is defaulted to an infinite 00081 * loop. 00082 */ 00083 .weak UndHandler 00084 UndHandler: 00085 00086 .weak SwiHandler 00087 SwiHandler: 00088 00089 .weak PrefetchHandler 00090 PrefetchHandler: 00091 00092 .weak AbortHandler 00093 AbortHandler: 00094 00095 .weak FiqHandler 00096 FiqHandler: 00097 00098 .global _unhandled_exception 00099 _unhandled_exception: 00100 b _unhandled_exception 00101 00102 #endif 00103 00104 /** @} */