blob: a62ea68bbbef121e1e7982b126d267e08f41df9c [file] [log] [blame]
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "rsi_ps_ram_func.h"
#include "system_RS1xxxx.h"
#include "system_si917.h"
/*----------Stack Configuration-----------------------------------------------*/
#define STACK_SIZE 0x00000C00 /*!< Stack size (in Words) */
__attribute__((section(".co_stack"))) unsigned long pulStack[STACK_SIZE];
#define EXT_IRQ_COUNT 98 /**< Number of External (NVIC) interrupts */ // senthil copied from "efr32mg12p432f1024gl125.h"
#define TOTAL_INTERRUPTS (16 + EXT_IRQ_COUNT)
#ifndef __INITIAL_SP
#define __INITIAL_SP __StackTop
#endif
#ifndef __VECTOR_TABLE_ATTRIBUTE
#define __VECTOR_TABLE_ATTRIBUTE __attribute__((used, section(".vectors")))
#endif
/*----------Macro definition--------------------------------------------------*/
#define WEAK __attribute__((weak))
/*----------Declaration of the default fault handlers-------------------------*/
// #ifndef __START
// extern void _start(void) __attribute__((noreturn)); /* Pre Main (C library entry point) */
// #else
// extern int __START(void) __attribute__((noreturn)); /* main entry point */
// #endif
/* System exception vector handler */
__attribute__((used)) void WEAK Reset_Handler(void);
void WEAK NMI_Handler(void);
void WEAK HardFault_Handler(void);
void WEAK MemManage_Handler(void);
void WEAK BusFault_Handler(void);
void WEAK UsageFault_Handler(void);
void WEAK SVC_Handler(void);
void WEAK DebugMon_Handler(void);
void WEAK PendSV_Handler(void);
void WEAK SysTick_Handler(void);
/*Boot up functions*/
void RSI_Default_Reset_Handler(void);
void RSI_Default_WakeUp_Handler(void);
void RSI_PS_RestoreCpuContext(void);
void WEAK IRQ000_Handler(void); /*!< ULP Processor Interrupt 0 */
void WEAK IRQ001_Handler(void); /*!< ULP Processor Interrupt 1 */
void WEAK IRQ002_Handler(void); /*!< ULP Processor Interrupt 2 */
void WEAK IRQ003_Handler(void); /*!< ULP Processor Interrupt 3 */
void WEAK IRQ004_Handler(void); /*!< ULP Processor Interrupt 4 */
void WEAK IRQ005_Handler(void); /*!< ULP Processor Interrupt 5 */
void WEAK IRQ006_Handler(void); /*!< ULP Processor Interrupt 6 */
void WEAK IRQ007_Handler(void); /*!< ULP Processor Interrupt 7 */
void WEAK IRQ008_Handler(void); /*!< ULP Processor Interrupt 8 */
void WEAK IRQ009_Handler(void); /*!< ULP Processor Interrupt 9 */
void WEAK IRQ010_Handler(void); /*!< ULP Processor Interrupt 10 */
void WEAK IRQ011_Handler(void); /*!< ULP Processor Interrupt 11 */
void WEAK IRQ012_Handler(void); /*!< ULP Processor Interrupt 12 */
void WEAK IRQ013_Handler(void); /*!< ULP Processor Interrupt 13 */
void WEAK IRQ014_Handler(void); /*!< ULP Processor Interrupt 14 */
void WEAK IRQ015_Handler(void); /*!< ULP Processor Interrupt 15 */
void WEAK IRQ016_Handler(void); /*!< ULP Processor Interrupt 15 */
void WEAK IRQ017_Handler(void); /*!< ULP Processor Interrupt 17 */
void WEAK IRQ018_Handler(void); /*!< ULP Processor Interrupt 18 */
void WEAK IRQ019_Handler(void); /*!< ULP Processor Interrupt 19 */
void WEAK IRQ020_Handler(void); /*!< Sleep Sensor Interrupts 0 */ /*WDT*/
void WEAK IRQ021_Handler(void); /*!< Sleep Sensor Interrupts 1 */
void WEAK IRQ022_Handler(void); /*!< Sleep Sensor Interrupts 2 */
void WEAK IRQ023_Handler(void); /*!< Sleep Sensor Interrupts 3 */
void WEAK IRQ024_Handler(void); /*!< Sleep Sensor Interrupts 4 */
void WEAK IRQ025_Handler(void); /*!< Sleep Sensor Interrupts 5 */
void WEAK IRQ026_Handler(void); /*!< Sleep Sensor Interrupts 6 */
void WEAK IRQ027_Handler(void); /*!< Sleep Sensor Interrupts 7 */
void WEAK IRQ028_Handler(void); /*!< Sleep Sensor Interrupts 8 */ /*Alarm*/
void WEAK IRQ029_Handler(void); /*!< Sleep Sensor Interrupts 9 */ /*Msec and sec interrupt */
void WEAK IRQ030_Handler(void); /*!< Reserved */
void WEAK IRQ031_Handler(void); /*!< M4SS DMA interrupt */
void WEAK IRQ032_Handler(void); /*!< Reserved */
void WEAK IRQ033_Handler(void); /*!< M4SS DMA interrupt */
void WEAK IRQ034_Handler(void); /*!< M4SS SCT interrupt */
void WEAK HIF1_IRQHandler(void); /*!< HIF Interrupt 1 */
void WEAK HIF2_IRQHandler(void); /*!< HIF Interrupt 2 */
void WEAK IRQ037_Handler(void); /*!< SIO Interrupt */
void WEAK IRQ038_Handler(void); /*!< USART 1 Interrupt */
void WEAK IRQ039_Handler(void); /*!< Reserved */
void WEAK IRQ040_Handler(void); /*!< Reserved */
void WEAK IRQ041_Handler(void); /*!< Reserved */
void WEAK IRQ042_Handler(void); /*!< I2C Interrupt */
void WEAK IRQ043_Handler(void); /*!< Reserved */
void WEAK IRQ044_Handler(void); /*!< SSI Slave Interrupt */
void WEAK IRQ045_Handler(void); /*!< Reserved */
void WEAK IRQ046_Handler(void); /*!< GSPI Master 1 Interrupt */
void WEAK IRQ047_Handler(void); /*!< Reserved */
void WEAK IRQ048_Handler(void); /*!< MCPWM Interrupt */
void WEAK IRQ049_Handler(void); /*!< QEI Interrupt */
void WEAK IRQ050_Handler(void); /*!< GPIO Group Interrupt 0 */
void WEAK IRQ051_Handler(void); /*!< GPIO Group Interrupt 1 */
void WEAK IRQ052_Handler(void); /*!< GPIO Pin Interrupt 0 */
void WEAK IRQ053_Handler(void); /*!< GPIO Pin Interrupt 1 */
void WEAK IRQ054_Handler(void); /*!< GPIO Pin Interrupt 2 */
void WEAK IRQ055_Handler(void); /*!< GPIO Pin Interrupt 3 */
void WEAK IRQ056_Handler(void); /*!< GPIO Pin Interrupt 4 */
void WEAK IRQ057_Handler(void); /*!< GPIO Pin Interrupt 5 */
void WEAK IRQ058_Handler(void); /*!< GPIO Pin Interrupt 6 */
void WEAK IRQ059_Handler(void); /*!< GPIO Pin Interrupt 7 */
void WEAK IRQ060_Handler(void); /*!< QSPI Interrupt */
void WEAK IRQ061_Handler(void); /*!< I2C 2 Interrupt */
void WEAK IRQ062_Handler(void); /*!< Ethernet Interrupt */
void WEAK IRQ063_Handler(void); /*!< Reserved */
void WEAK IRQ064_Handler(void); /*!< I2S master Interrupt */
void WEAK IRQ065_Handler(void); /*!< Reserved */
void WEAK IRQ066_Handler(void); /*!< Can 1 Interrupt */
void WEAK IRQ067_Handler(void); /*!< Reserved */
void WEAK IRQ068_Handler(void); /*!< SDMEM Interrupt */
void WEAK IRQ069_Handler(void); /*!< PLL clock ind Interrupt */
void WEAK IRQ070_Handler(void); /*!< Reserved */
void WEAK IRQ071_Handler(void); /*!< CCI system Interrupt Out */
void WEAK IRQ072_Handler(void); /*!< FPU exception */
void WEAK IRQ073_Handler(void); /*!< USB INTR */
void WEAK IRQ074_Handler(void); /*!< TASS_P2P_INTR */
void WEAK IRQ075_Handler(void); /*!< WLAN Band1 intr0 */
void WEAK IRQ076_Handler(void); /*!< WLAN Band1 intr1 */
void WEAK IRQ077_Handler(void); /*!< Reserved */
void WEAK IRQ078_Handler(void); /*!< Reserved */
void WEAK IRQ079_Handler(void); /*!< BT intr */
void WEAK IRQ080_Handler(void); /*!< ZB intr */
void WEAK IRQ081_Handler(void); /*!< Reserved */
void WEAK IRQ082_Handler(void); /*!< Modem disabled mode trigger intr */
void WEAK IRQ083_Handler(void); /*!< gpio intr */
void WEAK IRQ084_Handler(void); /*!< uart intr */
void WEAK IRQ085_Handler(void); /*!< watch dog level intr */
void WEAK IRQ086_Handler(void); /*!< ULP Sleep sensor interrupt */
void WEAK IRQ087_Handler(void); /*!< ECDH intr */
void WEAK IRQ088_Handler(void); /*!< DH intr */
void WEAK IRQ089_Handler(void); /*!< QSPI intr */
void WEAK IRQ090_Handler(void); /*!< ULP processor interrupt TASS */
void WEAK IRQ091_Handler(void); /*!< Sys Tick Timer */
void WEAK IRQ092_Handler(void); /*!< Real Timer interrupt */
void WEAK IRQ093_Handler(void); /*!< PLL lock interrupt */
void WEAK IRQ094_Handler(void); /*!< Reserved */
void WEAK IRQ095_Handler(void); /*!< UART2 Interrupt */
void WEAK IRQ096_Handler(void); /*!< I2S Interrupt */
void WEAK IRQ097_Handler(void); /*!< I2C Interrupt */
void WEAK IRQ098_Handler(void); /*!< RESERVED */
/*----------Symbols defined in linker script----------------------------------*/
extern unsigned long _sidata; /*!< Start address for the initialization
values of the .data section. */
extern unsigned long _sdata; /*!< Start address for the .data section */
extern unsigned long _edata; /*!< End address for the .data section */
extern unsigned long _sbss; /*!< Start address for the .bss section */
extern unsigned long _ebss; /*!< End address for the .bss section */
extern void _eram; /*!< End address for ram */
extern uint32_t __etext;
extern unsigned long __StackTop;
/*----------Function prototypes-----------------------------------------------*/
extern int main(void); /*!< The entry point for the application */
void Default_Reset_Handler(void); /*!< Default reset handler */
static void Default_Handler(void); /*!< Default exception handler */
/**
*@brief The minimal vector table for a Cortex M4. Note that the proper constructs
* must be placed on this to ensure that it ends up at physical address
* 0x00000000.
*/
//(void *)0x300001
/*CCP new */
extern const tVectorEntry __VECTOR_TABLE[TOTAL_INTERRUPTS];
const tVectorEntry __VECTOR_TABLE[TOTAL_INTERRUPTS] __attribute__((aligned(512))) __VECTOR_TABLE_ATTRIBUTE = {
/* Cortex-M Exception Handlers */
{ .topOfStack = &__INITIAL_SP }, /* Initial Stack Pointer */
/*{ (void *)&pulStack[STACK_SIZE - 1] },*/
{ (void *) 0x300001 }, /* Reset Handler : IN CCP Platform system start
from bootloader which inturn call reset handler */
{ NMI_Handler }, /* NMI Handler */
{ HardFault_Handler }, /* Hard Fault Handler */
{ MemManage_Handler }, /* MPU Fault Handler */
{ BusFault_Handler }, /* Bus Fault Handler */
{ UsageFault_Handler }, /* Usage Fault Handler */
{ 0 }, /* Reserved */
{ 0 }, /* Reserved */
{ 0 }, /* Reserved */
{ 0 }, /* Reserved */
{ SVC_Handler }, /* SVCall Handler */
{ DebugMon_Handler }, /* Debug Monitor Handler */
{ 0 }, /* Application properties*/
{ PendSV_Handler }, /* PendSV Handler */
{ SysTick_Handler }, /* SysTick Handler */
/* External interrupts */
{ IRQ000_Handler }, /* 0 */
{ IRQ001_Handler }, /* 1 */
{ IRQ002_Handler }, /* 2 */
{ IRQ003_Handler }, /* 3 */
{ IRQ004_Handler }, /* 4 */
{ IRQ005_Handler }, /* 5 */
{ IRQ006_Handler }, /* 6 */
{ IRQ007_Handler }, /* 7 */
{ IRQ008_Handler }, /* 8 */
{ IRQ009_Handler }, /* 9 */
{ IRQ010_Handler }, /* 10 */
{ IRQ011_Handler }, /* 11 */
{ IRQ012_Handler }, /* 12 */
{ IRQ013_Handler }, /* 13 */
{ IRQ014_Handler }, /* 14 */
{ IRQ015_Handler }, /* 15 */
{ IRQ016_Handler }, /* 16 */
{ IRQ017_Handler }, /* 17 */
{ IRQ018_Handler }, /* 18 */
{ IRQ019_Handler }, /* 19 */
{ IRQ020_Handler }, /* 20 */
{ IRQ021_Handler }, /* 21 */
{ IRQ022_Handler }, /* 22 */
{ IRQ023_Handler }, /* 23 */
{ IRQ024_Handler }, /* 24 */
{ IRQ025_Handler }, /* 25 */
{ IRQ026_Handler }, /* 26 */
{ IRQ027_Handler }, /* 27 */
{ IRQ028_Handler }, /* 28 */
{ IRQ029_Handler }, /* 29 */
{ (void *) &__StackTop - 0x0c }, /* 30 */
{ IRQ031_Handler }, /* 31 */
{ RSI_Default_Reset_Handler }, /* 32 */
{ IRQ033_Handler }, /* 33 */
{ IRQ034_Handler }, /* 34 */
{ HIF1_IRQHandler }, /* 35 */
{ HIF2_IRQHandler }, /* 36 */
{ IRQ037_Handler }, /* 37 */
{ IRQ038_Handler }, /* 38 */
{ IRQ039_Handler }, /* 39 */
{ RSI_PS_RestoreCpuContext }, /* 40 */
{ IRQ041_Handler }, /* 41 */
{ IRQ042_Handler }, /* 42 */
{ (void *) 0x10AD10AD }, /* 43 */
{ IRQ044_Handler }, /* 44 */
{ 0 }, /* 45 */
{ IRQ046_Handler }, /* 46 */
{ IRQ047_Handler }, /* 47 */
{ IRQ048_Handler }, /* 48 */
{ IRQ049_Handler }, /* 49 */
{ IRQ050_Handler }, /* 50 - Reserved */
{ IRQ051_Handler },
{ IRQ052_Handler },
{ IRQ053_Handler },
{ IRQ054_Handler },
{ IRQ055_Handler },
{ IRQ056_Handler },
{ IRQ057_Handler },
{ IRQ058_Handler },
{ IRQ059_Handler },
{ IRQ060_Handler },
{ IRQ061_Handler },
{ IRQ062_Handler },
{ IRQ063_Handler },
{ IRQ064_Handler },
{ 0 },
{ IRQ066_Handler },
{ 0 },
{ IRQ068_Handler },
{ IRQ069_Handler },
{ 0 },
{ IRQ071_Handler },
{ IRQ072_Handler },
{ IRQ073_Handler },
{ IRQ074_Handler },
{ IRQ075_Handler },
{ IRQ076_Handler },
{ 0 },
{ 0 },
{ IRQ079_Handler },
{ IRQ080_Handler },
{ 0 },
{ IRQ082_Handler },
{ IRQ083_Handler },
{ IRQ084_Handler },
{ IRQ085_Handler },
{ IRQ086_Handler },
{ IRQ087_Handler },
{ IRQ088_Handler },
{ IRQ089_Handler },
{ IRQ090_Handler },
{ IRQ091_Handler },
{ IRQ092_Handler },
{ IRQ093_Handler },
{ 0 },
{ IRQ095_Handler },
{ 0 },
{ IRQ097_Handler },
};
/**
* @brief This is the code that gets never called, Dummy handler
* @param None
* @retval None
*/
void Default_Reset_Handler(void)
{
/*Generic Default reset handler for CM4 */
while (1)
;
}
void Copy_Table()
{
uint32_t *pSrc, *pDest;
extern uint32_t __etext;
extern uint32_t __data_start__;
extern uint32_t __data_end__;
pSrc = &__etext;
pDest = &__data_start__;
for (; pDest < &__data_end__;)
{
*pDest++ = *pSrc++;
}
}
void Zero_Table()
{
uint32_t * pDest;
extern uint32_t __bss_start__;
extern uint32_t __bss_end__;
pDest = &__bss_start__;
for (; pDest < &__bss_end__;)
{
*pDest++ = 0UL;
}
}
void Reset_Handler(void)
{
#ifndef __NO_SYSTEM_INIT
SystemInit(); /* CMSIS System Initialization */
#endif
#ifdef BOOTLOADER_ENABLE
SystemInit2();
#endif /* BOOTLOADER_ENABLE */
#if defined(__GNUC__) && defined(__START)
Copy_Table();
Zero_Table();
__START();
#else
#if 0 // senthil_ccp
__PROGRAM_START(); /* Enter PreMain (C library entry point) */
#else
Copy_Table();
Zero_Table();
_start();
#endif
#endif /* __GNUC__ */
}
void RSI_Default_Reset_Handler(void)
{
#ifndef __NO_SYSTEM_INIT
SystemInit(); /* CMSIS System Initialization */
#endif
#ifdef BOOTLOADER_ENABLE
SystemInit2();
#endif /* BOOTLOADER_ENABLE */
#if defined(__GNUC__) && defined(__START)
Copy_Table();
Zero_Table();
__START();
#else
#if 0 // senthil_ccp
__PROGRAM_START(); /* Enter PreMain (C library entry point) */
#else
Copy_Table();
Zero_Table();
_start();
#endif
#endif /* __GNUC__ */
}
/**
*@brief Provide weak aliases for each Exception handler to the Default_Handler.
* As they are weak aliases, any function with the same name will override
* this definition.
*/
//#pragma weak Reset_Handler = RSI_Default_Reset_Handler
#pragma weak NMI_Handler = Default_Handler
#pragma weak HardFault_Handler = Default_Handler
#pragma weak MemManage_Handler = Default_Handler
#pragma weak BusFault_Handler = Default_Handler
#pragma weak UsageFault_Handler = Default_Handler
#pragma weak SVC_Handler = Default_Handler
#pragma weak DebugMon_Handler = Default_Handler
#pragma weak PendSV_Handler = Default_Handler
#pragma weak SysTick_Handler = Default_Handler
/*----------------------------------external interrupts------------------------------ */
#pragma weak IRQ000_Handler = Default_Handler
#pragma weak IRQ001_Handler = Default_Handler
#pragma weak IRQ002_Handler = Default_Handler
#pragma weak IRQ003_Handler = Default_Handler
#pragma weak IRQ004_Handler = Default_Handler
#pragma weak IRQ005_Handler = Default_Handler
#pragma weak IRQ006_Handler = Default_Handler
#pragma weak IRQ007_Handler = Default_Handler
#pragma weak IRQ008_Handler = Default_Handler
#pragma weak IRQ009_Handler = Default_Handler
#pragma weak IRQ010_Handler = Default_Handler
#pragma weak IRQ011_Handler = Default_Handler
#pragma weak IRQ012_Handler = Default_Handler
#pragma weak IRQ013_Handler = Default_Handler
#pragma weak IRQ014_Handler = Default_Handler
#pragma weak IRQ015_Handler = Default_Handler
#pragma weak IRQ016_Handler = Default_Handler
#pragma weak IRQ017_Handler = Default_Handler
#pragma weak IRQ018_Handler = Default_Handler
#pragma weak IRQ019_Handler = Default_Handler
#pragma weak IRQ020_Handler = Default_Handler
#pragma weak IRQ021_Handler = Default_Handler
#pragma weak IRQ022_Handler = Default_Handler
#pragma weak IRQ023_Handler = Default_Handler
#pragma weak IRQ024_Handler = Default_Handler
#pragma weak IRQ025_Handler = Default_Handler
#pragma weak IRQ026_Handler = Default_Handler
#pragma weak IRQ027_Handler = Default_Handler
#pragma weak IRQ028_Handler = Default_Handler
#pragma weak IRQ029_Handler = Default_Handler
#pragma weak IRQ030_Handler = Default_Handler
#pragma weak IRQ031_Handler = Default_Handler
#pragma weak IRQ032_Handler = Default_Handler
#pragma weak IRQ033_Handler = Default_Handler
#pragma weak IRQ034_Handler = Default_Handler
#pragma weak HIF1_IRQHandler = Default_Handler
#pragma weak HIF2_IRQHandler = Default_Handler
#pragma weak IRQ037_Handler = Default_Handler
#pragma weak IRQ038_Handler = Default_Handler
#pragma weak IRQ039_Handler = Default_Handler
#pragma weak IRQ040_Handler = Default_Handler
#pragma weak IRQ041_Handler = Default_Handler
#pragma weak IRQ042_Handler = Default_Handler
#pragma weak IRQ043_Handler = Default_Handler
#pragma weak IRQ044_Handler = Default_Handler
#pragma weak IRQ045_Handler = Default_Handler
#pragma weak IRQ046_Handler = Default_Handler
#pragma weak IRQ047_Handler = Default_Handler
#pragma weak IRQ048_Handler = Default_Handler
#pragma weak IRQ049_Handler = Default_Handler
#pragma weak IRQ050_Handler = Default_Handler
#pragma weak IRQ051_Handler = Default_Handler
#pragma weak IRQ052_Handler = Default_Handler
#pragma weak IRQ053_Handler = Default_Handler
#pragma weak IRQ054_Handler = Default_Handler
#pragma weak IRQ055_Handler = Default_Handler
#pragma weak IRQ056_Handler = Default_Handler
#pragma weak IRQ057_Handler = Default_Handler
#pragma weak IRQ058_Handler = Default_Handler
#pragma weak IRQ059_Handler = Default_Handler
#pragma weak IRQ060_Handler = Default_Handler
#pragma weak IRQ061_Handler = Default_Handler
#pragma weak IRQ062_Handler = Default_Handler
#pragma weak IRQ063_Handler = Default_Handler
#pragma weak IRQ064_Handler = Default_Handler
#pragma weak IRQ065_Handler = Default_Handler
#pragma weak IRQ066_Handler = Default_Handler
#pragma weak IRQ067_Handler = Default_Handler
#pragma weak IRQ068_Handler = Default_Handler
#pragma weak IRQ069_Handler = Default_Handler
#pragma weak IRQ070_Handler = Default_Handler
#pragma weak IRQ071_Handler = Default_Handler
#pragma weak IRQ072_Handler = Default_Handler
#pragma weak IRQ073_Handler = Default_Handler
#pragma weak IRQ074_Handler = Default_Handler
#pragma weak IRQ075_Handler = Default_Handler
#pragma weak IRQ076_Handler = Default_Handler
#pragma weak IRQ077_Handler = Default_Handler
#pragma weak IRQ078_Handler = Default_Handler
#pragma weak IRQ079_Handler = Default_Handler
#pragma weak IRQ080_Handler = Default_Handler
#pragma weak IRQ081_Handler = Default_Handler
#pragma weak IRQ082_Handler = Default_Handler
#pragma weak IRQ083_Handler = Default_Handler
#pragma weak IRQ084_Handler = Default_Handler
#pragma weak IRQ085_Handler = Default_Handler
#pragma weak IRQ086_Handler = Default_Handler
#pragma weak IRQ087_Handler = Default_Handler
#pragma weak IRQ088_Handler = Default_Handler
#pragma weak IRQ089_Handler = Default_Handler
#pragma weak IRQ090_Handler = Default_Handler
#pragma weak IRQ091_Handler = Default_Handler
#pragma weak IRQ092_Handler = Default_Handler
#pragma weak IRQ093_Handler = Default_Handler
#pragma weak IRQ094_Handler = Default_Handler
#pragma weak IRQ095_Handler = Default_Handler
#pragma weak IRQ096_Handler = Default_Handler
#pragma weak IRQ097_Handler = Default_Handler
#pragma weak IRQ098_Handler = Default_Handler
/**
* @brief This is the code that gets called when the processor receives an
* unexpected interrupt. This simply enters an infinite loop,
* preserving the system state for examination by a debugger.
* @param None
* @retval None
*/
static void Default_Handler(void)
{
/* Go into an infinite loop. */
while (1)
{
}
}
/*********************** (C) COPYRIGHT 2009 Coocox ************END OF FILE*****/