| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /******************************************************************************
- * @file startup_ARMCM3.c
- * @brief CMSIS-Core(M) Device Startup File for a Cortex-M3 Device
- * @version V2.0.3
- * @date 31. March 2020
- ******************************************************************************/
- /*
- * Copyright (c) 2009-2020 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * 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
- *
- * 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.
- */
- #if defined (ARMCM3)
- #include "ARMCM3.h"
- #else
- #error device not specified!
- #endif
- /*----------------------------------------------------------------------------
- External References
- *----------------------------------------------------------------------------*/
- extern uint32_t __INITIAL_SP;
- extern __NO_RETURN void __PROGRAM_START(void);
- /*----------------------------------------------------------------------------
- Internal References
- *----------------------------------------------------------------------------*/
- __NO_RETURN void Reset_Handler (void);
- void Default_Handler(void);
- /*----------------------------------------------------------------------------
- Exception / Interrupt Handler
- *----------------------------------------------------------------------------*/
- /* Exceptions */
- void NMI_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void HardFault_Handler (void) __attribute__ ((weak));
- void MemManage_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void BusFault_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void UsageFault_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void SVC_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void DebugMon_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void PendSV_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void SysTick_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt0_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt1_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt2_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt3_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt4_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt5_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt6_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt7_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt8_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- void Interrupt9_Handler (void) __attribute__ ((weak, alias("Default_Handler")));
- /*----------------------------------------------------------------------------
- Exception / Interrupt Vector table
- *----------------------------------------------------------------------------*/
- #if defined ( __GNUC__ )
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpedantic"
- #endif
- extern const VECTOR_TABLE_Type __VECTOR_TABLE[240];
- const VECTOR_TABLE_Type __VECTOR_TABLE[240] __VECTOR_TABLE_ATTRIBUTE = {
- (VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
- Reset_Handler, /* Reset Handler */
- NMI_Handler, /* -14 NMI Handler */
- HardFault_Handler, /* -13 Hard Fault Handler */
- MemManage_Handler, /* -12 MPU Fault Handler */
- BusFault_Handler, /* -11 Bus Fault Handler */
- UsageFault_Handler, /* -10 Usage Fault Handler */
- 0, /* Reserved */
- 0, /* Reserved */
- 0, /* Reserved */
- 0, /* Reserved */
- SVC_Handler, /* -5 SVC Handler */
- DebugMon_Handler, /* -4 Debug Monitor Handler */
- 0, /* Reserved */
- PendSV_Handler, /* -2 PendSV Handler */
- SysTick_Handler, /* -1 SysTick Handler */
- /* Interrupts */
- Interrupt0_Handler, /* 0 Interrupt 0 */
- Interrupt1_Handler, /* 1 Interrupt 1 */
- Interrupt2_Handler, /* 2 Interrupt 2 */
- Interrupt3_Handler, /* 3 Interrupt 3 */
- Interrupt4_Handler, /* 4 Interrupt 4 */
- Interrupt5_Handler, /* 5 Interrupt 5 */
- Interrupt6_Handler, /* 6 Interrupt 6 */
- Interrupt7_Handler, /* 7 Interrupt 7 */
- Interrupt8_Handler, /* 8 Interrupt 8 */
- Interrupt9_Handler /* 9 Interrupt 9 */
- /* Interrupts 10 .. 223 are left out */
- };
- #if defined ( __GNUC__ )
- #pragma GCC diagnostic pop
- #endif
- /*----------------------------------------------------------------------------
- Reset Handler called on controller reset
- *----------------------------------------------------------------------------*/
- __NO_RETURN void Reset_Handler(void)
- {
- SystemInit(); /* CMSIS System Initialization */
- __PROGRAM_START(); /* Enter PreMain (C library entry point) */
- }
- #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wmissing-noreturn"
- #endif
- /*----------------------------------------------------------------------------
- Hard Fault Handler
- *----------------------------------------------------------------------------*/
- void HardFault_Handler(void)
- {
- while(1);
- }
- /*----------------------------------------------------------------------------
- Default Handler for Exceptions / Interrupts
- *----------------------------------------------------------------------------*/
- void Default_Handler(void)
- {
- while(1);
- }
- #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
- #pragma clang diagnostic pop
- #endif
|