/**************************************************************************//** | |
* @file system_ARMCM33.c | |
* @brief CMSIS Device System Source File for | |
* ARMCM33 Device Series | |
* @version V5.00 | |
* @date 02. November 2016 | |
******************************************************************************/ | |
/* | |
* Copyright (c) 2009-2016 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 (ARMCM33) | |
#include "ARMCM33.h" | |
#elif defined (ARMCM33_TZ) | |
#include "ARMCM33_TZ.h" | |
#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) | |
#include "partition_ARMCM33.h" | |
#endif | |
#elif defined (ARMCM33_DSP_FP) | |
#include "ARMCM33_DSP_FP.h" | |
#elif defined (ARMCM33_DSP_FP_TZ) | |
#include "ARMCM33_DSP_FP_TZ.h" | |
#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) | |
#include "partition_ARMCM33.h" | |
#endif | |
#else | |
#error device not specified! | |
#endif | |
/*---------------------------------------------------------------------------- | |
Define clocks | |
*----------------------------------------------------------------------------*/ | |
#define XTAL ( 5000000UL) /* Oscillator frequency */ | |
#define SYSTEM_CLOCK (5U * XTAL) | |
/*---------------------------------------------------------------------------- | |
Externals | |
*----------------------------------------------------------------------------*/ | |
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) | |
extern uint32_t __Vectors; | |
#endif | |
/*---------------------------------------------------------------------------- | |
System Core Clock Variable | |
*----------------------------------------------------------------------------*/ | |
uint32_t SystemCoreClock = SYSTEM_CLOCK; | |
/*---------------------------------------------------------------------------- | |
System Core Clock update function | |
*----------------------------------------------------------------------------*/ | |
void SystemCoreClockUpdate (void) | |
{ | |
SystemCoreClock = SYSTEM_CLOCK; | |
} | |
/*---------------------------------------------------------------------------- | |
System initialization function | |
*----------------------------------------------------------------------------*/ | |
void SystemInit (void) | |
{ | |
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) | |
SCB->VTOR = (uint32_t) &__Vectors; | |
#endif | |
#if defined (__FPU_USED) && (__FPU_USED == 1U) | |
SCB->CPACR |= ((3U << 10U*2U) | /* set CP10 Full Access */ | |
(3U << 11U*2U) ); /* set CP11 Full Access */ | |
#endif | |
#ifdef UNALIGNED_SUPPORT_DISABLE | |
SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk; | |
#endif | |
#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) | |
TZ_SAU_Setup(); | |
#endif | |
SystemCoreClock = SYSTEM_CLOCK; | |
} |