199 lines
8.4 KiB
C
199 lines
8.4 KiB
C
/****************************************************************************
|
|
* Copyright (c) 2011 by Michael Fischer. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. Neither the name of the author nor the names of its contributors may
|
|
* be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
|
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
****************************************************************************
|
|
* History:
|
|
*
|
|
* 22.05.2011 mifi First Version for the SAM3S4C
|
|
****************************************************************************/
|
|
#define __VECTORS_SAM3S_C__
|
|
|
|
/*=========================================================================*/
|
|
/* DEFINE: All extern Data */
|
|
/*=========================================================================*/
|
|
extern unsigned long _estack;
|
|
|
|
/*=========================================================================*/
|
|
/* DEFINE: Prototypes */
|
|
/*=========================================================================*/
|
|
void ResetHandler(void);
|
|
|
|
void NMI_Handler (void) __attribute__((weak));
|
|
void HardFault_Handler (void) __attribute__((weak));
|
|
void MemManage_Handler (void) __attribute__((weak));
|
|
void BusFault_Handler (void) __attribute__((weak));
|
|
void UsageFault_Handler (void) __attribute__((weak));
|
|
void SVC_Handler (void) __attribute__((weak));
|
|
void DebugMon_Handler (void) __attribute__((weak));
|
|
void PendSV_Handler (void) __attribute__((weak));
|
|
void SysTick_Handler (void) __attribute__((weak));
|
|
|
|
void SUPC_IRQHandler (void) __attribute__((weak));
|
|
void RSTC_IRQHandler (void) __attribute__((weak));
|
|
void RTC_IRQHandler (void) __attribute__((weak));
|
|
void RTT_IRQHandler (void) __attribute__((weak));
|
|
void WDT_IRQHandler (void) __attribute__((weak));
|
|
void PMC_IRQHandler (void) __attribute__((weak));
|
|
void EEFC_IRQHandler (void) __attribute__((weak));
|
|
void UART0_IRQHandler (void) __attribute__((weak));
|
|
void UART1_IRQHandler (void) __attribute__((weak));
|
|
void SMC_IRQHandler (void) __attribute__((weak));
|
|
void PIOA_IRQHandler (void) __attribute__((weak));
|
|
void PIOB_IRQHandler (void) __attribute__((weak));
|
|
void PIOC_IRQHandler (void) __attribute__((weak));
|
|
void USART0_IRQHandler (void) __attribute__((weak));
|
|
void USART1_IRQHandler (void) __attribute__((weak));
|
|
void MCI_IRQHandler (void) __attribute__((weak));
|
|
void TWI0_IRQHandler (void) __attribute__((weak));
|
|
void TWI1_IRQHandler (void) __attribute__((weak));
|
|
void SPI_IRQHandler (void) __attribute__((weak));
|
|
void SSC_IRQHandler (void) __attribute__((weak));
|
|
void TC0_IRQHandler (void) __attribute__((weak));
|
|
void TC1_IRQHandler (void) __attribute__((weak));
|
|
void TC2_IRQHandler (void) __attribute__((weak));
|
|
void TC3_IRQHandler (void) __attribute__((weak));
|
|
void TC4_IRQHandler (void) __attribute__((weak));
|
|
void TC5_IRQHandler (void) __attribute__((weak));
|
|
void ADC_IRQHandler (void) __attribute__((weak));
|
|
void DAC_IRQHandler (void) __attribute__((weak));
|
|
void PWM_IRQHandler (void) __attribute__((weak));
|
|
void CRCCU_IRQHandler (void) __attribute__((weak));
|
|
void ACC_IRQHandler (void) __attribute__((weak));
|
|
void USBD_IRQHandler (void) __attribute__((weak));
|
|
|
|
/*=========================================================================*/
|
|
/* DEFINE: All code exported */
|
|
/*=========================================================================*/
|
|
/*
|
|
* This is our vector table.
|
|
*/
|
|
__attribute__ ((section(".vectors"), used))
|
|
void (* const gVectors[])(void) =
|
|
{
|
|
(void (*)(void))((unsigned long)&_estack),
|
|
ResetHandler,
|
|
NMI_Handler,
|
|
HardFault_Handler,
|
|
MemManage_Handler,
|
|
BusFault_Handler,
|
|
UsageFault_Handler,
|
|
0, 0, 0, 0,
|
|
SVC_Handler,
|
|
DebugMon_Handler,
|
|
0,
|
|
PendSV_Handler,
|
|
SysTick_Handler,
|
|
|
|
SUPC_IRQHandler, /* 0 SUPPLY CONTROLLER */
|
|
RSTC_IRQHandler, /* 1 RESET CONTROLLER */
|
|
RTC_IRQHandler, /* 2 REAL TIME CLOCK */
|
|
RTT_IRQHandler, /* 3 REAL TIME TIMER */
|
|
WDT_IRQHandler, /* 4 WATCHDOG TIMER */
|
|
PMC_IRQHandler, /* 5 PMC */
|
|
EEFC_IRQHandler, /* 6 EEFC */
|
|
0, /* 7 Reserved */
|
|
UART0_IRQHandler, /* 8 UART0 */
|
|
UART1_IRQHandler, /* 9 UART1 */
|
|
SMC_IRQHandler, /* 10 SMC */
|
|
PIOA_IRQHandler, /* 11 Parallel IO Controller A */
|
|
PIOB_IRQHandler, /* 12 Parallel IO Controller B */
|
|
PIOC_IRQHandler, /* 13 Parallel IO Controller C */
|
|
USART0_IRQHandler, /* 14 USART 0 */
|
|
USART1_IRQHandler, /* 15 USART 1 */
|
|
0, /* 16 Reserved */
|
|
0, /* 17 Reserved */
|
|
MCI_IRQHandler, /* 18 MCI */
|
|
TWI0_IRQHandler, /* 19 TWI 0 */
|
|
TWI1_IRQHandler, /* 20 TWI 1 */
|
|
SPI_IRQHandler, /* 21 SPI */
|
|
SSC_IRQHandler, /* 22 SSC */
|
|
TC0_IRQHandler, /* 23 Timer Counter 0 */
|
|
TC1_IRQHandler, /* 24 Timer Counter 1 */
|
|
TC2_IRQHandler, /* 25 Timer Counter 2 */
|
|
TC3_IRQHandler, /* 26 Timer Counter 3 */
|
|
TC4_IRQHandler, /* 27 Timer Counter 4 */
|
|
TC5_IRQHandler, /* 28 Timer Counter 5 */
|
|
ADC_IRQHandler, /* 29 ADC controller */
|
|
DAC_IRQHandler, /* 30 DAC controller */
|
|
PWM_IRQHandler, /* 31 PWM */
|
|
CRCCU_IRQHandler, /* 32 CRC Calculation Unit */
|
|
ACC_IRQHandler, /* 33 Analog Comparator */
|
|
USBD_IRQHandler, /* 34 USB Device Port */
|
|
0 /* 35 not used */
|
|
}; /* gVectors */
|
|
|
|
/*
|
|
* And here are the weak interrupt handlers.
|
|
*/
|
|
void NMI_Handler (void) { while(1); }
|
|
void HardFault_Handler (void) { while(1); }
|
|
void MemManage_Handler (void) { while(1); }
|
|
void BusFault_Handler (void) { while(1); }
|
|
void UsageFault_Handler (void) { while(1); }
|
|
void SVC_Handler (void) { while(1); }
|
|
void DebugMon_Handler (void) { while(1); }
|
|
void PendSV_Handler (void) { while(1); }
|
|
void SysTick_Handler (void) { while(1); }
|
|
|
|
void SUPC_IRQHandler (void) { while(1); }
|
|
void RSTC_IRQHandler (void) { while(1); }
|
|
void RTC_IRQHandler (void) { while(1); }
|
|
void RTT_IRQHandler (void) { while(1); }
|
|
void WDT_IRQHandler (void) { while(1); }
|
|
void PMC_IRQHandler (void) { while(1); }
|
|
void EEFC_IRQHandler (void) { while(1); }
|
|
void UART0_IRQHandler (void) { while(1); }
|
|
void UART1_IRQHandler (void) { while(1); }
|
|
void SMC_IRQHandler (void) { while(1); }
|
|
void PIOA_IRQHandler (void) { while(1); }
|
|
void PIOB_IRQHandler (void) { while(1); }
|
|
void PIOC_IRQHandler (void) { while(1); }
|
|
void USART0_IRQHandler (void) { while(1); }
|
|
void USART1_IRQHandler (void) { while(1); }
|
|
void MCI_IRQHandler (void) { while(1); }
|
|
void TWI0_IRQHandler (void) { while(1); }
|
|
void TWI1_IRQHandler (void) { while(1); }
|
|
void SPI_IRQHandler (void) { while(1); }
|
|
void SSC_IRQHandler (void) { while(1); }
|
|
void TC0_IRQHandler (void) { while(1); }
|
|
void TC1_IRQHandler (void) { while(1); }
|
|
void TC2_IRQHandler (void) { while(1); }
|
|
void TC3_IRQHandler (void) { while(1); }
|
|
void TC4_IRQHandler (void) { while(1); }
|
|
void TC5_IRQHandler (void) { while(1); }
|
|
void ADC_IRQHandler (void) { while(1); }
|
|
void DAC_IRQHandler (void) { while(1); }
|
|
void PWM_IRQHandler (void) { while(1); }
|
|
void CRCCU_IRQHandler (void) { while(1); }
|
|
void ACC_IRQHandler (void) { while(1); }
|
|
void USBD_IRQHandler (void) { while(1); }
|
|
// void USBD_IRQHandler (void) { while(1); }
|
|
|
|
/*** EOF ***/
|