1 /**************************************************************************//** 2 * @file system_ARMCM23.c 3 * @brief CMSIS Device System Source File for 4 * ARMCM23 Device 5 * @version V1.0.1 6 * @date 15. November 2019 7 ******************************************************************************/ 8 /* 9 * Copyright (c) 2009-2019 Arm Limited. All rights reserved. 10 * 11 * SPDX-License-Identifier: Apache-2.0 12 * 13 * Licensed under the Apache License, Version 2.0 (the License); you may 14 * not use this file except in compliance with the License. 15 * You may obtain a copy of the License at 16 * 17 * www.apache.org/licenses/LICENSE-2.0 18 * 19 * Unless required by applicable law or agreed to in writing, software 20 * distributed under the License is distributed on an AS IS BASIS, WITHOUT 21 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 * See the License for the specific language governing permissions and 23 * limitations under the License. 24 */ 25 26 #if defined (ARMCM23) 27 #include "ARMCM23.h" 28 #elif defined (ARMCM23_TZ) 29 #include "ARMCM23_TZ.h" 30 31 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 32 #include "partition_ARMCM23.h" 33 #endif 34 #else 35 #error device not specified! 36 #endif 37 38 /*---------------------------------------------------------------------------- 39 Define clocks 40 *----------------------------------------------------------------------------*/ 41 #define XTAL (50000000UL) /* Oscillator frequency */ 42 43 #define SYSTEM_CLOCK (XTAL / 2U) 44 45 /*---------------------------------------------------------------------------- 46 Exception / Interrupt Vector table 47 *----------------------------------------------------------------------------*/ 48 extern const VECTOR_TABLE_Type __VECTOR_TABLE[240]; 49 50 51 /*---------------------------------------------------------------------------- 52 System Core Clock Variable 53 *----------------------------------------------------------------------------*/ 54 uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */ 55 56 57 /*---------------------------------------------------------------------------- 58 System Core Clock update function 59 *----------------------------------------------------------------------------*/ SystemCoreClockUpdate(void)60void SystemCoreClockUpdate (void) 61 { 62 SystemCoreClock = SYSTEM_CLOCK; 63 } 64 65 /*---------------------------------------------------------------------------- 66 System initialization function 67 *----------------------------------------------------------------------------*/ SystemInit(void)68void SystemInit (void) 69 { 70 71 #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) 72 SCB->VTOR = (uint32_t) &(__VECTOR_TABLE[0]); 73 #endif 74 75 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 76 TZ_SAU_Setup(); 77 #endif 78 79 SystemCoreClock = SYSTEM_CLOCK; 80 } 81