1 /**************************************************************************//** 2 * @file system_ARMCM33.c 3 * @brief CMSIS Device System Source File for 4 * ARMCM33 Device 5 * @version V2.0.0 6 * @date 06. Aril 2023 7 ******************************************************************************/ 8 /* 9 * Copyright (c) 2009-2023 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 (ARMCM33) 27 #include "ARMCM33.h" 28 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 29 #include "partition_ARMCM33.h" 30 #endif 31 #else 32 #error device not specified! 33 #endif 34 35 /*---------------------------------------------------------------------------- 36 Define clocks 37 *----------------------------------------------------------------------------*/ 38 #define XTAL (50000000UL) /* Oscillator frequency */ 39 40 #define SYSTEM_CLOCK (XTAL / 2U) 41 42 /*---------------------------------------------------------------------------- 43 Exception / Interrupt Vector table 44 *----------------------------------------------------------------------------*/ 45 extern const VECTOR_TABLE_Type __VECTOR_TABLE[496]; 46 47 48 /*---------------------------------------------------------------------------- 49 System Core Clock Variable 50 *----------------------------------------------------------------------------*/ 51 uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */ 52 53 54 /*---------------------------------------------------------------------------- 55 System Core Clock update function 56 *----------------------------------------------------------------------------*/ SystemCoreClockUpdate(void)57void SystemCoreClockUpdate (void) 58 { 59 SystemCoreClock = SYSTEM_CLOCK; 60 } 61 62 /*---------------------------------------------------------------------------- 63 System initialization function 64 *----------------------------------------------------------------------------*/ SystemInit(void)65void SystemInit (void) 66 { 67 68 #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) 69 SCB->VTOR = (uint32_t) &(__VECTOR_TABLE[0]); 70 #endif 71 72 #if defined (__FPU_USED) && (__FPU_USED == 1U) 73 SCB->CPACR |= ((3U << 10U*2U) | /* enable CP10 Full Access */ 74 (3U << 11U*2U) ); /* enable CP11 Full Access */ 75 #endif 76 77 #ifdef UNALIGNED_SUPPORT_DISABLE 78 SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk; 79 #endif 80 81 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 82 TZ_SAU_Setup(); 83 #endif 84 85 SystemCoreClock = SYSTEM_CLOCK; 86 } 87