Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-dev by
targets/TARGET_NUVOTON/TARGET_NUC472/device/startup_NUC472_442.c
- Committer:
- AnnaBridge
- Date:
- 2017-08-31
- Revision:
- 172:7d866c31b3c5
- Parent:
- 149:156823d33999
File content as of revision 172:7d866c31b3c5:
/****************************************************************************** * @file startup_NUC472_442.c * @version V0.10 * $Revision: 11 $ * $Date: 15/09/02 10:02a $ * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Source File for NUC472/442 MCU * * @note * Copyright (C) 2013~2015 Nuvoton Technology Corp. All rights reserved. *****************************************************************************/ #include "NUC472_442.h" /* Suppress warning messages */ #if defined(__CC_ARM) // Suppress warning message: extended constant initialiser used #pragma diag_suppress 1296 #elif defined(__ICCARM__) #elif defined(__GNUC__) #endif /* Macro Definitions */ #if defined(__CC_ARM) #define WEAK __attribute__ ((weak)) #define ALIAS(f) __attribute__ ((weak, alias(#f))) #define WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) \ void FUN(void) __attribute__ ((weak, alias(#FUN_ALIAS))); #elif defined(__ICCARM__) //#define STRINGIFY(x) #x //#define _STRINGIFY(x) STRINGIFY(x) #define WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) \ void FUN(void); \ _Pragma(_STRINGIFY(_WEAK_ALIAS_FUNC(FUN, FUN_ALIAS))) #define _WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) weak __WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) #define __WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) FUN##=##FUN_ALIAS #elif defined(__GNUC__) #define WEAK __attribute__ ((weak)) #define ALIAS(f) __attribute__ ((weak, alias(#f))) #define WEAK_ALIAS_FUNC(FUN, FUN_ALIAS) \ void FUN(void) __attribute__ ((weak, alias(#FUN_ALIAS))); #endif /* Initialize segments */ #if defined(__CC_ARM) extern uint32_t Image$$ARM_LIB_STACK$$ZI$$Limit; extern void __main(void); #elif defined(__ICCARM__) void __iar_program_start(void); #elif defined(__GNUC__) extern uint32_t __StackTop; extern uint32_t __etext; extern uint32_t __data_start__; extern uint32_t __data_end__; extern uint32_t __bss_start__; extern uint32_t __bss_end__; extern uint32_t __bss_extern_start__ WEAK; extern uint32_t __bss_extern_end__ WEAK; extern void uvisor_init(void); #if defined(TOOLCHAIN_GCC_ARM) extern void _start(void); #else #error("For GCC toolchain, only support GNU ARM Embedded") #endif #endif /* Default empty handler */ void Default_Handler(void); /* Reset handler */ void Reset_Handler(void); /* Cortex-M4 core handlers */ WEAK_ALIAS_FUNC(NMI_Handler, Default_Handler) WEAK_ALIAS_FUNC(HardFault_Handler, Default_Handler) WEAK_ALIAS_FUNC(MemManage_Handler, Default_Handler) WEAK_ALIAS_FUNC(BusFault_Handler , Default_Handler) WEAK_ALIAS_FUNC(UsageFault_Handler, Default_Handler) WEAK_ALIAS_FUNC(SVC_Handler, Default_Handler) WEAK_ALIAS_FUNC(DebugMon_Handler, Default_Handler) WEAK_ALIAS_FUNC(PendSV_Handler, Default_Handler) WEAK_ALIAS_FUNC(SysTick_Handler, Default_Handler) /* Peripherals handlers */ WEAK_ALIAS_FUNC(BOD_IRQHandler, Default_Handler) // 0: Brown Out detection WEAK_ALIAS_FUNC(IRC_IRQHandler, Default_Handler) // 1: Internal RC WEAK_ALIAS_FUNC(PWRWU_IRQHandler, Default_Handler) // 2: Power Down Wake Up WEAK_ALIAS_FUNC(SRAMF_IRQHandler, Default_Handler) // 3: Reserved. WEAK_ALIAS_FUNC(CLKF_IRQHandler, Default_Handler) // 4: CLKF // 5: Reserved. WEAK_ALIAS_FUNC(RTC_IRQHandler, Default_Handler) // 6: Real Time Clock WEAK_ALIAS_FUNC(TAMPER_IRQHandler, Default_Handler) // 7: Tamper detection WEAK_ALIAS_FUNC(EINT0_IRQHandler, Default_Handler) // 8: External Input 0 WEAK_ALIAS_FUNC(EINT1_IRQHandler, Default_Handler) // 9: External Input 1 WEAK_ALIAS_FUNC(EINT2_IRQHandler, Default_Handler) // 10: External Input 2 WEAK_ALIAS_FUNC(EINT3_IRQHandler, Default_Handler) // 11: External Input 3 WEAK_ALIAS_FUNC(EINT4_IRQHandler, Default_Handler) // 12: External Input 4 WEAK_ALIAS_FUNC(EINT5_IRQHandler, Default_Handler) // 13: External Input 5 WEAK_ALIAS_FUNC(EINT6_IRQHandler, Default_Handler) // 14: External Input 6 WEAK_ALIAS_FUNC(EINT7_IRQHandler, Default_Handler) // 15: External Input 7 WEAK_ALIAS_FUNC(GPA_IRQHandler, Default_Handler) // 16: GPIO Port A WEAK_ALIAS_FUNC(GPB_IRQHandler, Default_Handler) // 17: GPIO Port B WEAK_ALIAS_FUNC(GPC_IRQHandler, Default_Handler) // 18: GPIO Port C WEAK_ALIAS_FUNC(GPD_IRQHandler, Default_Handler) // 19: GPIO Port D WEAK_ALIAS_FUNC(GPE_IRQHandler, Default_Handler) // 20: GPIO Port E WEAK_ALIAS_FUNC(GPF_IRQHandler, Default_Handler) // 21: GPIO Port F WEAK_ALIAS_FUNC(GPG_IRQHandler, Default_Handler) // 22: GPIO Port G WEAK_ALIAS_FUNC(GPH_IRQHandler, Default_Handler) // 23: GPIO Port H WEAK_ALIAS_FUNC(GPI_IRQHandler, Default_Handler) // 24: GPIO Port I // 25: Reserved. // 26: Reserved. // 27: Reserved. // 28: Reserved. // 29: Reserved. // 30: Reserved. // 31: Reserved. WEAK_ALIAS_FUNC(TMR0_IRQHandler, Default_Handler) // 32: Timer 0 WEAK_ALIAS_FUNC(TMR1_IRQHandler, Default_Handler) // 33: Timer 1 WEAK_ALIAS_FUNC(TMR2_IRQHandler, Default_Handler) // 34: Timer 2 WEAK_ALIAS_FUNC(TMR3_IRQHandler, Default_Handler) // 35: Timer 3 // 36: Reserved. // 37: Reserved. // 38: Reserved. // 39: Reserved. WEAK_ALIAS_FUNC(PDMA_IRQHandler, Default_Handler) // 40: Peripheral DMA // 41: Reserved. WEAK_ALIAS_FUNC(ADC_IRQHandler, Default_Handler) // 42: ADC // 43: Reserved. // 44: Reserved. // 45: Reserved. WEAK_ALIAS_FUNC(WDT_IRQHandler, Default_Handler) // 46: Watch Dog Timer WEAK_ALIAS_FUNC(WWDT_IRQHandler, Default_Handler) // 47: Window Watch Dog Timer WEAK_ALIAS_FUNC(EADC0_IRQHandler, Default_Handler) // 48: EDAC 0 WEAK_ALIAS_FUNC(EADC1_IRQHandler, Default_Handler) // 49: EDAC 1 WEAK_ALIAS_FUNC(EADC2_IRQHandler, Default_Handler) // 50: EDAC 2 WEAK_ALIAS_FUNC(EADC3_IRQHandler, Default_Handler) // 51: EDAC 3 // 52: Reserved. // 53: Reserved. // 54: Reserved. // 55: Reserved. WEAK_ALIAS_FUNC(ACMP_IRQHandler, Default_Handler) // 56: Analog Comparator // 57: Reserved. // 58: Reserved. // 59: Reserved. WEAK_ALIAS_FUNC(OPA0_IRQHandler, Default_Handler) // 60: OPA 0 WEAK_ALIAS_FUNC(OPA1_IRQHandler, Default_Handler) // 61: OPA 1 WEAK_ALIAS_FUNC(ICAP0_IRQHandler, Default_Handler) // 62: ICAP 0 WEAK_ALIAS_FUNC(ICAP1_IRQHandler, Default_Handler) // 63: ICAP 1 WEAK_ALIAS_FUNC(PWM0CH0_IRQHandler, Default_Handler) // 64: PWM0 CH0 WEAK_ALIAS_FUNC(PWM0CH1_IRQHandler, Default_Handler) // 65: PWM0 CH1 WEAK_ALIAS_FUNC(PWM0CH2_IRQHandler, Default_Handler) // 66: PWM0 CH2 WEAK_ALIAS_FUNC(PWM0CH3_IRQHandler, Default_Handler) // 67: PWM0 CH3 WEAK_ALIAS_FUNC(PWM0CH4_IRQHandler, Default_Handler) // 68: PWM0 CH4 WEAK_ALIAS_FUNC(PWM0CH5_IRQHandler, Default_Handler) // 69: PWM0 CH5 WEAK_ALIAS_FUNC(PWM0_BRK_IRQHandler, Default_Handler) // 70: PWM0 Break WEAK_ALIAS_FUNC(QEI0_IRQHandler, Default_Handler) // 71: QEI 0 WEAK_ALIAS_FUNC(PWM1CH0_IRQHandler, Default_Handler) // 72: PWM1 CH0 WEAK_ALIAS_FUNC(PWM1CH1_IRQHandler, Default_Handler) // 73: PWM1 CH1 WEAK_ALIAS_FUNC(PWM1CH2_IRQHandler, Default_Handler) // 74: PWM1 CH2 WEAK_ALIAS_FUNC(PWM1CH3_IRQHandler, Default_Handler) // 75: PWM1 CH3 WEAK_ALIAS_FUNC(PWM1CH4_IRQHandler, Default_Handler) // 76: PWM1 CH4 WEAK_ALIAS_FUNC(PWM1CH5_IRQHandler, Default_Handler) // 77: PWM1 CH5 WEAK_ALIAS_FUNC(PWM1_BRK_IRQHandler, Default_Handler) // 78: PWM1 Break WEAK_ALIAS_FUNC(QEI1_IRQHandler, Default_Handler) // 79: QEI 1 WEAK_ALIAS_FUNC(EPWM0_IRQHandler, Default_Handler) // 80: EPWM0 WEAK_ALIAS_FUNC(EPWM0BRK_IRQHandler, Default_Handler) // 81: EPWM0 Break WEAK_ALIAS_FUNC(EPWM1_IRQHandler, Default_Handler) // 82: EPWM1 WEAK_ALIAS_FUNC(EPWM1BRK_IRQHandler, Default_Handler) // 83: EPWM1 Break // 84: Reserved. // 85: Reserved. // 86: Reserved. // 87: Reserved. WEAK_ALIAS_FUNC(USBD_IRQHandler, Default_Handler) // 88: USB Device WEAK_ALIAS_FUNC(USBH_IRQHandler, Default_Handler) // 89: USB Host WEAK_ALIAS_FUNC(USB_OTG_IRQHandler, Default_Handler) // 90: USB OTG // 91: Reserved. WEAK_ALIAS_FUNC(EMAC_TX_IRQHandler, Default_Handler) // 92: Ethernet MAC TX WEAK_ALIAS_FUNC(EMAC_RX_IRQHandler, Default_Handler) // 93: Ethernet MAC RX // 94: Reserved. // 95: Reserved. WEAK_ALIAS_FUNC(SPI0_IRQHandler, Default_Handler) // 96: SPI 0 WEAK_ALIAS_FUNC(SPI1_IRQHandler, Default_Handler) // 97: SPI 1 WEAK_ALIAS_FUNC(SPI2_IRQHandler, Default_Handler) // 98: SPI 2 WEAK_ALIAS_FUNC(SPI3_IRQHandler, Default_Handler) // 99: SPI 3 // 100: Reserved. // 101: Reserved. // 102: Reserved. // 103: Reserved. WEAK_ALIAS_FUNC(UART0_IRQHandler, Default_Handler) // 104: UART 0 WEAK_ALIAS_FUNC(UART1_IRQHandler, Default_Handler) // 105: UART 1 WEAK_ALIAS_FUNC(UART2_IRQHandler, Default_Handler) // 106: UART 2 WEAK_ALIAS_FUNC(UART3_IRQHandler, Default_Handler) // 107: UART 3 WEAK_ALIAS_FUNC(UART4_IRQHandler, Default_Handler) // 108: UART 4 WEAK_ALIAS_FUNC(UART5_IRQHandler, Default_Handler) // 109: UART 5 // 110: Reserved. // 111: Reserved. WEAK_ALIAS_FUNC(I2C0_IRQHandler, Default_Handler) // 112: I2C 0 WEAK_ALIAS_FUNC(I2C1_IRQHandler, Default_Handler) // 113: I2C 1 WEAK_ALIAS_FUNC(I2C2_IRQHandler, Default_Handler) // 114: I2C 2 WEAK_ALIAS_FUNC(I2C3_IRQHandler, Default_Handler) // 115: I2C 3 WEAK_ALIAS_FUNC(I2C4_IRQHandler, Default_Handler) // 116: I2C 4 // 117: Reserved. // 118: Reserved. // 119: Reserved. WEAK_ALIAS_FUNC(SC0_IRQHandler, Default_Handler) // 120: Smart Card 0 WEAK_ALIAS_FUNC(SC1_IRQHandler, Default_Handler) // 121: Smart Card 1 WEAK_ALIAS_FUNC(SC2_IRQHandler, Default_Handler) // 122: Smart Card 2 WEAK_ALIAS_FUNC(SC3_IRQHandler, Default_Handler) // 123: Smart Card 3 WEAK_ALIAS_FUNC(SC4_IRQHandler, Default_Handler) // 124: Smart Card 4 WEAK_ALIAS_FUNC(SC5_IRQHandler, Default_Handler) // 125: Smart Card 5 // 126: Reserved. // 127: Reserved. WEAK_ALIAS_FUNC(CAN0_IRQHandler, Default_Handler) // 128: CAN 0 WEAK_ALIAS_FUNC(CAN1_IRQHandler, Default_Handler) // 129: CAN 1 // 130: Reserved. // 131: Reserved. WEAK_ALIAS_FUNC(I2S0_IRQHandler, Default_Handler) // 132: I2S 0 WEAK_ALIAS_FUNC(I2S1_IRQHandler, Default_Handler) // 133: I2S 1 // 134: Reserved. // 135: Reserved. WEAK_ALIAS_FUNC(SD_IRQHandler, Default_Handler) // 136: SD card // 137: Reserved. WEAK_ALIAS_FUNC(PS2D_IRQHandler, Default_Handler) // 138: PS/2 device WEAK_ALIAS_FUNC(CAP_IRQHandler, Default_Handler) // 139: VIN WEAK_ALIAS_FUNC(CRYPTO_IRQHandler, Default_Handler) // 140: CRYPTO WEAK_ALIAS_FUNC(CRC_IRQHandler, Default_Handler) // 141: CRC /* Vector table */ #if defined(__CC_ARM) __attribute__ ((section("RESET"))) const uint32_t __vector_handlers[] = { #elif defined(__ICCARM__) extern uint32_t CSTACK$$Limit; const uint32_t __vector_table[] @ ".intvec" = { #elif defined(__GNUC__) __attribute__ ((section(".vector_table"))) const uint32_t __vector_handlers[] = { #endif /* Configure Initial Stack Pointer, using linker-generated symbols */ #if defined(__CC_ARM) (uint32_t) &Image$$ARM_LIB_STACK$$ZI$$Limit, #elif defined(__ICCARM__) //(uint32_t) __sfe("CSTACK"), (uint32_t) &CSTACK$$Limit, #elif defined(__GNUC__) (uint32_t) &__StackTop, #endif (uint32_t) Reset_Handler, // Reset Handler (uint32_t) NMI_Handler, // NMI Handler (uint32_t) HardFault_Handler, // Hard Fault Handler (uint32_t) MemManage_Handler, // MPU Fault Handler (uint32_t) BusFault_Handler, // Bus Fault Handler (uint32_t) UsageFault_Handler, // Usage Fault Handler 0, // Reserved 0, // Reserved 0, // Reserved 0, // Reserved (uint32_t) SVC_Handler, // SVCall Handler (uint32_t) DebugMon_Handler, // Debug Monitor Handler 0, // Reserved (uint32_t) PendSV_Handler, // PendSV Handler (uint32_t) SysTick_Handler, // SysTick Handler /* External Interrupts */ (uint32_t) BOD_IRQHandler, // 0: Brown Out detection (uint32_t) IRC_IRQHandler, // 1: Internal RC (uint32_t) PWRWU_IRQHandler, // 2: Power Down Wake Up (uint32_t) SRAMF_IRQHandler, // 3: Reserved. (uint32_t) CLKF_IRQHandler, // 4: CLKF (uint32_t) Default_Handler, // 5: Reserved. (uint32_t) RTC_IRQHandler, // 6: Real Time Clock (uint32_t) TAMPER_IRQHandler, // 7: Tamper detection (uint32_t) EINT0_IRQHandler, // 8: External Input 0 (uint32_t) EINT1_IRQHandler, // 9: External Input 1 (uint32_t) EINT2_IRQHandler, // 10: External Input 2 (uint32_t) EINT3_IRQHandler, // 11: External Input 3 (uint32_t) EINT4_IRQHandler, // 12: External Input 4 (uint32_t) EINT5_IRQHandler, // 13: External Input 5 (uint32_t) EINT6_IRQHandler, // 14: External Input 6 (uint32_t) EINT7_IRQHandler, // 15: External Input 7 (uint32_t) GPA_IRQHandler, // 16: GPIO Port A (uint32_t) GPB_IRQHandler, // 17: GPIO Port B (uint32_t) GPC_IRQHandler, // 18: GPIO Port C (uint32_t) GPD_IRQHandler, // 19: GPIO Port D (uint32_t) GPE_IRQHandler, // 20: GPIO Port E (uint32_t) GPF_IRQHandler, // 21: GPIO Port F (uint32_t) GPG_IRQHandler, // 22: GPIO Port G (uint32_t) GPH_IRQHandler, // 23: GPIO Port H (uint32_t) GPI_IRQHandler, // 24: GPIO Port I (uint32_t) Default_Handler, // 25: Reserved. (uint32_t) Default_Handler, // 26: Reserved. (uint32_t) Default_Handler, // 27: Reserved. (uint32_t) Default_Handler, // 28: Reserved. (uint32_t) Default_Handler, // 29: Reserved. (uint32_t) Default_Handler, // 30: Reserved. (uint32_t) Default_Handler, // 31: Reserved. (uint32_t) TMR0_IRQHandler, // 32: Timer 0 (uint32_t) TMR1_IRQHandler, // 33: Timer 1 (uint32_t) TMR2_IRQHandler, // 34: Timer 2 (uint32_t) TMR3_IRQHandler, // 35: Timer 3 (uint32_t) Default_Handler, // 36: Reserved. (uint32_t) Default_Handler, // 37: Reserved. (uint32_t) Default_Handler, // 38: Reserved. (uint32_t) Default_Handler, // 39: Reserved. (uint32_t) PDMA_IRQHandler, // 40: Peripheral DMA (uint32_t) Default_Handler, // 41: Reserved. (uint32_t) ADC_IRQHandler, // 42: ADC (uint32_t) Default_Handler, // 43: Reserved. (uint32_t) Default_Handler, // 44: Reserved. (uint32_t) Default_Handler, // 45: Reserved. (uint32_t) WDT_IRQHandler, // 46: Watch Dog Timer (uint32_t) WWDT_IRQHandler, // 47: Window Watch Dog Timer (uint32_t) EADC0_IRQHandler, // 48: EDAC 0 (uint32_t) EADC1_IRQHandler, // 49: EDAC 1 (uint32_t) EADC2_IRQHandler, // 50: EDAC 2 (uint32_t) EADC3_IRQHandler, // 51: EDAC 3 (uint32_t) Default_Handler, // 52: Reserved. (uint32_t) Default_Handler, // 53: Reserved. (uint32_t) Default_Handler, // 54: Reserved. (uint32_t) Default_Handler, // 55: Reserved. (uint32_t) ACMP_IRQHandler, // 56: Analog Comparator (uint32_t) Default_Handler, // 57: Reserved. (uint32_t) Default_Handler, // 58: Reserved. (uint32_t) Default_Handler, // 59: Reserved. (uint32_t) OPA0_IRQHandler, // 60: OPA 0 (uint32_t) OPA1_IRQHandler, // 61: OPA 1 (uint32_t) ICAP0_IRQHandler, // 62: ICAP 0 (uint32_t) ICAP1_IRQHandler, // 63: ICAP 1 (uint32_t) PWM0CH0_IRQHandler, // 64: PWM0 CH0 (uint32_t) PWM0CH1_IRQHandler, // 65: PWM0 CH1 (uint32_t) PWM0CH2_IRQHandler, // 66: PWM0 CH2 (uint32_t) PWM0CH3_IRQHandler, // 67: PWM0 CH3 (uint32_t) PWM0CH4_IRQHandler, // 68: PWM0 CH4 (uint32_t) PWM0CH5_IRQHandler, // 69: PWM0 CH5 (uint32_t) PWM0_BRK_IRQHandler, // 70: PWM0 Break (uint32_t) QEI0_IRQHandler, // 71: QEI 0 (uint32_t) PWM1CH0_IRQHandler, // 72: PWM1 CH0 (uint32_t) PWM1CH1_IRQHandler, // 73: PWM1 CH1 (uint32_t) PWM1CH2_IRQHandler, // 74: PWM1 CH2 (uint32_t) PWM1CH3_IRQHandler, // 75: PWM1 CH3 (uint32_t) PWM1CH4_IRQHandler, // 76: PWM1 CH4 (uint32_t) PWM1CH5_IRQHandler, // 77: PWM1 CH5 (uint32_t) PWM1_BRK_IRQHandler, // 78: PWM1 Break (uint32_t) QEI1_IRQHandler, // 79: QEI 1 (uint32_t) EPWM0_IRQHandler, // 80: EPWM0 (uint32_t) EPWM0BRK_IRQHandler, // 81: EPWM0 Break (uint32_t) EPWM1_IRQHandler, // 82: EPWM1 (uint32_t) EPWM1BRK_IRQHandler, // 83: EPWM1 Break (uint32_t) Default_Handler, // 84: Reserved. (uint32_t) Default_Handler, // 85: Reserved. (uint32_t) Default_Handler, // 86: Reserved. (uint32_t) Default_Handler, // 87: Reserved. (uint32_t) USBD_IRQHandler, // 88: USB Device (uint32_t) USBH_IRQHandler, // 89: USB Host (uint32_t) USB_OTG_IRQHandler, // 90: USB OTG (uint32_t) Default_Handler, // 91: Reserved. (uint32_t) EMAC_TX_IRQHandler, // 92: Ethernet MAC TX (uint32_t) EMAC_RX_IRQHandler, // 93: Ethernet MAC RX (uint32_t) Default_Handler, // 94: Reserved. (uint32_t) Default_Handler, // 95: Reserved. (uint32_t) SPI0_IRQHandler, // 96: SPI 0 (uint32_t) SPI1_IRQHandler, // 97: SPI 1 (uint32_t) SPI2_IRQHandler, // 98: SPI 2 (uint32_t) SPI3_IRQHandler, // 99: SPI 3 (uint32_t) Default_Handler, // 100: Reserved. (uint32_t) Default_Handler, // 101: Reserved. (uint32_t) Default_Handler, // 102: Reserved. (uint32_t) Default_Handler, // 103: Reserved. (uint32_t) UART0_IRQHandler, // 104: UART 0 (uint32_t) UART1_IRQHandler, // 105: UART 1 (uint32_t) UART2_IRQHandler, // 106: UART 2 (uint32_t) UART3_IRQHandler, // 107: UART 3 (uint32_t) UART4_IRQHandler, // 108: UART 4 (uint32_t) UART5_IRQHandler, // 109: UART 5 (uint32_t) Default_Handler, // 110: Reserved. (uint32_t) Default_Handler, // 111: Reserved. (uint32_t) I2C0_IRQHandler, // 112: I2C 0 (uint32_t) I2C1_IRQHandler, // 113: I2C 1 (uint32_t) I2C2_IRQHandler, // 114: I2C 2 (uint32_t) I2C3_IRQHandler, // 115: I2C 3 (uint32_t) I2C4_IRQHandler, // 116: I2C 4 (uint32_t) Default_Handler, // 117: Reserved. (uint32_t) Default_Handler, // 118: Reserved. (uint32_t) Default_Handler, // 119: Reserved. (uint32_t) SC0_IRQHandler, // 120: Smart Card 0 (uint32_t) SC1_IRQHandler, // 121: Smart Card 1 (uint32_t) SC2_IRQHandler, // 122: Smart Card 2 (uint32_t) SC3_IRQHandler, // 123: Smart Card 3 (uint32_t) SC4_IRQHandler, // 124: Smart Card 4 (uint32_t) SC5_IRQHandler, // 125: Smart Card 5 (uint32_t) Default_Handler, // 126: Reserved. (uint32_t) Default_Handler, // 127: Reserved. (uint32_t) CAN0_IRQHandler, // 128: CAN 0 (uint32_t) CAN1_IRQHandler, // 129: CAN 1 (uint32_t) Default_Handler, // 130: Reserved. (uint32_t) Default_Handler, // 131: Reserved. (uint32_t) I2S0_IRQHandler, // 132: I2S 0 (uint32_t) I2S1_IRQHandler, // 133: I2S 1 (uint32_t) Default_Handler, // 134: Reserved. (uint32_t) Default_Handler, // 135: Reserved. (uint32_t) SD_IRQHandler, // 136: SD card (uint32_t) Default_Handler, // 137: Reserved. (uint32_t) PS2D_IRQHandler, // 138: PS/2 device (uint32_t) CAP_IRQHandler, // 139: VIN (uint32_t) CRYPTO_IRQHandler, // 140: CRYPTO (uint32_t) CRC_IRQHandler, // 141: CRC }; /** * \brief This is the code that gets called on processor reset. */ void Reset_Handler(void) { /* Disable register write-protection function */ SYS_UnlockReg(); /* Disable branch buffer if VCID is 0 */ if (SYS->VCID == 0) { FMC->FTCTL |= 0x80; } /* Disable Power-on Reset function */ SYS_DISABLE_POR(); /** * NOTE 1: Unlock is required for perhaps some register access in SystemInit(). * NOTE 2: Because EBI (external SRAM) init is done in SystemInit(), SystemInit() must be called at the very start. */ SystemInit(); /* Enable register write-protection function */ SYS_LockReg(); #if defined(__CC_ARM) __main(); #elif defined(__ICCARM__) __iar_program_start(); #elif defined(__GNUC__) uint32_t *src_ind = (uint32_t *) &__etext; uint32_t *dst_ind = (uint32_t *) &__data_start__; uint32_t *dst_end = (uint32_t *) &__data_end__; /* Move .data section from ROM to RAM */ if (src_ind != dst_ind) { for (; dst_ind < dst_end;) { *dst_ind ++ = *src_ind ++; } } /* Initialize .bss section to zero */ dst_ind = (uint32_t *) &__bss_start__; dst_end = (uint32_t *) &__bss_end__; if (dst_ind != dst_end) { for (; dst_ind < dst_end;) { *dst_ind ++ = 0; } } /* Initialize .bss.extern section to zero */ dst_ind = (uint32_t *) &__bss_extern_start__; dst_end = (uint32_t *) &__bss_extern_end__; if (dst_ind != dst_end) { for (; dst_ind < dst_end;) { *dst_ind ++ = 0; } } _start(); #endif /* Infinite loop */ while (1); } /** * \brief Default interrupt handler for unused IRQs. */ void Default_Handler(void) { while (1); }